MCP Hub
Back to servers

Obsidian MCP Server

A robust MCP server for Obsidian that enables AI assistants to manage notes and folders through direct filesystem access with advanced search, frontmatter parsing, and performance-optimized caching.

Tools
11
Updated
Jan 18, 2026

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 build

Configuration

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

ToolDescription
list_notesList all notes in the vault
read_noteRead the content of a note
create_noteCreate a new note
update_noteUpdate an existing note
delete_noteDelete a note
get_note_metadataGet frontmatter and tags
search_vaultSearch with required query
advanced_search_vaultAdvanced search with all options
search_vault_streamStreaming search for large vaults
manage_folderCreate, rename, move, or delete folders
get_cache_statsGet 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 --> FW

See Features Reference for detailed architecture documentation.

Performance Features

FeatureDescriptionDefault
File List CacheCache folder listings60s TTL
Content CacheLRU cache for file contents100 entries
Search Result CacheCache search query results50 entries
Persistent CacheLMDB-backed persistenceDisabled
Inverted IndexFast word-to-files lookupDisabled
Path TrieEfficient glob pattern matchingDisabled
File WatcherReal-time cache invalidationEnabled
Cache WarmupPre-load cache on startupDisabled

Configuration Quick Reference

VariableDefaultDescription
OBSIDIAN_VAULT_PATHRequiredPath to your Obsidian vault
OBSIDIAN_ENABLE_PERSISTENT_CACHEfalseEnable LMDB persistence
OBSIDIAN_ENABLE_INVERTED_INDEXfalseEnable fast text search index
OBSIDIAN_ENABLE_PATH_TRIEfalseEnable fast glob matching
OBSIDIAN_ENABLE_CACHE_WARMUPfalsePre-load cache on startup

See Configuration Reference for all 19 environment variables.

Development

# Build
npm run build

# Development mode
npm run dev

# Run tests
npm test

Project 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 class

Documentation

Security

  • Operations are restricted to the configured vault path
  • Path traversal protection is implemented
  • Consider running in a sandboxed environment for production use

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Reviews

No reviews yet

Sign in to write a review