mcpField
R
ROBINS-I V2 MCP

ROBINS-I V2 MCP

本地服务
github.com/Black-Swan-Causal-Labs科研与教育012 周前更新

关于 ROBINS-I V2 MCP

ROBINS-I V2 MCP 是面向非随机队列研究特定结果的偏倚风险评估 MCP 服务。它以可追溯证据和确定性算法计算各领域及总体判断,并支持人工复核与导出 robvis 数据。

主要功能

  1. 01解析论文及补充材料
  2. 02将引文绑定到原文位置
  3. 03按算法计算领域与总体判断
  4. 04支持人工确认及有理由的覆盖
  5. 05导出 robvis CSV

适用场景

  1. 01评估目标试验模拟研究的偏倚风险
  2. 02复核引用是否能在论文中定位
  3. 03汇总多项评估并生成 robvis 数据

MCP 相关

作为 MCP 服务,它向客户端提供文档解析、结果设定、分领域评估、答案提交、报告渲染及 robvis 导出等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"com-blackswancausallabs-robins-i": {
"command": "uvx",
"args": [
"robins-i-mcp"
]
}
}
}
启动命令uvx robins-i-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypirobins-i-mcp0.1.0

工具

9

收录的工具列表 · 更新于 2 周前

参数类型必填说明
detailstring否
spec_versionstring否

详细介绍

robins-i-mcp

一个实现 ROBINS-I V2(非随机干预研究偏倚风险——随访/队列变体)的 MCP 服务,作为确定性、带来源记录的评估引擎。

它是 target-mcp 的同类工具;后者评估目标试验模拟研究对 TARGET 指南要求的报告是否完整。本工具则评估某一具体结果的偏倚风险。二者可用于同一篇论文,互为补充。

此来源为草稿。 riskofbias.info 将 2025 年 11 月 20 日发布的 ROBINS-I V2 标为仍处于草稿阶段,后续可能变更。每份报告都会在来源记录行注明这一点。请参阅 NOTICE 和 TRANSCRIPTION-NOTES.md。

随访队列研究。“随访”和“队列”指的是同一结构属性——有明确的时间零点,且对个体进行前瞻性随访,以比较不同策略。因此应关注这一属性,而非设计标签。目标试验模拟是核心使用场景,且恰好属于这一意义上的队列研究;下方两个示例都是 TTE。不具备随访结构的设计不在适用范围内。目前尚未发布其他设计的变体。请注意,工具中的“变体 A/变体 B”指由 C4 选定的 Domain 1 两种形式,而非研究设计。

与询问模型有何不同

模型仅负责根据文本回答信号问题,其作用范围受到限制。它不能计算判断,也不能捏造证据。

1  parse_document              PDF + supplement → SectionMap        deterministic
2  cue detection               where to look, per domain            deterministic
3  answer signalling questions quotes copied from the bundle        MODEL
4  evidence binding            quotes → offsets, or REJECT          deterministic
5  algorithms                  answers → domain → overall           deterministic
6  report + render             stamped artifact                     deterministic
7  human ratification          P1, reviewer-prior answers, overrides

提交时会执行三项规则,这正是此服务的核心:

  • 引文要么匹配成功,要么拒绝。 每条引文都会通过三级匹配流程(精确 → 放宽连字符 → 去除参考文献),与已摄入资料包中的字符偏移位置进行匹配,并记录最终采用的匹配方式,绝不会默默将宽松匹配等同于精确匹配。无法解析的引文会被拒绝,并附上最接近的实际文本。
  • 缺失要经过检索,不能仅凭断言。 manuscript_absent 答案必须注明检索线索;服务会执行检索并附上记录,包括术语、章节和命中数。仅以文字声称已检索过会被拒绝。
  • 判断由系统计算。 没有任何工具接受作为输入的领域判断。六种领域算法和总体算法均以明确的边缘图表示,并依据已发表的流程图追溯。人工可以覆盖系统判断,但必须记录理由;报告会同时显示两个值。

两道关卡

P1 会阻止评估领域 1。 问题 1.1 询问是否控制了所有重要混杂因素,而“重要”的定义依据审阅者预先指定的列表,而非论文的协变量表。若未调用 set_prespecified_confounders,服务会拒绝评估领域 1,而不会悄悄用后者替代前者。你提出的列表只是候选列表:在人工接受前,它会进入核准队列。

C4 会选择领域 1 的问题集。 分析是否考虑方案偏离,决定采用变体 A(意向性治疗,仅考虑基线混杂)或变体 B(符合方案治疗,同时考虑基线和时变混杂),因此 specify_result 要求在开始时明确选择,且不提供默认值。应根据分析实际做了什么来判断,而不是依据作者为其估计目标使用的标签——在参考论文中,方案表写的是“符合方案效应”,而分析采用的却是意向性治疗。

