Token导航 LogoToken导航TokenDH.com
Roam Research MCP logo
开发工具stdio官方级别未说明来源级核验

Roam Research MCP

MCP Server

roam-research-mcp

MCP Server for Roam Research Graph Integration

工具数

21

提示词数

0

GitHub Stars

94

资源数

0
知识管理命令行工具TypeScriptClaude自动化Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

2b3pro

提供方

2b3pro

最后核验

2026/5/18 02:51

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx roam-research-mcp

详细介绍

Roam Research MCP + CLI

漫游研究MCP+CLI

](https://badge.fury.io/js/roam-research-mcp) ![Project Status: Active](https://www.repostatus.org/#active) ![License: MIT](https://opensource.org/licenses/MIT) ](https://github.com/2b3pro/roam-research-mcp/blob/main/LICENSE)

介绍

我创建这个项目是为了解决一个个人问题:我想直接从以下位置管理我的漫游研究图 克劳德代码 (及其他法学硕士)。当我建造 模型上下文协议(MCP) 服务器允许AI代理访问我的笔记,我意识到底层工具足够强大,可以独立运行。

最初作为人工智能代理的后端发展成为功能齐全的 独立CLI现在,您可以直接从终端将内容放入Roam、搜索图形和管理任务中使用同样强大的API功能,而不需要LLM。

无论你是想让Claude在你的知识库上拥有超能力,还是只是想为你自己的脚本提供一个强大的CLI,这个项目都能满足你的需求。

独立CLI: roam

roam CLI允许您直接从终端与图形交互。支持 标准输入(stdin)管道 适用于所有内容创建和检索命令,使其非常适合自动化工作流程。

快速示例

# Save a quick thought to your daily page
roam save "Idea: A CLI for Roam would be cool"

# Pipe content from a file to a new page
cat meeting_notes.md | roam save --title "Meeting: Project Alpha"

# Create a TODO item on today's daily page
echo "Buy milk" | roam save --todo

# Prepend to top of page (newest-first ordering)
roam save -p "Changelog" --order first "v2.18.0 release"

# Search your graph and pipe results to another tool
roam search "important" --json | jq .

# Search for pages by namespace prefix
roam search --namespace "Convention"    # Finds all Convention/* pages

# Fetch a page by title
roam get "Roam Research"

# Fetch daily pages using any date format (auto-normalized)
roam get today                          # Today's daily page
roam get 2026-03-21                     # ISO date → "March 21st, 2026"
roam get "03/21/2026"                   # US date → "March 21st, 2026"
roam get "March 21"                     # Named (assumes current year)

# Fetch a block with ancestors (parent chain to page root)
roam get abc123def -a              # Block + children + ancestors
roam get abc123def -a -d 0         # Ancestors only, no children

# Fetch page by UID or Roam URL
roam get page abc123def
roam get page "https://roamresearch.com/#/app/my-graph/page/abc123def"

# Sort and group results
roam get --tag Project --sort created --group-by tag

# Find references (backlinks) to a page
roam refs "Project Alpha"

# Update a block (e.g., toggle TODO status)
roam update ((block-uid)) --todo

# Multi-graph: read from a specific graph
roam get "Page Title" -g work

# Multi-graph: write to a protected graph
roam save "Note" -g work --write-key "$ROAM_SYSTEM_WRITE_KEY"

可用命令: get, search, save, refs, update, batch, rename, status. 跑 roam --help 有关任何命令的详细信息。

安装

npm install -g roam-research-mcp
# The 'roam' command is now available globally

______________________________________________________________________

MCP服务器工具

MCP服务器将这些工具暴露给AI助手(如Claude),使他们能够智能地读取、写入和组织您的漫游图。

多图支持: 所有工具均接受可选 graphwrite_key 参数。使用 graph 从您的 ROAM_GRAPHS 配置,以及 write_key 用于在受保护的图上进行写操作。
工具名称描述
roam_fetch_page_by_title按标题获取页面内容。
roam_fetch_page_full_view获取页面内容以及所有带有面包屑上下文和子项的链接引用。
roam_fetch_block通过UID获取具有可选子级(深度)和/或祖先(最多到页面根)的块。
roam_create_page创建新页面,可选择混合文本和表格内容。
roam_update_page_markdown使用智能diff更新页面(保留块UID)。
roam_get_subpages使用可选标记过滤器在命名空间前缀(例如“Project/”)下列出子页面。
roam_search_by_text在图表或特定页面内进行全文搜索。支持页面标题的命名空间前缀搜索。
roam_search_block_refs查找引用页面、标记或块UID的块。
roam_search_by_status查找待办事项或已完成事项。
roam_search_for_tag查找包含特定标记的块(支持排除)。
roam_search_by_date按创建或修改日期查找块/页。
roam_find_pages_modified_today自午夜以来修改的列表页面。
roam_add_todo将TODO项目添加到今天的每日页面。
roam_create_table创建格式正确的漫游表。
roam_create_outline创建分层轮廓。
roam_process_batch_actions一次性执行多个低级操作(创建、移动、更新、删除)。
roam_move_block将块移动到新的父级或位置。
roam_remember / roam_recallRoam中用于AI内存管理的专用工具。
roam_datomic_query执行原始数据日志查询以进行高级筛选
roam_markdown_cheatsheet检索Roam风味的降价参考。

______________________________________________________________________

配置

环境变量

单图模式

对于单个漫游图,请在您的环境或 .env 文件:

ROAM_API_TOKEN=your-api-token
ROAM_GRAPH_NAME=your-graph-name

多图模式(v2.0+)

从单个服务器实例连接到多个漫游图:

ROAM_GRAPHS='{
  "personal": {"token": "token-1", "graph": "personal-db", "memoriesTag": "#[[Personal Memories]]"},
  "work": {"token": "token-2", "graph": "work-db", "protected": true, "memoriesTag": "#[[Work Memories]]"},
  "research": {"token": "token-3", "graph": "research-db"}
}'
ROAM_DEFAULT_GRAPH=personal
ROAM_SYSTEM_WRITE_KEY=your-secret-key

