Obsidian MCP Server

Read, write, search, and surgically edit Obsidian vault notes, tags, and frontmatter via MCP. STDIO or Streamable HTTP. Its 14 documented tools cover obsidian, note, notes, tags.

People who work with obsidian, note and notes and want it reachable from Claude, Cursor, VS Code, or another MCP client. The project is written in TypeScript.

VERIFIED ACTIVE

LAST COMMIT 2026-09-13 · ★ 681 · #6 OF 208 MAINTAINED DOCUMENTATION · VERIFIED 2026-09-18

Apache-2.0 · TypeScript servers · how we verify → /methodology

01 · Install Obsidian MCP Server

before you install - you'll need

Set MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, OBSIDIAN_API_KEY, OBSIDIAN_BASE_URL before connecting.

Claude Code

claude mcp add cyanheads-obsidian-mcp-server -- npx -y obsidian-mcp-server

Claude Desktop / Cursor / VS Code - add to config

{
  "mcpServers": {
    "cyanheads-obsidian-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "obsidian-mcp-server"
      ]
    }
  }
}

Same JSON for Cursor. For VS Code, rename the top-level key from `mcpServers` to `servers`.

Using another client? Same JSON, different key

Claude Desktop · mcpServers

Cursor · mcpServers

VS Code · servers

Windsurf · mcpServers

Zed · context_servers

Cline · mcpServers

Roo Code · mcpServers

Continue · mcpServers

LibreChat · mcpServers

Gemini CLI · mcpServers

Codex CLI · mcp_servers

Full setup guides: every client.

02 · Evidence

Security posture

What to check before giving this server access to your agent - from the registry, GitHub, and our own probes. We don't score safety; we show what's verifiable.

runs as local process (stdio) - runs on your machine with your user's permissions

license Apache-2.0 - declared in the repository

npm package obsidian-mcp-server - unscoped; check the name against the project README before installing

registry namespace io.github.cyanheads is GitHub-verified and matches the repo owner

03 · What Obsidian MCP Server can do

Prose above is summarized from the project's README and registry record - no invented capabilities.

What you can build

