Roam Research

Read, search and write in a Roam graph.

Opens Agent Studio, where connecting is one click. The connector URL below works in any MCP client.

Paste it into any MCP client. Setup docs

What the Roam Research connector does

The Roam Research MCP server connects your Roam graphs — an outliner-based, networked note-taking tool — to Claude, ChatGPT and any MCP-compatible agent. Anthropic's directory lists 20 tools that search, query, read and write pages and blocks. Two of them delete irreversibly. Sign-in is OAuth, and you choose which graphs to connect and at what access level.

Verified connector

Listed by Anthropic as a partner connector in its Connectors Directory.

Connection checked by Agentman on .

Anthropic states this reflects the level of review a connector received, not a security audit.

Roam Research tools (20)

  • add_comment
  • append_to_daily_note
  • create_block
  • create_page
  • datalog_query
  • delete_block
  • delete_page
  • get_backlinks
  • get_block
  • get_comments
  • get_graph_guidelines
  • get_page
  • list_graphs
  • move_block
  • roam_query
  • search
  • search_templates
  • setup_new_graph
  • update_block
  • update_page

Tool names from Anthropic's directory listing. This server requires sign-in, so we could not read tool descriptions or parameter schemas.

Limits

  • Deletions are irreversible and Roam says so. There is no undo history that reverses bulk operations or API deletions. A delete of a referenced block or page also rewrites the blocks that referenced it.
  • OAuth scopes provide no boundary. All four advertised scopes are OpenID identity claims, and the RFC 9728 descriptor declares no scopes_supported. The per-graph access level is the only real control, and it is chosen outside the OAuth consent screen.
  • We did not observe the access-level picker. The management page is sign-in-walled and we did not authenticate. The three levels named here come from Roam's open-source connect flow, and the fourth tier from a source comment; how the hosted connector presents them at consent time is unverified.
  • The hide-from-AI tags are not a security control. Roam states this itself. datalog_query bypasses the filter, and search_templates is exempt from it entirely.
  • We could not read the live tool list. The endpoint returned 401 to an anonymous request, so no parameter schemas were read from the wire. Tool names come from Anthropic's directory; the hosted surface, descriptions and annotations come from Roam's open source at commit 9378447, which the hosted server consumes as a library rather than being that code.
  • The pinned surface can drift between the repo and the hosted server. Roam's architecture doc states the hosted server pins the shared library with a caret range, so patch releases "reach it automatically, with no review on their side", while a minor release waits until Roam widens the range. The 18-tool list is therefore accurate as of the commit read, not permanently.
  • Roam's official local MCP is labelled alpha software and subject to breaking changes. That label is on the open repository; the hosted connector carries no such label, and we found no Roam statement about the hosted server's maturity either way.
  • Roam's nominated documentation page could not be read. Anthropic's directory points at a page inside Roam's own help graph, which renders client-side from a JavaScript application; a plain fetch returns only the empty shell, with no embedded data payload, and we had no working browser to render it. Everything here comes from Roam's public repository, its MCP landing page, and live metadata instead.
  • Guidelines stored in a graph steer agents that read it. On a shared graph, anyone who can write can write agent instructions.

Frequently asked questions

Can the Roam Research connector delete my notes?

Yes. Two of the tools are delete_page and delete_block, and Roam's own repository warns in a caution block that changes may be difficult or impossible to undo, because Roam has no undo history that reverses bulk operations or deletions made through the API. Both tools carry destructiveHint true. Back up your graph before connecting one with write access.

How many tools does the Roam Research MCP server have?

Anthropic lists 20, and Roam's own source pins the hosted surface at 18. A test file in Roam's public repository names the exact 18 tools the hosted server registers, and it excludes list_graphs and setup_new_graph. Roam's architecture doc says the hosted server writes its own versions of those two, so 20 is plausible and 18 is the graph-content surface.

Does deleting one block in Roam change other blocks?

Yes, if anything references it. Roam's delete_block description states that deleting a referenced block replaces those references with its text, and calls this graph surgery rather than string removal. Deleting a page removes the double-bracket links to it from every block that linked there. So one delete call can edit pages you never named.

What OAuth permissions does the Roam Research MCP server request?

Only identity claims. Roam's authorization server advertised four scopes on 2026-08-22 — email, offline_access, openid and profile — and none of them describes graph access. Nothing at the OAuth consent screen separates reading a page from deleting one. The real limit is the per-graph access level you pick separately, outside the OAuth grant.

Can I give Claude read-only access to a Roam graph?

Yes, but not through OAuth. Roam's connect flow offers three levels — read-only, read-append and full — chosen per graph rather than per connector. Roam's source also names a fourth tier, read-edit-own, which lets an agent edit or delete only content it created, and a code comment states this tier is enforced server-side by the hosted MCP only.

Can I hide part of my Roam graph from the AI?

Partly. Blocks tagged with the AI-hide or private tags, and everything nested under them, are omitted from six read tools. Roam states plainly that this is a convenience filter and not a security guarantee, because datalog_query reads the database directly and skips the filter. Roam also warns that template previews are not filtered at all.

Does the Roam connector reach my whole graph or just part of it?

Whichever graphs you connect, and the whole of each one. Access is granted per graph, so a graph you never connect is unreachable. Within a connected graph there is no folder or page-level scope in the tool schemas — search, datalog_query and get_page address any page in it, minus the hidden-tag filter that datalog_query bypasses.

How can I tell which edits in Roam were made by AI?

By the author name. Anthropic's directory entry states every change Claude makes is attributed to a distinct AI author in your graph. Roam's source corroborates this: a comment in the tool registry says get_graph_guidelines may provision a display page named for the user with an AI suffix when the grant allows writes. Filter on that author to review AI edits.

What can the connector do with an encrypted Roam graph?

Append only. Roam's changelog describes an append-only variant of its agent guidance built for encrypted graphs, and states that such connections get get_graph_guidelines and append_to_daily_note only. So on an encrypted graph the connector can capture new notes into a daily page but cannot edit, move or delete existing content.

Sources

Use it in an agent

Put Roam Research to work.

Connect Roam Research once and your agents call these tools on their own: on a schedule, in a workflow, with nobody at the keyboard.