Skip to content

🔌 可选 MCP Provider 接入指南

运行 rsk upgrade 后,你可能会看到类似以下的提示信息:

⚠  MCP metadata-registry: RESEARCH_MCP_METADATA_REGISTRY_CMD not configured
⚠  MCP fulltext-retrieval: RESEARCH_MCP_FULLTEXT_RETRIEVAL_CMD not configured
...

这些⚠仅为提示,不影响框架核心功能。 这些 MCP(模型上下文协议工具)是可选的外部能力增强接口。本文档说明它们各是什么、从哪里获取、以及如何接入。


工作原理

每个 MCP 对应一个环境变量(RESEARCH_MCP_<NAME>_CMD)。
系统在执行任务时,会通过这个命令启动一个子进程,传入 JSON 数据包,并读取 JSON 格式的响应。

查找逻辑(优先级从高到低):

  1. 环境变量 → 使用你指定的外部命令
  2. 内置 Python 脚本(scripts/mcp_<name>.py)→ 自动使用内置实现
  3. 均无 → 显示 ⚠ 警告,任务仍可运行(无外部工具辅助)

各 MCP Provider 说明与接入方式

1. metadata-registry — 文献元数据标准化

作用: 补全和标准化论文的 DOI、期刊、年份、作者信息。
使用场景: B 阶段(文献处理)、C1 任务等。

推荐工具:

工具类型地址
OpenAlex MCP开源 Pythongithub.com/b-vitamins/openalex-mcp
Semantic Scholar(内置)已内置,无需配置
bash
# 示例:接入 OpenAlex MCP
pip install openalex-mcp
export RESEARCH_MCP_METADATA_REGISTRY_CMD="python3 -m openalex_mcp"

2. fulltext-retrieval — 论文全文获取

作用: 解析并获取论文 PDF 全文、追踪版本来源。
使用场景: B1(系统综述)、B2(全文提取)任务。

推荐工具:

工具类型地址
Zotero MCP ServerNode.js,接入本地 Zotero 库github.com/zcaceres/zotero-mcp
Unpaywall API wrapper可获取开放获取全文自定义脚本接入 api.unpaywall.org
bash
# 接入 Zotero MCP(需要 Zotero 桌面客户端运行中)
npm install -g @zcaceres/zotero-mcp-server
export RESEARCH_MCP_FULLTEXT_RETRIEVAL_CMD="npx -y @zcaceres/zotero-mcp-server"

提示: 详细的 Zotero 接入流程见 mcp-zotero-integration.md


3. screening-tracker — 文献筛选状态追踪

作用: 跟踪 PRISMA 流程中每篇文献的纳入/排除决策状态。
使用场景: B1 系统综述任务。

推荐工具:

工具类型地址
Rayyan MCP(实验性)接入 Rayyan 平台 APIrayyan.ai 开发者文档
自定义 SQLite 追踪器本地文件参考下方"自建 stub"章节

Rayyan 是目前最主流的系统综述文献筛选平台(支持多人协作、盲筛)。如无现成 MCP,可先用轻量 stub 脚本代替(见文末)。


4. extraction-store — 结构化数据提取存储

作用: 将从论文中提取的研究特征、效应量、结局指标等存入结构化数据库。
使用场景: B2/B6/E 系列(数据提取与分析)任务。

推荐工具:

工具类型地址
Covidence MCP(规划中)系统综述管理平台covidence.org
本地 CSV/SQLite stub轻量实现参考下方"自建 stub"章节

目前没有成熟的开源 extraction-store MCP,建议先用 stub(见文末)让框架静默跳过该模块。


5. stats-engine — 统计分析引擎

作用: 执行元分析、混合效应模型、贝叶斯推断等统计计算。
使用场景: C3、E3_5、I 系列(统计与代码)任务。

推荐工具:

工具类型地址
R MCP Server使用 metafor/brms 等 R 包github.com/holtzy/R-MCP(参考)
Python 统计 MCP使用 statsmodels/pymc参考下方"自建 stub"章节
bash
# 如果你有 R 环境,可接入 R MCP
export RESEARCH_MCP_STATS_ENGINE_CMD="Rscript /path/to/stats_mcp.R"

# 或使用 Python
export RESEARCH_MCP_STATS_ENGINE_CMD="python3 /path/to/stats_mcp.py"

6. code-runtime — 代码执行运行时