图形配置选项:

属性必填描述
token此图形的Roam API令牌
graph图形名称/数据库标识符
protected如果 true,写要求 ROAM_SYSTEM_WRITE_KEY 确认书
memoriesTag标签 roam_remember/roam_recall (覆盖全局默认值)

写保护: 受保护的图形需要 write_key 参数匹配 ROAM_SYSTEM_WRITE_KEY 对于任何写入操作。这可以防止意外写入敏感图形。

*可选:*

  • ROAM_MEMORIES_TAG:默认标记 roam_remember/roam_recall (根据图表回退 memoriesTag 未设置)。
  • HTTP_STREAM_PORT:启用HTTP流(默认为8088)。

运行服务器

1.标准模式(默认) 最适合本地集成(例如,Claude Desktop、IDE扩展)。

npx roam-research-mcp

注意:Stdio模式不使用任何网络端口。

2.HTTP流模式 最适合远程访问或web客户端。

HTTP_STREAM_PORT=8088 npx roam-research-mcp

3.Docker

docker run -p 8088:8088 --env-file .env roam-research-mcp

在LLM中配置

克劳德桌面/克莱恩:

添加到您的MCP设置文件(例如。, ~/Library/Application Support/Claude/claude_desktop_config.json):

*单幅图:*

{
  "mcpServers": {
    "roam-research": {
      "command": "npx",
      "args": ["-y", "roam-research-mcp"],
      "env": {
        "ROAM_API_TOKEN": "your-token",
        "ROAM_GRAPH_NAME": "your-graph"
      }
    }
  }
}

*多图:*

{
  "mcpServers": {
    "roam-research": {
      "command": "npx",
      "args": ["-y", "roam-research-mcp"],
      "env": {
        "ROAM_GRAPHS": "{\"personal\":{\"token\":\"token-1\",\"graph\":\"personal-db\",\"memoriesTag\":\"#[[Memories]]\"},\"work\":{\"token\":\"token-2\",\"graph\":\"work-db\",\"protected\":true}}",
        "ROAM_DEFAULT_GRAPH": "personal",
        "ROAM_SYSTEM_WRITE_KEY": "your-secret-key"
      }
    }
  }
}

查询块解析器(v2.11.0+)

一个用于以编程方式解析和执行Roam查询块的实用程序。转换 {{[[query]]: ...}} 将语法转换为数据日志查询。

支持的条款

条款语法描述
页面参考[[page]]引用页面的块
块参考((uid))参照块的块
and{and: [[a]] [[b]]}所有条件必须匹配
or{or: [[a]] [[b]]}任何条件都匹配
not{not: [[tag]]}排除匹配项
between{between: [[date1]] [[date2]]}日期范围筛选器
search{search: text}全文搜索
daily notes{daily notes: }仅限每日笔记页面
by{by: [[User]]}由用户创建或编辑
created by{created by: [[User]]}由用户创建
edited by{edited by: User}由用户编辑

相对日期

between 子句支持相对日期: today, yesterday, last week, last month, this year, 7 days ago, 2 months ago等等。

用法

import { QueryExecutor } from 'roam-research-mcp/query';

const executor = new QueryExecutor(graph);

// Execute a query
const results = await executor.execute(
  '{{[[query]]: "My Query" {and: [[Project]] {between: [[last month]] [[today]]}}}}'
);

// Parse without executing (for debugging)
const { name, query } = QueryParser.parseWithName(queryBlock);

工具函数

import { isQueryBlock, extractQueryBlocks } from 'roam-research-mcp/query';

// Detect if text is a query block
isQueryBlock('{{[[query]]: [[tag]]}}'); // true

// Extract all query blocks from a string
extractQueryBlocks(pageContent); // ['{{[[query]]: ...}}', ...]

______________________________________________________________________

支持

如果这个项目能帮助你管理你的知识库或建立很酷的代理,考虑给我买杯咖啡!它有助于保持更新。

https://paypal.me/2b3/5

______________________________________________________________________

许可证

MIT许可证-创建者 .

目录标签

目录标签

知识管理命令行工具TypeScriptClaude自动化developer-tools本地部署AI集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

部署方式(deploymentType,部署类型)

remote-capable

来源包(packageName,安装包名)

roam-research-mcp

工具数量(toolCount,工具数)

21

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononeremote-capable

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP