Setup

  1. Prerequisites
  2. Install the MCP server
  3. Configure your MCP client
    1. Claude Code (CLI)
    2. Claude Desktop
    3. Cursor
    4. VS Code (GitHub Copilot Chat / MCP)
    5. Other MCP clients
  4. Initial indexing
  5. Building from source

Prerequisites

  • .NET 10 SDK — only needed to build from source; the published tool is self-contained and doesn’t require the runtime.
  • Ollama installed and running at http://localhost:11434.
  • The nomic-embed-text embedding model pulled in Ollama:
    ollama pull nomic-embed-text
    

Install the MCP server

dotnet tool install -g obsidian-docs-mcp

This installs the obsidian-docs-mcp command as a .NET Global Tool, self-contained for your platform (Windows, macOS, or Linux — x64 and arm64).

Configure your MCP client

Claude Code (CLI)

Global (all projects):

claude mcp add --scope user --transport stdio obsidian-docs-mcp -- obsidian-docs-mcp

Local (this project only):

claude mcp add --scope project --transport stdio obsidian-docs-mcp -- obsidian-docs-mcp

Claude Desktop

Add to your claude_desktop_config.json:

  • Linux/WSL: ~/.config/Claude/claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "obsidian-docs-mcp": {
      "command": "obsidian-docs-mcp"
    }
  }
}

You can also run obsidian-docs-mcp setup from a terminal to have the tool write this configuration for you automatically.

Cursor

Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json in your project (local):

{
  "mcpServers": {
    "obsidian-docs-mcp": {
      "command": "obsidian-docs-mcp"
    }
  }
}

VS Code (GitHub Copilot Chat / MCP)

Create .vscode/mcp.json in your workspace. VS Code uses servers (not mcpServers) and requires an explicit type:

{
  "servers": {
    "obsidian-docs-mcp": {
      "type": "stdio",
      "command": "obsidian-docs-mcp"
    }
  }
}

Other MCP clients

Any client with MCP registry support can discover this server via its published manifest name io.github.sandovaldavid/obsidian-docs-mcp (see .mcp/server.json). For clients without registry support, the same pattern applies: a stdio server running the obsidian-docs-mcp command with no arguments — check your client’s docs for its config file location and whether it expects mcpServers or servers as the top-level key.

Initial indexing

The first time you run the server (with no CLI arguments — i.e. as the MCP server itself), if the local index is empty it automatically downloads a periodically-regenerated prebuilt index (a SQLite database with embeddings already computed) instead of embedding everything locally, so search works within seconds. It only falls back to a live reindex if that download isn’t available.

To force a fresh reindex yourself (e.g. to pick up recent Obsidian doc changes, or to restrict which folders get indexed), run:

obsidian-docs-mcp index

This downloads the latest Obsidian Developer Docs and User Help content from GitHub, generates embeddings via Ollama, and stores everything in a local SQLite database. It can take a few minutes depending on your machine and Ollama’s speed.

You can restrict indexing to specific top-level folders per source to cut that time down, e.g. limiting User Help to English, Spanish, and the sandbox examples instead of all 32 language folders:

obsidian-docs-mcp index en,es,Sandbox          # User Help only
obsidian-docs-mcp index en,es,Sandbox en       # User Help and Developer Docs both restricted

Check progress or the chunk count at any time with:

obsidian-docs-mcp index-status

You can also trigger a reindex from within an agent conversation by asking it to run the ReindexDocumentation tool (same optional folder-filter parameters as above) — it runs in the background so it doesn’t block your session.

Building from source

git clone https://github.com/sandovaldavid/obsidian-docs-mcp.git
cd obsidian-docs-mcp
dotnet build -c Release ObsidianDocsMcp/ObsidianDocsMcp.csproj
dotnet pack -c Release ObsidianDocsMcp/ObsidianDocsMcp.csproj -o ./artifacts
dotnet tool install -g --add-source ./artifacts obsidian-docs-mcp
obsidian-docs-mcp index

To run directly from source without installing (no packaging step needed), copy mcp-config.example.json to mcp-config.json, replace <ABSOLUTE_PATH_TO_PROJECT> with your local path, and point your MCP client at that file.


Back to top

Copyright © 2026 David Sandoval. Distributed under the MIT License.   Latest release version

This site uses Just the Docs, a documentation theme for Jekyll.