Roam Research Integration
STDIOMCP server connecting Claude and AI assistants to Roam Research graph.
MCP server connecting Claude and AI assistants to Roam Research graph.
A Model Context Protocol (MCP) server that connects Claude and other AI assistants to your Roam Research graph.
This server acts as a bridge between AI assistants and your Roam Research database. After setup, you can simply ask Claude to work with your Roam data - no coding required.
For example, you can say:
Install Claude Desktop from https://claude.ai/download
Edit your Claude Desktop configuration file:
~/Library/Application Support/Claude/claude_desktop_config.json
%APPDATA%\Claude\claude_desktop_config.json
Add this configuration:
{ "mcpServers": { "roam-helper": { "command": "uvx", "args": ["git+https://github.com/PhiloSolares/roam-mcp.git"], "env": { "ROAM_API_TOKEN": "<your_roam_api_token>", "ROAM_GRAPH_NAME": "<your_roam_graph_name>" } } } }
Once set up, simply chat with Claude and ask it to work with your Roam graph. Claude will use the appropriate MCP commands behind the scenes.
Example conversations:
Creating Content:
You: "Claude, please create a new page in my Roam graph called 'Project Ideas' with a section for mobile app ideas."
Searching Content:
You: "Find all blocks in my Roam graph tagged with #ProjectIdeas that also mention mobile apps."
You: "Show me all the TODO items I created this week."
Using the Memory System:
You: "Remember that I want to use spaced repetition for learning JavaScript."
Later: You: "What learning techniques have we discussed for programming?"
Working with External Content:
You: "Extract the main points from this PDF and add them to my Roam graph."
You: "Get the transcript from this YouTube video about productivity."
By default, memories are stored with the tag #[[Memories]]
. To use a different tag:
"env": { "ROAM_API_TOKEN": "your-token", "ROAM_GRAPH_NAME": "your-graph", "MEMORIES_TAG": "#[[Claude/Memories]]" }
You can run the Roam MCP server in a Docker container:
docker build -t roam-mcp .
Run with environment variables:
docker run -p 3000:3000 \ -e ROAM_API_TOKEN="your_api_token" \ -e ROAM_GRAPH_NAME="your_graph_name" \ roam-mcp
Configure Claude Desktop to use the containerized server:
{ "mcpServers": { "roam-helper": { "command": "docker", "args": ["run", "--rm", "-p", "3000:3000", "-e", "ROAM_API_TOKEN=your_token", "-e", "ROAM_GRAPH_NAME=your_graph", "roam-mcp"], "env": {} } } }
MIT License