作用: 在沙箱中安全地执行生成的研究代码(Python/R),并返回输出结果。
使用场景: I 系列(研究代码)任务。

推荐工具:

工具类型地址
Jupyter MCP Server通过 Jupyter HTTP 内核执行github.com/datalayer/jupyter-mcp-server
Modal.com MCP云端无服务器代码执行modal.com/docs
bash
pip install jupyter-mcp-server
export RESEARCH_MCP_CODE_RUNTIME_CMD="python3 -m jupyter_mcp_server"

7. reporting-guidelines — 报告规范查询

作用: 查询并验证 CONSORT、PRISMA、STROBE、CHEERS 等报告规范条目的完整性。
使用场景: G/H 系列(合规与投稿)任务。

推荐工具:

工具类型地址
EQUATOR MCP(规划中)接入 EQUATOR Network 数据库equator-network.org
本地规范 YAML stub内嵌规范条目参考下方"自建 stub"章节

目前尚无官方发布的 EQUATOR MCP,但框架内的 skills/G_compliance/reporting-checker.md 技能卡已内嵌核心规范条目,不配置此 MCP 不影响合规检查功能


8. submission-kit — 投稿材料包管理

作用: 管理期刊投稿所需的封面信、作者 CRediT 声明、补充材料清单等文件。
使用场景: H1(投稿准备)任务。

推荐工具:

工具类型地址
Open Journal Systems MCP接入 OJS API参考 pkp.sfu.ca/ojs
Overleaf MCP接入 Overleaf 项目实验性,见 overleaf.com/devs

通常这个 MCP 对于大多数用户意义不大,submission-packager 技能卡已可生成完整的投稿材料包。


统一配置方式

方式 A:.env 文件(推荐,仅对当前项目生效)

在你的项目根目录创建 .env(复制自 .env.example):

bash
# 按需取消注释并填写命令

# RESEARCH_MCP_METADATA_REGISTRY_CMD="python3 -m openalex_mcp"
# RESEARCH_MCP_FULLTEXT_RETRIEVAL_CMD="npx -y @zcaceres/zotero-mcp-server"
# RESEARCH_MCP_SCREENING_TRACKER_CMD="python3 /path/to/screening_stub.py"
# RESEARCH_MCP_EXTRACTION_STORE_CMD="python3 /path/to/extraction_stub.py"
# RESEARCH_MCP_STATS_ENGINE_CMD="python3 /path/to/stats_mcp.py"
# RESEARCH_MCP_CODE_RUNTIME_CMD="python3 -m jupyter_mcp_server"
# RESEARCH_MCP_REPORTING_GUIDELINES_CMD="python3 /path/to/reporting_stub.py"
# RESEARCH_MCP_SUBMISSION_KIT_CMD="python3 /path/to/submission_stub.py"

方式 B:Shell 环境变量(全局生效)

bash
# 添加到 ~/.zshrc 或 ~/.bashrc
export RESEARCH_MCP_STATS_ENGINE_CMD="python3 /path/to/stats_mcp.py"

自建 Stub(让 ⚠ 警告消失的最简方案)

如果你暂时不需要某个 MCP 的功能,但又想消除警告,可以创建一个什么都不做的 stub 脚本。

将下面的文件保存为 scripts/mcp_<name>.py(名称对应 MCP,用下划线替换连字符),系统会自动发现并使用它,无需配置环境变量:

python
# scripts/mcp_screening_tracker.py  (示例:screening-tracker 的 stub)
import json, sys

payload = json.loads(sys.stdin.read())
print(json.dumps({
    "status": "ok",
    "summary": "screening-tracker stub: no external tracker configured.",
    "provenance": [],
    "data": {}
}))

以下 stub 文件名对应关系供参考:

MCP 名称stub 文件名
screening-trackerscripts/mcp_screening_tracker.py
extraction-storescripts/mcp_extraction_store.py
stats-enginescripts/mcp_stats_engine.py
code-runtimescripts/mcp_code_runtime.py
reporting-guidelinesscripts/mcp_reporting_guidelines.py
submission-kitscripts/mcp_submission_kit.py
metadata-registryscripts/mcp_metadata_registry.py
fulltext-retrievalscripts/mcp_fulltext_retrieval.py

验证配置

配置完成后,运行诊断命令检查状态:

bash
python3 -m bridges.orchestrator doctor --cwd .

[OK] 代表已成功接入,[WARNING] 代表仍未配置(但不影响运行)。

Research Skills 文档站