# MarkusPfundstein/mcp-obsidian [Health: Active]

**Category:** 🛠️ Other Tools and Integrations  
**Repository:** https://github.com/MarkusPfundstein/mcp-obsidian  
**GitHub Stars:** 4377  
**Views:** 3  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/markuspfundstein-mcp-obsidian

## Description
MCP server that interacts with Obsidian via the Obsidian rest API community plugin

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "mcp-obsidian": {
    "command": "npx",
    "args": ["-y","@modelcontextprotocol/inspector"],
    "env": {
      "OBSIDIAN_API_KEY": ""
    }
  }
}
```

**Requires environment variables:** `OBSIDIAN_API_KEY` — the values above are empty placeholders; fill in real credentials before running (see the repository for what each one is for).

## Documentation

## What the MarkusPfundstein/mcp-obsidian MCP server does

The MarkusPfundstein/mcp-obsidian MCP server gives an MCP-compatible client access to an Obsidian vault through Obsidian’s Local REST API community plugin. It is intended for local vault workflows where an agent needs to inspect notes, find related material, or modify files based on a conversation.

The server communicates with the REST API rather than reading the vault directory directly. Obsidian must therefore be running with the required community plugin enabled and configured with an API key. Example workflows include finding references to a technical topic across the vault, summarizing a recent note, or creating a new meeting-summary note.

## How it works

The MCP server runs over standard input and output and receives tool calls from the client. It forwards those operations to the configured Obsidian REST API endpoint. The host defaults to `127.0.0.1`, and the port defaults to `27124` when those values are not supplied.

The MarkusPfundstein/mcp-obsidian MCP server can be launched as a published Python package with `uvx`, or from a checked-out source directory with `uv`. A Docker Compose configuration is also provided for running the server in a container. Container use requires stdin to remain attached without a pseudo-terminal because MCP messages use stdio.

## Setup and configuration

Install and enable the Obsidian Local REST API community plugin, then copy its API key into the MCP client configuration or a `.env` file. Set `OBSIDIAN_API_KEY`; `OBSIDIAN_HOST` and `OBSIDIAN_PORT` can be supplied when the defaults do not match the REST API service.

The documented published-server configuration runs `uvx mcp-obsidian`. For source-based development, the README uses `uv --directory <project-directory> run mcp-obsidian`. The project requires Python 3.11 or newer and the MCP Python SDK in the `>=1.1.0,<2.0.0` range. The low-level server implementation is not compatible with MCP SDK 2.0.

Claude Desktop can load the server through its platform-specific configuration file. The README also documents Docker Compose commands for building and running the container.

## Tools and capabilities

The MarkusPfundstein/mcp-obsidian MCP server provides these operations:

- List files and directories at the vault root.
- List files and directories within a selected vault directory.
- Read the contents of one vault file.
- Search across vault files for a text query.
- Insert content relative to a heading, block reference, or frontmatter field.
- Append content to a new or existing file.
- Delete a file or directory.

These tools support both read and write workflows. A client can combine search or file reading with content updates, such as collecting information from several notes and writing the result into another note.

## Limitations and notes

The server depends on the Obsidian Local REST API community plugin; it is not a standalone vault reader. The plugin must be available and its API key must be configured. Host and port settings need to point to the running REST API when it is not using the documented local defaults.

Because the server uses stdio, MCP clients must launch it with stdin connected. For Docker Compose, the documented invocation uses `run --rm -T` rather than `docker compose up`. The project also warns that installing MCP SDK 2.0 or later causes an import failure because the implementation relies on the MCP 1.x `Server` API.

_Full upstream README: https://allmcps.com/mcp/markuspfundstein-mcp-obsidian/readme_

