Obsidian MCP Server

MCP server enabling AI agents to perform natural knowledge discovery and analysis across Obsidian vault

Local serverstdioPython

What is the Obsidian MCP server?

Most planning and project tracking work still happens through a UI a human drives. Obsidian MCP server moves it into the conversation instead. MCP server enabling AI agents to perform natural knowledge discovery and analysis across Obsidian vault.

The short version

An MCP (Model Context Protocol) server that enables AI agents to perform sophisticated knowledge discovery and analysis across your Obsidian vault through the Local REST API plugin.

  • "Retrieve notes from my 'Projects/Planning' folder containing 'roadmap' or 'timeline' in titles, created after April 1st, then analyze them for any blockers or dependencies and present a consolidated risk assessment with references to the source notes" —
  • "Find all notes tagged with 'research' or 'analysis' from the last month, scan their content for incomplete sections or open questions, then cross-reference with my 'Team/Expertise' notes to suggest which colleagues could help address each gap" —
  • "Get the complete content of meeting notes from 'Leadership/Quarterly' containing 'budget' or 'headcount', analyze them for action items assigned to my department, and create a chronological timeline with source note references" —

The tools it exposes

The server publishes 14 tools. What each one is for:

  • query — Text or regex search across note content (optional)
  • query_type — Search type: "text" (default) or "regex"
  • search_in_path — Limit search to specific folder path
  • title_contains — Filter by text in note titles (string, array, or JSON string)
  • title_match_mode — How to match multiple terms: "any" (OR) or "all" (AND)
  • tag — Filter by tag (string, array, or JSON string - searches frontmatter and inline #tags)
  • tag_match_mode — How to match multiple tags: "any" (OR) or "all" (AND)
  • context_length — Amount of content to return (set high for full content)
  • include_content — Boolean to retrieve complete content of all matching notes
  • page_size — Results per page
  • max_matches_per_file — Limit matches per note
  • path — Directory to browse (defaults to vault root)

Getting it running

Installation goes through your MCP client rather than a global install: point it at obsidian-api-mcp-server on PyPI and it is fetched when the client starts. The copy-paste blocks for Claude Desktop, Claude Code and Cursor are further down this page.

What it needs from you

Configuration is passed through the environment: OBSIDIAN_API_URL, OBSIDIAN_API_KEY. Treat anything key-shaped as a real credential — scope it to the minimum the server needs, and rotate it if it ever lands in a shared config.

  1. Install the Obsidian Local REST API plugin in your Obsidian vault 2. Configure and enable the plugin in Obsidian settings 3. Note the API URL (default: https://localhost:27124) and API key if you've set one

How it compares

Among the planning and project tracking options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Obsidian's toolset — query, query_type, search_in_path and 11 more — is a fair guide to whether it matches your workflow. It is maintained by pmmvr; worth a glance at recent repository activity before you build anything load-bearing on it.

This entry was verified against Obsidian's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.

Things to watch

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch Obsidian.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • Keep per-call confirmation enabled while you learn its behaviour; it is the cheapest safeguard you have.

Available tools

ToolWhat it does
queryText or regex search across note content (optional)
query_typeSearch type: "text" (default) or "regex"
search_in_pathLimit search to specific folder path
title_containsFilter by text in note titles (string, array, or JSON string)
title_match_modeHow to match multiple terms: "any" (OR) or "all" (AND)
tagFilter by tag (string, array, or JSON string - searches frontmatter and inline #tags)
tag_match_modeHow to match multiple tags: "any" (OR) or "all" (AND)
context_lengthAmount of content to return (set high for full content)
include_contentBoolean to retrieve complete content of all matching notes
page_sizeResults per page
max_matches_per_fileLimit matches per note
pathDirectory to browse (defaults to vault root)
include_filesBoolean to include files (default: False, folders only for speed)
recursiveBoolean to browse all nested directories

How to install the Obsidian MCP server

{
  "mcpServers": {
    "obsidian-api": {
      "command": "uvx",
      "args": ["obsidian-api-mcp-server"],
      "env": {
        "OBSIDIAN_API_URL": "your-value",
        "OBSIDIAN_API_KEY": "your-value"
      }
    }
  }
}

Add to claude_desktop_config.json, then restart Claude Desktop.

Configuration

  1. Install the Obsidian Local REST API plugin in your Obsidian vault 2. Configure and enable the plugin in Obsidian settings 3. Note the API URL (default: https://localhost:27124) and API key if you've set one
VariableDescriptionRequired
OBSIDIAN_API_URLEndpoint or connection string the server talks to.Yes
OBSIDIAN_API_KEYCredential the server authenticates with.Yes

Example prompts to try

  • Use Obsidian to query.
  • Use Obsidian to query type.
  • Use Obsidian to search in path.

Frequently asked questions

Install the Obsidian Local REST API plugin in your vault, enable it, and note the API URL (default: https://localhost:27124) and API key if configured.