Obsidian MCP Server

Obsidian vault notes, tags, and frontmatter editing via 14 specialized MCP tools.

Data last scanned yesterday · Reviewed 3 weeks ago

132 dangerous tools14 tools656TypeScriptApache-2.0

Overview

The Obsidian MCP Server allows AI models to interact directly with your vault files. It provides 14 distinct tools designed for granular operations, including fetching specific note content, managing frontmatter, and reconciling tags. You can also trigger command-palette functions to perform high-level vault actions within your AI workflow. Built with TypeScript and supporting both STDIO and Streamable HTTP, the server handles recursive file system walks with configurable depth and filtering. It offers multiple data representation modes, from raw text to structured document maps, providing flexibility for AI agents to process your knowledge base efficiently.

Our verdict

With a security score of 43/100, this server carries a high risk level for your local environment. Most notably, the current architecture lacks a read-only mode, meaning every installation provides full write access to your Obsidian vault. Given it is community-maintained rather than vendor-official, users should exercise caution before deploying this in environments containing sensitive or non-backed-up data.

  • Supports granular surgical editing of notes and frontmatter
  • Provides 14 specialized tools for vault management
  • Includes recursive file system navigation features
  • Maintains a compact footprint with only 6 direct dependencies
  • Requires full write access with no read-only configuration
  • Lacks OAuth support for authenticated vault access
  • Managed by community contributors rather than the official Obsidian team

Setup

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

Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), then restart Claude Desktop. Some servers require API keys or tokens as environment variables — check the project's README and add an "env" object if needed.

  • No read-only mode — running this grants full read/write access.
  • No built-in authentication — anyone with access to this config can invoke every tool it exposes.

Tools

ToolDescriptionRisk
obsidian_get_noteRead a note as raw content, full structured form (content + frontmatter + tags + stat, with optional outgoing links), structural document map, or a single section.low
obsidian_list_notesList notes and subdirectories under a vault path.low
obsidian_list_tagsList every tag found across the vault with usage counts, including hierarchical parents.low
obsidian_list_commandsList Obsidian command-palette commands, optionally filtered by nameRegex on display name.low
obsidian_search_notesSearch the vault by text, JSONLogic, or BM25-ranked Omnisearch.low
obsidian_write_noteCreate a note, replace a single section in place, or clobber an existing file.medium
obsidian_append_to_noteAppend content to a note.medium
obsidian_patch_noteSurgical append / prepend / replace against a heading, block reference, or frontmatter field.medium
obsidian_replace_in_noteBody-wide search-replace inside a single note.medium
obsidian_manage_frontmatterAtomic get / set / delete on a single frontmatter key.medium

Compatibility

ClientLocalDockerRemoteRead-only
ChatGPT
Claude Desktop
Cursor
VS Code
Windsurf

Frequently asked questions

What authentication is required to run the server?

You must provide an OBSIDIAN_API_KEY environment variable to authenticate the connection.

How do I enable the ability to execute Obsidian command-palette commands?

You must explicitly opt-in to this feature by setting the OBSIDIAN_ENABLE_COMMANDS environment variable to true.

Does the server support different communication protocols?

Yes, the server can run over either STDIO or Streamable HTTP.

What search modes are available for finding notes?

The server supports three search modes: text substring matching, JSONLogic, and BM25-ranked Omnisearch if the plugin is reachable.

Are there safeguards against accidentally overwriting files?

The obsidian_write_note tool refuses to perform whole-file writes against existing paths by default unless you explicitly set the overwrite option to true.

Can I modify tags directly within the note body?

Yes, while the obsidian_manage_tags tool defaults to the frontmatter tags array, you can opt into mutating the note body by setting the location parameter to 'inline' or 'both'.

Alternatives

Changelog

Badge

Obsidian MCP Server security score, rated on RepoAI

Maintain this server? Add the live badge to your README.