Obsidian

Obsidian

Read and write notes in your local Obsidian vault.

Score 65(?)Community (MarkusPfundstein)MIT3.4kVerified Top MCPs for Documents & Content

Install Obsidian

— pick your client, copy, paste.
claude_desktop_config.json
{
  "mcpServers": {
    "obsidian": {
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "${OBSIDIAN_API_KEY}",
        "OBSIDIAN_HOST": "${OBSIDIAN_HOST}"
      }
    }
  }
}

Paste under mcpServers. Fully quit and reopen Claude after editing.

CLI or .mcp.json
# export OBSIDIAN_API_KEY=your_local_rest_api_key
# export OBSIDIAN_HOST=127.0.0.1
claude mcp add obsidian -- uvx mcp-obsidian

Run from your repo. Commit .mcp.json to share with your team.

.cursor/mcp.json
{
  "mcpServers": {
    "obsidian": {
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "${OBSIDIAN_API_KEY}",
        "OBSIDIAN_HOST": "${OBSIDIAN_HOST}"
      }
    }
  }
}

Global path: ~/.cursor/mcp.json. Reload window after editing.

.vscode/mcp.json
{
  "servers": {
    "obsidian": {
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "${OBSIDIAN_API_KEY}",
        "OBSIDIAN_HOST": "${OBSIDIAN_HOST}"
      }
    }
  }
}

VS Code uses the "servers" key (not "mcpServers").

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "obsidian": {
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "${OBSIDIAN_API_KEY}",
        "OBSIDIAN_HOST": "${OBSIDIAN_HOST}"
      }
    }
  }
}

Open via Cascade → hammer icon → Configure.

cline_mcp_settings.json
{
  "mcpServers": {
    "obsidian": {
      "command": "uvx",
      "args": [
        "mcp-obsidian"
      ],
      "env": {
        "OBSIDIAN_API_KEY": "${OBSIDIAN_API_KEY}",
        "OBSIDIAN_HOST": "${OBSIDIAN_HOST}"
      }
    }
  }
}

Open via the Cline sidebar → MCP Servers → Edit.

~/.continue/config.json
{
  "experimental": {
    "modelContextProtocolServers": [
      {
        "transport": {
          "type": "stdio",
          "command": "uvx",
          "args": [
            "mcp-obsidian"
          ],
          "env": {
            "OBSIDIAN_API_KEY": "${OBSIDIAN_API_KEY}",
            "OBSIDIAN_HOST": "${OBSIDIAN_HOST}"
          }
        }
      }
    ]
  }
}

Continue uses modelContextProtocolServers with a transport block.

~/.codex/config.toml
# ~/.codex/config.toml
[mcp_servers.obsidian]
command = "uvx"
args = [
  "mcp-obsidian",
]
env = { OBSIDIAN_API_KEY = "${OBSIDIAN_API_KEY}", OBSIDIAN_HOST = "${OBSIDIAN_HOST}" }

Codex uses TOML. Each server is a [mcp_servers.<name>] subtable.

~/.config/zed/settings.json
{
  "context_servers": {
    "obsidian": {
      "command": {
        "path": "uvx",
        "args": [
          "mcp-obsidian"
        ]
      },
      "env": {
        "OBSIDIAN_API_KEY": "${OBSIDIAN_API_KEY}",
        "OBSIDIAN_HOST": "${OBSIDIAN_HOST}"
      }
    }
  }
}

Zed calls them "context_servers". Settings live-reload on save.

ChatGPT → Settings → Connectors → Developer mode
{
  "name": "Obsidian",
  "transport": "stdio",
  "command": "uvx",
  "args": [
    "mcp-obsidian"
  ],
  "env": {
    "OBSIDIAN_API_KEY": "${OBSIDIAN_API_KEY}",
    "OBSIDIAN_HOST": "${OBSIDIAN_HOST}"
  }
}

Enable Developer mode (paid plans) and enter these values in the UI.

Quick answer

What it does

Reads and writes Markdown files in an Obsidian vault: search, create, update, list notes, resolve internal [[wikilinks]], and walk backlinks.

Best for

  • Personal knowledge capture
  • Daily-note automation
  • Research assistance
  • Reading-list curation

