Offers containerized deployment option with volume mounting for Obsidian vaults and persistent index storage.
Supports multi-machine usage with Obsidian vaults synced through Dropbox, maintaining separate optimized indexes on each machine.
Supports multi-machine usage with Obsidian vaults synced through git, maintaining separate optimized indexes on each machine.
Supports multi-machine usage with Obsidian vaults synced through iCloud, maintaining separate optimized indexes on each machine.
Provides full-text search access to Obsidian vaults, including tag-based filtering, frontmatter support, wikilink parsing, and real-time updates without requiring Obsidian plugins.
Obsidian MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with full-text search access to your Obsidian vault.
Features
- Full-text search across all notes using Whoosh search engine
- Tag-based filtering and search
- Frontmatter support - extracts and indexes YAML metadata
- Wikilink parsing - understands Obsidian's
[[note]]
syntax - Real-time updates - watches vault for changes and updates index automatically
- No Obsidian plugins required - works directly with filesystem
- Fast and efficient - pure Python implementation with optimized indexing
Installation
Option 1: Local Installation
- Clone this repository:
- Install dependencies:
Option 2: Docker
- Clone this repository:
- Build the Docker image:
- Run with Docker:
Or use Docker Compose:
Usage
Environment Setup
Set the required environment variable:
Optional environment variables:
Running the Server
Or with command line arguments:
Claude Desktop Integration
Local Installation
Add to your Claude Desktop configuration (~/.config/claude_desktop_config.json
):
Docker Integration
For Docker, you'll need to create a wrapper script since Claude Desktop needs to communicate via stdio. Create a script like:
Then configure Claude Desktop to use this script:
Available Tools
search_notes
Search through your notes using full-text search.
Parameters:
query
(required): Search query stringtags
(optional): Array of tags to filter bylimit
(optional): Maximum results (default: 10)
get_note
Retrieve the full content of a specific note.
Parameters:
identifier
(required): Note path or title
list_recent_notes
Get recently modified notes.
Parameters:
limit
(optional): Maximum results (default: 10)
get_all_tags
List all available tags in the vault.
search_by_tag
Find notes with specific tags.
Parameters:
tags
(required): Array of tags to search forlimit
(optional): Maximum results (default: 20)
get_vault_stats
Get statistics about the vault and search index.
Architecture
- Parser (
parser.py
): Parses markdown files and extracts frontmatter, tags, and wikilinks - Search Index (
search.py
): Whoosh-based full-text search with metadata support - File Watcher (
watcher.py
): Monitors vault for changes and updates index incrementally - MCP Server (
server.py
): Implements the Model Context Protocol interface - Configuration (
config.py
): Handles configuration from environment variables
Development
Running Tests
Code Formatting
Type Checking
Multi-Machine Usage
Perfect for users who sync vaults across multiple machines!
Intelligent Index Updates
- Incremental updates: Only re-indexes files that have changed since last run
- Fast startup: Skips full rebuild when vault hasn't changed
- Cross-machine sync: Works with Obsidian Sync, iCloud, Dropbox, git, etc.
How It Works
- First run: Builds complete search index
- Subsequent runs: Compares file modification times
- Only updates changed files: Fast startup even with large vaults
- Handles file moves/renames: Maintains search accuracy
Configuration for Multi-Machine
Troubleshooting
Index Issues
If search results seem outdated, the server automatically rebuilds the index on startup. You can also delete the index directory to force a complete rebuild.
Multi-Machine Sync
- Index files are local to each machine (not synced)
- Vault content is synced between machines
- Each machine maintains its own optimized index
Permission Issues
Ensure the server has read access to your Obsidian vault directory.
Performance
For large vaults (>10,000 notes), consider:
- Reducing
max_results
for faster queries - Using more specific search terms
- Filtering by tags to narrow results
- Incremental updates are especially beneficial for large vaults
License
MIT License
This server cannot be installed
Provides AI assistants with full-text search access to your Obsidian vault, allowing them to query, retrieve, and analyze notes through the Model Context Protocol.
Related MCP Servers
- -securityAlicense-qualityEnables AI assistants to interact with Obsidian vaults, providing tools for reading, creating, editing and managing notes and tags.Last updated -319468TypeScriptMIT License
- -securityAlicense-qualityProvides a standardized interface for AI assistants to interact with Obsidian vaults through a local REST API, enabling reading, writing, searching, and managing notes.Last updated -51TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables AI assistants to read, write, and manipulate notes in your Obsidian vault through a standardized interface.Last updated -3192TypeScriptISC License
- -securityAlicense-qualityA server implementation that allows AI assistants to read, create, and manipulate notes in Obsidian vaults through the Model Context Protocol.Last updated -8215TypeScriptMIT License