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]]
syntaxReal-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 wikilinksSearch Index (
search.py
): Whoosh-based full-text search with metadata supportFile Watcher (
watcher.py
): Monitors vault for changes and updates index incrementallyMCP Server (
server.py
): Implements the Model Context Protocol interfaceConfiguration (
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 queriesUsing 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
local-only server
The server can only run on the client's local machine because it depends on local resources.
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 -903532MIT 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 -58MIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that enables AI assistants to read, write, and manipulate notes in your Obsidian vault through a standardized interface.Last updated -59032ISC 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 -7085MIT License