安装

pip install robins-i-mcp

然后在 MCP 客户端中注册:

{ "mcpServers": { "robins-i": { "command": "robins-i-mcp" } } }

也可以不安装,直接运行:

uvx robins-i-mcp

也已收录于 MCP 注册表,名称为 com.blackswancausallabs/robins-i-mcp。

开发

python3 -m venv .venv && .venv/bin/python -m pip install -e ".[dev]"
.venv/bin/python -m pytest tests/ -q      # 205 passed
.venv/bin/robins-i-mcp                    # stdio MCP server

工具

分组工具
规范get_spec可选的内省;detail='compact'|'full'
导入parse_documentPDF/docx/文本 + 补充材料 → 哈希 + 线索调查
parse_pmcid从 Europe PMC 检索
设置set_prespecified_confoundersP1,限定于审查范围,会阻止 domain 1
specify_resultA1–A3、B1–B3、C1–C3、D1 和 C4
评估assess_resultdomain=0 概览,domain=1..6 框架
submit_answers按 domain 提交;domain=0 时完成并生成结果
渲染render_report重新渲染带印记的产物
审查export_robvis多次运行的记录 → 一个 robvis CSV

框架按 domain 划分,绝不是一份扁平量表:在任何特定路径上,大多数信号问题都不会出现;domain 1 的两组问题是否存在,则取决于 C4。

请提供补充材料。 确定 C1–C4 的目标试验规范,以及 domain 1 和 4 所依据的分析细节,通常只会出现在附录中。没有补充材料时,如果答案其实只是在无人导入的文件里,这些问题就会显示为 NI。

多项研究:记录

一项包含 N 项研究的审查就是 N 次运行。每次评估都需要一个会话,而服务不会在会话之间保留状态。因此,每次运行都会生成一份小型、可移植的记录——它就是跨越边界的交付物:

session 1..N   assess one result -> save submit_answers(domain=0)['record']
later          export_robvis(records=[...]) -> one figure-ready CSV

记录是约 4 KB 的扁平 JSON,不依赖此代码库,因此任何后续 Agent 都可以使用。记录自带溯源信息——文档哈希、算法指纹、规范版本、批准状态——所以最终图表中的每一行都能追溯到文档;如果一组记录混用了不同的算法转录版本,导出时也会发出警告。

export_robvis 并非简单导出列数据。robvis 的 ROBINS-I 模板是 V1:包含七个 domain,且 V1 将参与者选择排在干预分类之前,而 V2 则调换了顺序。默认布局会把每项 V2 判断放入正确的 V1 位置;按位置直接导出会导致解析和绘图结果错误。发布前请阅读返回的 losses——robvis 会将每个单元格压缩为五色调色板中的首字母,因此合格的低风险在其中会被归为 Low,无论写入的字符串是什么。

请参阅 examples/review_from_records.py。

示例详解

.venv/bin/python examples/dickerman_2022.py out.html          # library level
.venv/bin/python examples/jabagi_2026_server_run.py           # server level
.venv/bin/python examples/review_from_records.py             # across runs
  • Dickerman 等,NEJM 2022 —— 美国退伍军人中 BNT162b2 与 mRNA-1273 的比较。结果为低风险,但对未控制混杂因素存在疑虑。41 个问题中有 24 个未进入评估。
  • Jabagi 等,Lancet Reg Health Eur 2026 —— 孕妇接种 RSVpreF 与婴儿 RSV 住院的比较。结果为严重风险,其判定路径值得一读:domain 1 在 1.3 而非 1.1 处判定失败,因为分娩时孕周和出生体重都是在干预后才确定的,却仍被用于匹配。

论文并未收录在此仓库中——它们是已发表的文章,我们无权重新分发。请将你自己的副本放入 papers/,或将 ROBINS_MCP_PAPERS 指向存放这些文件的目录;示例会列出所需文件,如果文件缺失,则会显示相应提示并失败。

文档

  • docs/STATUS.md — 当前状态和交接信息。请先阅读此文件。
  • docs/DECISIONS.md — 说明各项设计缘由,按时间从新到旧排列。
  • docs/SESSION-NOTES-*.md — 每次会话的记录。
  • TRANSCRIPTION-NOTES.md — 说明如何从栅格流程图获取算法、在已发表文档中发现的勘误,以及仍需外部验证的内容。

许可证

Apache-2.0(LICENSE)。本项目实现的 ROBINS-I V2 工具采用 CC BY-NC-ND 4.0 许可,且此处未转载其中任何内容——关于这为何重要以及实际限制是什么,请参阅 NOTICE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。