Obsidian MCP Server
Obsidian MCP Server
A Model Context Protocol (MCP) server that provides seamless integration with Obsidian vaults via direct filesystem access, enabling AI assistants to interact with your notes and knowledge base.
Features
Note Management: Create, read, update, and delete notes
Folder Operations: Create, rename, move, and delete folders
Vault Search: Search with glob patterns, regex, tags, frontmatter, and relevance scoring
Intelligent Caching: Multi-layer caching with optional LMDB persistence
Real-Time Monitoring: File watching for automatic cache invalidation
Quick Start
Installation
npm install
npm run buildConfiguration
Add to your MCP client configuration:
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": ["/path/to/obsidian-mcp/build/index.js"],
"env": {
"OBSIDIAN_VAULT_PATH": "/path/to/your/vault"
}
}
}
}See Configuration Reference for all options.
Available Tools
Tool | Description |
List all notes in the vault | |
Read the content of a note | |
Create a new note | |
Update an existing note | |
Delete a note | |
Get frontmatter and tags | |
Search with required query | |
Advanced search with all options | |
Streaming search for large vaults | |
Create, rename, move, or delete folders | |
Get cache performance statistics |
See Tools Reference for detailed documentation.
Architecture
flowchart TB
subgraph tools [MCP Tools]
T1[search_vault]
T2[read_note]
T3[list_notes]
end
subgraph caching [Caching Layer]
FC[FileListCache]
CC[ContentCache]
SC[SearchResultCache]
PC[PersistentCache]
end
subgraph optimization [Search Optimization]
II[InvertedIndex]
PT[PathTrie]
end
subgraph fs [Filesystem]
V[(Obsidian Vault)]
FW[FileWatcher]
end
T1 --> SC
T1 --> II
T1 --> PT
T2 --> CC
T3 --> FC
CC --> PC
FC --> PC
SC --> PC
FW --> FC
FW --> CC
FW --> II
V --> FWSee Features Reference for detailed architecture documentation.
Performance Features
Feature | Description | Default |
Cache folder listings | 60s TTL | |
LRU cache for file contents | 100 entries | |
Cache search query results | 50 entries | |
LMDB-backed persistence | Enabled | |
Fast word-to-files lookup | Enabled | |
Efficient glob pattern matching | Enabled | |
Real-time cache invalidation | Enabled | |
Pre-load cache on startup | Disabled |
Configuration Quick Reference
Variable | Default | Description |
| Required | Path to your Obsidian vault |
|
| Enable LMDB persistence |
|
| Enable fast text search index |
|
| Enable fast glob matching |
|
| Pre-load cache on startup |
See Configuration Reference for all environment variables.
Development
# Build
npm run build
# Development mode
npm run dev
# Run tests
npm testProject Structure
src/
├── config/ # Configuration management
├── handlers/ # MCP request handlers
├── services/
│ ├── cache/ # Caching services
│ ├── search/ # Search optimization services
│ ├── fileSystem.ts # Core filesystem operations
│ ├── FileWatcher.ts # File change monitoring
│ └── FrontmatterParser.ts # YAML frontmatter parsing
├── types/ # TypeScript type definitions
├── index.ts # Entry point
└── server.ts # Main server classDocumentation
Tools Reference - All available MCP tools
Features Reference - Internal features and architecture
Configuration Reference - All environment variables
Security
Operations are restricted to the configured vault path
Path traversal protection is implemented
Consider running in a sandboxed environment for production use
Contributing
Fork the repository
Create a feature branch
Make your changes
Add tests if applicable
Submit a pull request
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/markheramis/obsidian-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server