
Corroborate Mcp
io.github.chefcohen由 GitHub 账号 chefcohen 发布v0.1.3更新于 Oct 24, 2026
Honest claim corroboration for AI agents: syndication-aware independent-source counting.
概览
本地 MCP 服务器,用于判断某条新闻说法被多少独立来源报道,按独立来源而非引用数量计数。
- 可以做什么
- 对一条说法给出佐证结论,附置信度、覆盖状态与来源清单
- 按查询列出多个新闻引擎去重后的来源,不给出结论
- 标注通讯社来源,以及同一报道被多少域名转载
- 报告转载合并、突发新闻连锁、引擎故障等注意事项
- 适用场景
- 适合在助手准备采信某条时事或新闻说法时,判断它是被独立报道,还是单一通讯社稿件被广泛转载。也适合在引用前按真实独立性对来源排序或筛选。
- 运行要求
- 通过 npx 以 stdio 在本地运行,需要 Node 18 或更高版本。无需 API 密钥、账号或配置;会访问公开新闻源,因此需要网络连接。
安装
在 SourceWeft 中
- 打开 控制台中的 Corroborate Mcp,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
corroborate-mcp
The honest corroboration layer for AI agents. Hand it a claim; it tells you how independently that claim is actually being reported — and shows its work.
[npm] [downloads] [license] [node] [MCP] [API keys]
An AP story echoed by 40 outlets is one origin, not 40 citations. Other verifiers count citations; Corroborate counts independent origins — syndication-aware — then publishes its own error rates and discloses coverage gaps. That's the judgment layer raw search and citation-checkers skip.
When an agent should call this
- Before relying on a current-event / news claim — is it independently reported, or one source echoed everywhere?
- To rank or filter sources by genuine independence, with a confidence score.
- When you need a verdict you can defend — every answer ships its evidence, its confidence, and its own caveats.
Not a web search engine (use Exa/Tavily/Brave for that) and not a human fact-checking network. It's the narrow, honest primitive in between: how independently is this reported?
Why it's trustworthy — by design
What it measures — and what it doesn't
Reporting corroboration, not truth. A claim every outlet syndicated from one wire story comes back SINGLE_SOURCE. A claim nobody covers comes back UNCORROBORATED even if true. The verdict states exactly what was measured, flags its weaknesses in notes, and sets coverage:"degraded" when an engine was down — so absence of evidence is never quietly sold as evidence of absence.
Quickstart
Requires Node ≥ 18. No keys, no config.
Claude Code
Claude Desktop / Cursor / any MCP client (claude_desktop_config.json, .cursor/mcp.json, …)
Try it with no MCP client
Tools
corroborate_claim — the verdict
{ claim, window_days?=7, max_sources?=8 } →
find_sources — the raw evidence
{ query, window_days?=7, max_sources?=10 } → deduped multi-engine list (outlet, domain, url, date), no verdict. The cheaper primitive when you want the coverage and your own judgment.
Measured accuracy — because you should demand it from any fact-check tool
Against a public 40-claim labeled benchmark (benchmark/ — claims, labels, category definitions, and harness are all public; run it yourself with npm run benchmark). The time-sensitive claims are refreshed from current news so the numbers reflect real accuracy, not staleness. Latest run 2026-07-22:
⚠️ Respect the distorted-claim number — it's the honest ceiling of this tool's blind spot. In the latest run all 6 distorted claims came back CONFIRMED (6/6), because each one distorts a currently-reported event, and this tool checks whether independent reporting exists around a claim's topic and entities — it does not do stance detection. So "Samsung cancelled the Galaxy Z Fold8" (they unveiled it) or "OpenAI released GPT-6" confirms off the real coverage of the true story. The rule to live by: if a claim's topic is being reported, a distorted version of it will very likely CONFIRM. Read CONFIRMED as "this topic has independent coverage — now verify the specific facts against the returned sources," never as "this exact claim is true." Stance detection is the v1.1 roadmap item. (Recurring events like championships/elections can likewise match the current cycle's coverage — see the stale-claim leaks.)
How the judgment works
- Search Google News RSS, GDELT, Hacker News in parallel (keywords extracted from the claim; quoted phrases preserved).
- Relevance gate — an article counts only if its headline genuinely addresses the claim (≥2 core-token hits AND ≥35% of core tokens). Loose topical echoes are discarded; the discard count is reported.
- Syndication clustering — near-identical headlines across domains (Jaccard ≥ 0.55) collapse into one origin; wire domains flagged.
- Verdict — independent origins = distinct clusters; confidence rises with origins + cross-engine agreement, falls for wide single-origin echoes; every known weakness goes in
notes.
Honest limitations
- No stance detection (the 6/6 above). CONFIRMED = independently covered, not verified in every detail.
- English-language, headline-level. Paywalled body text isn't fetched.
- Recency-windowed (default 7 days, max 90). Old claims read
UNCORROBORATED— a window statement, not a falsity verdict. - Independent rewrites of one wire story can occasionally slip clustering; distinct phrasings of one origin can occasionally count as two.
- All engines down → error, never a fake
UNCORROBORATED.
Development
来源:README.md,提交 1da5f99
工具
0版本历史
1- v0.1.3最新Sep 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分