Obsidian MCP Server

by pmmvr

21 426 downloads Not rated yet MIT
GitHub

About

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

Details

License
MIT

Explore

- Advanced search with text, regex, and filter options
- Retrieve full note content and metadata
- Browse vault directory structure efficiently
- Filter by folder, title, tag, and creation/modification dates
- OR/AND logic for multiple title and tag terms
- Context length control and pagination for large vaults

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Obsidian MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

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

pip install obsidian-api-mcp-server

Add to your MCP client configuration (e.g., Claude Desktop):

{
  "mcpServers": {
    "obsidian-api-mcp-server": {
      "command": "uvx",
      "args": [
        "--from",
        "obsidian-api-mcp-server>=1.0.1",
        "obsidian-api-mcp"
      ],
      "env": {
        "OBSIDIAN_API_URL": "https://localhost:27124",
        "OBSIDIAN_API_KEY": "your-api-key-here"
      }
    }
  }
}

uv pip install -e .

export OBSIDIAN_API_KEY="your-api-key-here"
``

Important Security Note: Avoid hardcoding your OBSIDIAN_API_KEY directly into scripts or committing it to version control. Consider using a .env file (which is included in the .gitignore of this project) and a library like python-dotenv to manage your API key, or use environment variables managed by your operating system or shell.

Note: The server defaults to HTTPS and disables SSL certificate verification for self-signed certificates commonly used with local Obsidian instances. For HTTP connections, set OBSIDIAN_API_URL="http://localhost:27123"`.

browse_vault_structure(recursive=True)

uv pip install -e ".[test]"

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)

include_files

Boolean to include files (default: False, folders only for speed)

recursive

Boolean to browse all nested directories

The server provides three powerful tools:

1. search_vault - Advanced search with flexible filters and full content retrieval:
- 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
- created_since/until - Filter by creation date
- modified_since/until - Filter by modification date
- page_size - Results per page
- max_matches_per_file - Limit matches per note

Key Features:
- When no query is provided, automatically returns full content for filter-only searches
- include_content=True forces full content retrieval for any search
- Supports regex patterns for complex text matching (OR conditions, case-insensitive search, etc.)

2. get_note_content - Retrieve complete content and metadata of a specific note by path

3. browse_vault_structure - Navigate vault directory structure efficiently:
- path - Directory to browse (defaults to vault root)
- include_files - Boolean to include files (default: False, folders only for speed)
- recursive - Boolean to browse all nested directories

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "obsidian mcp server": {
            "obsidian-api-mcp-server": {
                "command": "uv",
                "args": [
                    "pip",
                    "install",
                    "obsidian-api-mcp-server"
                ]
            }
        }
    }
}

McpServers

{
    "obsidian-api-mcp-server": {
        "command": "uv",
        "args": [
            "pip",
            "install",
            "obsidian-api-mcp-server"
        ]
    }
}

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.

<a href="https://glama.ai/mcp/servers/@pmmvr/obsidian-api-mcp-server">
Obsidian Server MCP server
</a>

Why This Matters

This server transforms your Obsidian vault into a powerful knowledge base for AI agents, enabling complex multi-step workflows like:

- "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 server's advanced filtering, regex support, and full content retrieval capabilities allow agents to perform nuanced knowledge work that would take hours manually.

Prerequisites

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

Installation

From PyPI (Recommended)

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.

Videos about Obsidian MCP Server

Relevant YouTube tutorials, setups, and demos