Not for

  • Real-time collaboration
  • Binary attachment search

Setup recipe

  1. 1

    Install

    Copy the install snippet for your client from the Install section above.

  2. 2

    Set required secrets

    Set OBSIDIAN_API_KEY, OBSIDIAN_HOST in your shell environment before launching your MCP client.

  3. 3

    Try a minimum working prompt

    Collect follow-ups into a daily note

    In my Obsidian vault at ~/Obsidian/Work, find every note tagged `#followup` that has been modified in the last 7 days. Append a "Followups" section to today's daily note listing each as `- [[title]] — <one-sentence gist>` with a link back.

    Tested with: Claude Desktop, Cursor.

Tools & permissions

Tools list pending verification. The server exposes tools over MCP; we haven’t yet parsed its capability manifest into this page. Check the GitHub repo for the authoritative list.

Security & scope

Access scope
Read + write
Sandbox
Reads and writes Markdown files inside a local Obsidian vault directory passed at launch. Access is scoped to that single vault.
Gotchas
  • The MCP does not understand Obsidian plugins — edits that depend on plugin-generated content (Dataview, Templater) may look incomplete.
  • Renaming a note does not update backlinks unless the agent does so explicitly.

Agent prompt pack

— copy into Claude, Cursor, or ChatGPT.
Paste into Claude, Cursor, or ChatGPT. Edit the [brackets] before sending.
Recommend the best MCP servers for [task: e.g. documents & content work] in [client: Claude].

Constraints:
- Prefer tools that are [official | open-source | read-only] — pick what matters for my use case.
- Exclude MCPs that require [e.g. a paid plan, OAuth-only flows, remote-only transport].
- Return at most 3 picks, ranked.

For each pick include:
1. One-sentence rationale.
2. The ready-to-paste install snippet for my client.
3. Any required secrets I need to create before installing.

Cross-check the top-mcps.com listing: https://top-mcps.com/top-mcps-for-documents-content
Compare Obsidian against a real alternative. Swap the second MCP in [brackets] if you want a different match.
Compare Obsidian MCP vs [Notion MCP] for the following job: [describe the job, e.g. "let an agent create GitHub issues on bug triage"].

Judge them on:
- Setup time and complexity (what a new user hits first).
- Auth model (none / API key / OAuth 2.1) and credential risk.
- Transport (stdio / Streamable HTTP / SSE) and where the server runs.
- Required secrets and the blast radius if they leak.
- Operational risk in an unattended agent loop.
- Which one is "good enough" for a weekend prototype vs. production.

End with one sentence: which should I pick for my scenario, which is: [my scenario].

References:
- https://top-mcps.com/mcp/obsidian
- top-mcps.com listing for Notion
Asks the agent to install and verify. Works inside Claude Code, Cursor Agent, Codex CLI.
Install the Obsidian MCP server for my [client: Claude] at the default config path for that client.

Use the exact install snippet published at https://top-mcps.com/mcp/obsidian (fetch https://top-mcps.com/mcp/obsidian.json for the canonical server.json if you can read URLs).

Before finishing:
1. Create the required secrets (OBSIDIAN_API_KEY, OBSIDIAN_HOST) and put them in the appropriate env block — do not hard-code them.
2. Restart or reload the client so it picks up the new server.
3. Verify the server is connected (green / running state) and at least one tool is listed.
4. If anything fails, read the client's MCP logs and report the exact error — do not silently retry.

Confirm when done and list the tools the server now exposes.

Frequently asked questions

What changed

2 updates tracked.
  1. Refreshed install snippets and fact sheet; verified for 2026.

  2. Initial directory listing.

More Documents & Content MCPs

Other tools in the same category worth evaluating.

Context7

Up-to-date library docs pulled directly into your AI context.

codingdocumentationlibrariesaccuracy
3 minLow
Notion
Official

Read, write, and search across Notion pages, databases, and blocks.

notiondocsdatabasesknowledge
5 minLow
Figma
Official

Inspect Figma designs, components, and variables from an agent.

figmadesigndesign-to-codecomponents
5 minMedium

Exploring Top MCPs for Documents & Content? See all Documents & Content MCPs →