Labsco
MCP SERVER

Roam Research

by PhiloSolares

Add to your Roam Research graph, search it by tag or block reference, and pull web pages, PDFs and YouTube transcripts into it.

Note-Taking & Personal Knowledge Bases
Summary
Searches the graph as a graph, and brings outside content into it.

Block references, parent-child navigation and raw Datalog mean questions like "what links here" work properly, which flat text search cannot answer. The URL handling is the other half: a PDF or a video becomes notes inside Roam rather than a link you meant to read. Everything runs against a live graph with a write-capable token, so it creates and edits real pages.

What it is

A Python bridge between an assistant and a Roam Research graph. It covers writing structured content, searching the graph the way Roam itself thinks about it — blocks, references, hierarchy — and a memory layer that persists what you tell it to remember across conversations.

What you get
  • Content creation: new pages with nested content and headings, blocks placed in the right hierarchy, structured outlines, Markdown import that keeps its nesting, and todo items with TODO status
  • Updates individually or in batches, including pattern transformations on block content
  • Search by title, text or tag; TODO and DONE items with filters; recently modified content; block references and hierarchy; creation and modification dates
  • Custom Datalog queries when the built-in searches are not specific enough
  • A memory system that stores and recalls facts across conversations, tagged for filtering
  • URL handling that detects content type: web page extraction, PDF text extraction and YouTube transcripts
Requirements

A Roam API token created under your graph's settings, plus the graph name — `ROAM_API_TOKEN` and `ROAM_GRAPH_NAME`. Launch with `uvx git+https://github.com/PhiloSolares/roam-mcp.git`, or build the Docker image and run it on port 3000. `MEMORIES_TAG` changes the default `#[[Memories]]` tag. The Python package is `roam-mcp`, version 0.2.0, with the entry point `roam-mcp`.

Setup effort

One command plus a key — uvx git+https://github.com/PhiloSolares/roam-mcp.git, then supply credentials