With this server connected, an agent can list notes and subdirectories under a vault path. Recursive walk (default depth 2, max depth 20, search the vault by text, JSONLogic, or BM25-ranked Omnisearch (when the plugin is reachable). Results paginate via opaque cursors, add, remove, or list tags. Defaults to the frontmatter tags: array, and open a file in the Obsidian app UI, with failIfMissing and newLeaf toggles.

The 14 tools it gives your agent

Extracted from the project's README - what obsidian-mcp-server lets an agent do.

obsidian_get_note
- Read a note as raw content, full structured form (content + frontmatter + tags + stat, with optional outgoing links), structural document map, or a single secti
obsidian_list_notes
- List notes and subdirectories under a vault path. Recursive walk (default depth 2, max depth 20; 1000-entry cap) with optional extension and nameRegex filters.
obsidian_list_tags
- List vault tags with usage counts, including hierarchical parents. Ordered by count descending and capped at limit (default 200, max 10000), with the withheld r
obsidian_list_commands
- List Obsidian command-palette commands, optionally filtered by nameRegex on display name. Opt-in via OBSIDIAN_ENABLE_COMMANDS=true (paired with obsidian_execute
obsidian_search_notes
- Search the vault by text, JSONLogic, or BM25-ranked Omnisearch (when the plugin is reachable). Results paginate via opaque cursors.
obsidian_write_note
- Create a note, replace a single section in place, or - with overwrite: true - clobber an existing file. Refuses whole-file writes against an existing path by de
obsidian_append_to_note
- Append content to a note. Without section, creates the file if missing. With section, appends to a specific heading, block, or frontmatter field (file must exis
obsidian_patch_note
- Surgical append / prepend / replace against a heading, block reference, or frontmatter field.
obsidian_replace_in_note
- Search-replace inside a single note, scoped to the body by default. Literal or regex matching with whole-word, whitespace-flexible, and case-sensitivity options
obsidian_manage_frontmatter
- Atomic get / set / delete on a single frontmatter key.
obsidian_manage_tags
- Add, remove, or list tags. Defaults to the frontmatter tags: array; location: 'inline' or 'both' opts into mutating the note body.
obsidian_delete_note
- Permanently delete a note. Always asks the user to confirm first - the call is answered with a confirmation request and retried with the answer.
show all 14 tools
obsidian_open_in_ui
- Open a file in the Obsidian app UI, with failIfMissing and newLeaf toggles.
obsidian_execute_command
- Execute an Obsidian command-palette command by ID. Opt-in via OBSIDIAN_ENABLE_COMMANDS=true.

Latest releases

v3.5.3 · 2026-09-13

The .mcpb bundle now passes the settings entered at install to the server - manifest.json referenced ${OBSIDIAN_}, which the MCPB host does not substitute; every option is now wired as ${user_config.<key>} · Plugin…

v3.5.2 · 2026-09-09

Periodic-route detection, tag/section resolution fixes · obsidian_get_note section reads echo the resolved heading path in sectionTarget, with colliding headings in candidates (#107) · obsidian_manage_tags inline…

v3.5.1 · 2026-09-04

5xx classification widening, session-mode pin, and a dependency refresh · Upstream HTTP 500/501 now classify as ServiceUnavailable instead of InternalError - a 500 on a retry-safe call is retried automatically; 501…

04 · Who maintains Obsidian MCP Server

obsidian-mcp-server is maintained by cyanheads. We track 125 MCP servers from cyanheads - 119 actively maintained, 1,816 combined GitHub stars, oldest repo from Dec 2024. Full record: all servers from cyanheads.

  1. mcp-ts-core Agent-native TypeScript framework for MCP servers. ★ 151
  2. pubmed-mcp-server Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms. ★ 148
  3. git-mcp-server Comprehensive Git MCP server enabling native git tools including clone, commit, worktree, & more. ★ 240
  4. clinicaltrialsgov-mcp-server Search ClinicalTrials.gov - find studies, retrieve results, match patients to eligible trials. ★ 94
  5. ntfy-mcp-server Send, manage, and replay ntfy push notifications via MCP. ★ 22
  6. mcp-ts-template TypeScript template for building MCP servers with declarative tooling, observability, and auth. ★ 151

05 · Facts

category
documentation - ranked #6 of 208 actively-maintained documentation servers as of 2026-09-18.
release cadence
10+ releases in the last 90 days (latest 2026-09-13)
registry
io.github.cyanheads/obsidian-mcp-server (active, first published 2026-04-29 · 33 versions)
packages
npm:obsidian-mcp-server · npm:obsidian-mcp-server

06 · Obsidian MCP Server FAQ

Is Obsidian MCP Server still maintained?

Yes - as of 2026-09-18, its last commit was 2026-09-13 and it shipped 10+ releases in the last 90 days. We re-verify nightly.

What can Obsidian MCP Server do?

With this server connected, an agent can list notes and subdirectories under a vault path. Recursive walk (default depth 2, max depth 20, search the vault by text, JSONLogic, or BM25-ranked Omnisearch (when the plugin is reachable). Results paginate via opaque cursors, add, remove, or list tags. Defaults to the frontmatter tags: array, and open a file in the Obsidian app UI, with failIfMissing and newLeaf toggles.

How do I install Obsidian MCP Server?

Run `npx -y obsidian-mcp-server`. The README documents 4 environment variables (MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, OBSIDIAN_API_KEY…) to set first. Set MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, OBSIDIAN_API_KEY, OBSIDIAN_BASE_URL before connecting. You can also paste the ready-made client config above.

Does Obsidian MCP Server run locally?

Yes - it's a stdio server: it runs on your machine (via npx) with your user's permissions. Your data stays local unless the server itself calls external APIs.

07 · Alternatives to Obsidian MCP Server