Obsidian MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Obsidian MCP Serversearch for recent notes about AI"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
obsidian-mcp
MCP server for Obsidian vaults with hybrid semantic search.
Features
Hybrid search: BM25 + Voyage AI embeddings + Cohere reranking
Backlinks: Pre-computed wikilink graph
Similar notes: Discover hidden connections
Full CRUD: Create, read, update, delete, move notes
Live indexing: Index notes directly from Claude Code without restart
Related MCP server: Obsidian MCP Server
Installation
cd obsidian-mcp
uv syncConfiguration
Copy
.env.exampleto.envand add your API keys:
VOYAGE_API_KEY=your_key
COHERE_API_KEY=your_key # optionalSet your vault path in
config/settings.yaml:
vault:
path: "D:\\path\\to\\your\\vault"Usage
Recommended Workflow (via MCP)
The recommended workflow is to use the MCP tools directly from Claude Code:
1. write -> Create or modify a note (auto-indexes by default)
2. search -> Note is instantly searchableNotes are automatically indexed after write, so manual indexing is only needed for:
Notes created manually in Obsidian (use
indextool)Bulk imports (use
indexwithfull=True)
Interactive Menu
python obsidian-menu.pyCLI
# Full indexation
python obsidian-cli.py --vault "/path/to/vault" index --full
# Incremental indexation
python obsidian-cli.py --vault "/path/to/vault" index
# Status
python obsidian-cli.py --vault "/path/to/vault" status
# Search
python obsidian-cli.py --vault "/path/to/vault" search "query"Note: CLI indexation requires a Claude Code restart for changes to be visible in MCP searches due to ChromaDB caching. Use the
indexMCP tool instead for live updates.
Claude Code Configuration
Option 1: HTTP/SSE Server (Recommended)
Run as a shared HTTP server to avoid duplicating processes across Claude sessions.
1. Start the HTTP server:
uv run python -m src.server_http
# Server runs on http://127.0.0.1:8322/mcp2. Configure Claude Code (~/.claude.json):
{
"mcpServers": {
"obsidian": {
"type": "sse",
"url": "http://127.0.0.1:8322/mcp"
}
}
}3. (Optional) Run as systemd service (Linux):
# Create ~/.config/systemd/user/obsidian-mcp.service
[Unit]
Description=Obsidian MCP HTTP Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/path/to/obsidian-mcp
Environment="VOYAGE_API_KEY=your_key"
Environment="COHERE_API_KEY=your_key"
Environment="OBSIDIAN_VAULT=/path/to/vault"
ExecStart=/path/to/uv run python -m src.server_http
Restart=on-failure
[Install]
WantedBy=default.target
# Enable and start
systemctl --user daemon-reload
systemctl --user enable --now obsidian-mcpOption 2: Stdio (per-session)
Add to ~/.claude.json:
{
"mcpServers": {
"obsidian": {
"command": "uv",
"args": ["--directory", "/path/to/obsidian-mcp", "run", "python", "-m", "src.server"],
"env": {
"VOYAGE_API_KEY": "your_key",
"COHERE_API_KEY": "your_key",
"OBSIDIAN_VAULT": "/path/to/vault"
}
}
}
}MCP Tools
Tool | Description |
| Hybrid semantic search (BM25 + embeddings + reranking) |
| Read note with metadata and frontmatter |
| Create or update note (auto-indexes by default) |
| Delete note |
| Move or rename note |
| List notes with folder/tag filters |
| Find notes linking to a note |
| Find semantically similar notes |
| Index new/modified notes (live, no restart) |
| Rebuild BM25 index from ChromaDB |
| Reset all caches and connections |
Auto-Indexing (Write Tool)
By default, write automatically indexes the note after creating or modifying it:
# Auto-indexes after writing (default)
write(path="Notes/my_note.md", content="...")
# Disable auto-indexing if needed
write(path="Notes/my_note.md", content="...", auto_index=False)This makes new notes instantly searchable without manual indexing.
Index Tool
The index tool indexes notes directly within the MCP server process, avoiding ChromaDB cache synchronization issues:
# Incremental indexation (default)
index() # Only indexes new/modified notes
# Full reindexation
index(full=True) # Reindexes all notesWhy use index instead of CLI?
ChromaDB maintains an HNSW index cache per process. When you index via CLI (separate process), the MCP server doesn't see the changes until restart. The index tool solves this by:
Running indexation in the same process as the MCP server
Resetting internal caches after indexation
Making new notes immediately searchable
Project Structure
obsidian-mcp/
src/
server.py # MCP server (11 tools)
indexer.py # Indexation engine
retriever.py # Hybrid search (BM25 + semantic + RRF)
note_parser.py # Obsidian markdown parser
wikilink_graph.py # Backlink graph
config/
settings.yaml # Configuration
chroma_db/ # Vector database (ChromaDB)
obsidian-cli.py # CLI interface
obsidian-menu.py # Interactive menuTechnical Details
Hybrid Search Pipeline
BM25: Lexical search for exact term matching
Semantic: Voyage AI embeddings (
voyage-3) for meaningFusion: Reciprocal Rank Fusion (RRF) combines results
Reranking: Cohere reranker (
rerank-v4.0-pro) for final ordering
Embedding Model
Model:
voyage-3Dimensions: 1024
Provider: Voyage AI
Database
ChromaDB with persistent storage
SQLite backend with WAL mode
HNSW index for fast similarity search
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-quality-maintenanceEnables AI assistants to read, write, search, and navigate Obsidian vault notes with support for CRUD operations, full-text search, graph navigation, daily notes, and frontmatter management.Last updated3,424
- AlicenseAqualityDmaintenanceEnables AI assistants to interact with local Obsidian vaults through direct filesystem access for reading, creating, and managing notes. It features high-performance SQLite indexing for fast searches, regex support, and tools for organizing tags and links without requiring additional plugins.Last updated271MIT
- Alicense-qualityDmaintenanceEnables AI assistants to search, create, and manage notes in an Obsidian vault via 40+ local tools.Last updated20MIT
- Alicense-qualityDmaintenanceEnables AI assistants to manage Obsidian vaults programmatically with 28 tools for reading, writing, editing, and analyzing notes.Last updatedMIT
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Long-term memory for AI assistants. Hybrid retrieval, query expansion, auto-topics.
Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tofunori/obsidian-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server