Org-roam MCP Server
Enables interaction with org-roam knowledge bases, allowing search, retrieval, creation, and linking of notes while respecting org-roam's file structure and conventions.
README
Org-roam MCP Server
A Model Context Protocol (MCP) server that enables Claude Code and other MCP clients to interact with your org-roam knowledge base.
Features
- Read Operations: Search and retrieve org-roam nodes, explore backlinks and relationships
- Write Operations: Create new notes, update existing content, add links between nodes
- Full Integration: Respects org-roam's file structure, UUID system, and conventions
- Auto-Detection: Automatically finds your org-roam database and directory
- Fast Search: Leverages org-roam's SQLite database for efficient queries
- Robust Error Handling: Comprehensive input validation and descriptive error messages
- Path Normalization: Handles quoted/unquoted file paths and node IDs consistently
- Database Synchronization: Automatic refresh after file operations for immediate updates
Recent Improvements
v0.2.0 - Enhanced Reliability (Latest)
- ๐ง Fixed File Path Handling: Resolved issues with quoted file paths from the org-roam database
- ๐ Improved Node ID Support: Now handles both quoted and unquoted node ID formats seamlessly
- ๐ Enhanced Search Synchronization: Database automatically refreshes after create/update operations
- โ Better Error Handling: Added comprehensive input validation with clear error messages
- ๐งน Path Cleaning: Automatic normalization of file paths with quote removal
- ๐ Improved Logging: Better error reporting and debugging information
Installation
# Using uvx (recommended)
uvx org-roam-mcp
# Or with pip in a virtual environment
pip install org-roam-mcp
Configuration
Auto-Detection
The server automatically detects your org-roam setup by looking for:
Database locations:
~/.emacs.d/org-roam.db~/org-roam.db~/.config/emacs/org-roam.db~/Documents/org-roam/org-roam.db
Directory locations:
~/org-roam/~/Documents/org-roam/~/Dropbox/org-roam/~/Notes/
Manual Configuration
Override auto-detection with environment variables:
export ORG_ROAM_DB_PATH="/path/to/your/org-roam.db"
export ORG_ROAM_DIR="/path/to/your/org-roam-directory"
export ORG_ROAM_MAX_SEARCH_RESULTS=100 # Default: 50
Usage with Claude Code
Add to your Claude Code MCP configuration (~/.claude_code/mcp.json):
{
"mcpServers": {
"org-roam": {
"command": "uvx",
"args": ["org-roam-mcp"]
}
}
}
Or for local development:
{
"mcpServers": {
"org-roam": {
"command": "python",
"args": ["-m", "org_roam_mcp.server"],
"env": {
"ORG_ROAM_DB_PATH": "/path/to/your/org-roam.db",
"ORG_ROAM_DIR": "/path/to/your/org-roam"
}
}
}
}
Available Tools
Search and Discovery
search_nodes: Search for nodes by title, tags, or aliasesget_node: Get detailed information about a specific nodeget_backlinks: Find all nodes that link to a specific nodelist_files: List all org files in your org-roam directory
Content Creation and Modification
create_node: Create a new org-roam node with title, content, and tagsupdate_node: Update the content of an existing nodeadd_link: Create a link from one node to another
Resources
The server provides these resources for read-only access:
org-roam://nodes: List of all nodes in your databaseorg-roam://stats: Database statistics (node count, file count, etc.)org-roam://node/{id}: Detailed information about a specific node
Examples
Creating a New Note
# Through Claude Code
"Create a new org-roam note titled 'Machine Learning Concepts' with the tag 'AI'"
Searching Your Knowledge Base
# Through Claude Code
"Search my org-roam notes for anything related to 'neural networks'"
Exploring Connections
# Through Claude Code
"Show me all the notes that link to my 'Deep Learning' note"
Development
Running from Source
- Clone the repository:
git clone <repository-url>
cd org-roam-mcp
- Create virtual environment and install:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -e .
- Run tests:
pytest tests/ -v
- Run the server:
python -m org_roam_mcp.server
Project Structure
org-roam-mcp/
โโโ src/org_roam_mcp/
โ โโโ __init__.py
โ โโโ server.py # Main MCP server implementation
โ โโโ database.py # SQLite database interface
โ โโโ file_manager.py # Org file operations
โ โโโ config.py # Configuration management
โโโ tests/
โ โโโ test_database.py
โ โโโ test_file_manager.py
โโโ pyproject.toml
โโโ README.md
File Format Compatibility
The server creates org-roam files with the standard structure:
:PROPERTIES:
:ID: 12345678-1234-1234-1234-123456789abc
:END:
#+title: Your Note Title
#+filetags: :tag1: :tag2:
Your note content here...
Requirements
- Python 3.8+
- Existing org-roam setup with SQLite database
- Read/write access to your org-roam directory
Troubleshooting
Database Not Found
If you get a "Database not found" error:
- Check that org-roam is set up and has created a database
- Run
M-x org-roam-db-syncin Emacs to ensure the database exists - Set
ORG_ROAM_DB_PATHenvironment variable to the correct path
Permission Issues
Ensure the MCP server has read/write access to:
- Your org-roam database file
- Your org-roam directory and all subdirectories
Integration Issues
- Restart Claude Code after adding the MCP server configuration
- Check Claude Code logs for any connection errors
- Verify the server starts correctly by running it manually
Contributing
- Fork the repository
- Create a feature branch
- Add tests for new functionality
- Ensure all tests pass
- Submit a pull request
License
MIT License - see LICENSE file for details
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.