MCP Obsidian logo

MCP Obsidian

by MarkusPfundstein

Reads, searches, updates, and deletes Obsidian vault files through the Local REST API plugin.

Install MCP Obsidian

Pick your client, then add it in one click or paste the config.

STDIOPython
~/Library/Application Support/Claude/claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "markuspfundstein-mcp-obsidian": {
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "YOUR_VALUE_HERE"
      }
    }
  }
}

Settings → Developer → Edit Config, merge this into mcpServers, then fully quit and reopen Claude Desktop.

Values are written into the snippet above so you can paste it as is. They never leave your browser.

We couldn’t confirm it starts correctly

We ran the install command but it didn't respond within our test window — this can mean a slow first-time install rather than a real problem.

uvx mcp-obsidian

No response to initialize.

This is an experimental automated check and can have false negatives — missing environment variables, a slow cold install, etc. It doesn’t necessarily mean something’s wrong. Last checked 1mo ago.

Overview

The MarkusPfundstein/mcp-obsidian MCP server connects AI clients to an Obsidian vault through the Local REST API community plugin. It exposes tools for browsing directories, reading and searching notes, inserting or appending content, and deleting files or directories. Run it locally over stdio with Python tooling such as uvx, and configure the Obsidian API key plus optional host and port settings. Reach for it when an agent needs to retrieve information from, or make structured changes to, an Obsidian knowledge base.

Use cases

  • Search an Obsidian vault for references to a technical topic
  • Summarize a note retrieved from the vault
  • Create a meeting-summary note from existing notes
  • Append content to an existing Obsidian file
  • Update note content near a heading or block reference

Key features

  • List vault files and directories
  • Read individual note contents
  • Search text across vault files
  • Insert or append note content
  • Delete vault files or directories
  • Target headings, block references, and frontmatter fields

Security & health

What it can reach and how reliably it runs — from our own checks, not the maintainer’s claims.

ActiveLast checked Today

Recent health check succeeded.

19/19 checks healthy over the last 78d

Supply-chain signal

No high-severity advisories surfaced by our automated scan.

Critical 0High 0Medium 0Low 0

Scanned 8d ago via OSV.dev · mcp-obsidian (PyPI)

Adoption & maintenance

Factual signals from GitHub, npm, and our automated checks — not a rating.

GitHub stars4.5kStargazers on the source repository.
Last commit1mo agoMost recent push to the default branch.
Install checkInconclusiveDidn't respond in our test window — often a slow first install.
Directory activity9 viewsConfig copies, upvotes, and views on AllMCPs.

How MCP Obsidian works

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.

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.

Reviews

No reviews yet — be the first to share how it worked for you.

Frequently Asked Questions about MCP Obsidian

Install the published package with uvx using `uvx mcp-obsidian`, or run the checked-out project with `uv --directory <project-directory> run mcp-obsidian`.

Yes. The README provides Claude Desktop configuration examples for both the published uvx package and a local development checkout.

Obsidian must have the Local REST API community plugin installed and enabled. Configure its API key with `OBSIDIAN_API_KEY`; the documented default host is `127.0.0.1` and the default port is `27124`.

It can list vault files and directories, read files, search vault contents, insert or append content, and delete files or directories.

Related MCP servers

Add a badge to your READMEShow it’s listed — live SVG, Markdown or HTML.

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewMCP Obsidian AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/markuspfundstein-mcp-obsidian?style=directory)](https://allmcps.com/mcp/markuspfundstein-mcp-obsidian)
HTML Embed
<a href="https://allmcps.com/mcp/markuspfundstein-mcp-obsidian"><img src="https://allmcps.com/api/badge/markuspfundstein-mcp-obsidian?style=directory" alt="MCP Obsidian on AllMCPs" /></a>