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-23 · ★ 690 · #5 OF 221 MAINTAINED DOCUMENTATION · VERIFIED 2026-09-30

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.6.0 · 2026-09-23

markdown-patch 2.0 writes, block-aware tags, lexed headings · #102: section writes and the document map use markdown-patch 2.0 on Local REST API 5.x, and 1.x on 4.x. · #145: tight list continuation. · On plugin v5.x…

v3.5.5 · 2026-09-23

Tag grammar, search match locations, repeated-heading rejection · Certificate rejection and unreachable-plugin errors are now typed (certificate_rejected, obsidian_unreachable) instead of a hintless InternalError…

v3.5.4 · 2026-09-19

TLS scoping, frontmatter write safety, mcp-ts-core 0.13.6 · TLS relaxation scoped per request instead of NODE_TLS_REJECT_UNAUTHORIZED=0 process-wide on Bun (#131) · OBSIDIAN_BASE_URL strips a trailing slash that was…

04 · Who maintains Obsidian MCP Server

obsidian-mcp-server is maintained by cyanheads. We track 137 MCP servers from cyanheads - 131 actively maintained, 1,856 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. ★ 152
  2. git-mcp-server Comprehensive Git MCP server enabling native git tools including clone, commit, worktree, & more. ★ 240
  3. clinicaltrialsgov-mcp-server Search ClinicalTrials.gov - find studies, retrieve results, match patients to eligible trials. ★ 96
  4. openalex-mcp-server Access the OpenAlex academic research catalog - 270M+ publications. ★ 14
  5. mcp-ts-template TypeScript template for building MCP servers with declarative tooling, observability, and auth. ★ 152
  6. eur-lex-mcp-server Search EU legislation, CJEU case law, and treaties; traverse CELLAR graph; browse EuroVoc concepts. ★ 8

05 · Facts

category
documentation - ranked #5 of 221 actively-maintained documentation servers as of 2026-09-30.
release cadence
10+ releases in the last 90 days (latest 2026-09-23)
registry
io.github.cyanheads/obsidian-mcp-server (active, first published 2026-04-29 · 36 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-30, its last commit was 2026-09-23 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