关于 FactGrid (Renamed to FactReason)
FactGrid 是 FactReason 的旧名称,原 MCP 服务提供带证据的依赖建议、API 参考数据和电子元件规格。本条目指向更名后的项目。
主要功能
- 01npm 和 PyPI 升级建议
- 02版本化 API 架构与集成指南
- 03API 发现和弃用扫描
- 04电子元件规格查询
- 05带来源证据的签名结果
适用场景
- 01升级前检查依赖变更
- 02查询 API 架构和认证详情
- 03发现 API 和已弃用端点
- 04获取电子元件规格
MCP 相关
旧 FactGrid 端点通过 Streamable HTTP 提供依赖与 API 参考数据、元件规格等工具。该项目现已更名为 FactReason。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://factgrid.co.uk/mcpclaude mcp add --transport http factgridai-factgrid https://factgrid.co.uk/mcp{"mcpServers":{"factgridai-factgrid":{"type":"http","url":"https://factgrid.co.uk/mcp"}}}在 Cursor 中打开{"servers":{"factgridai-factgrid":{"type":"http","url":"https://factgrid.co.uk/mcp"}}}在 VS Code 中打开{"mcpServers":{"factgridai-factgrid":{"type":"http","url":"https://factgrid.co.uk/mcp"}}}{"mcpServers":{"factgridai-factgrid":{"serverUrl":"https://factgrid.co.uk/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
11| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| to | string | 是 | 确切的目标版本,例如 "5.0.0" |
| from | string | 是 | 确切的当前已安装版本,例如 "4.1.2" |
| name | string | 是 | 确切的包名称,例如 "chalk" 或 "urllib3" |
| apiKey | string | 否 | 你的 FactReason API 密钥,来自 factreason_create_key。如果你的 MCP 客户端无法在此连接上设置 Authorization: Bearer 标头,请在此处传入;如果已设置该标头,则省略此项。切勿传入属于他人的密钥。 |
| registry | enum | 是 | 包含这两个包版本的注册表npm | pypi |
| responseFormat | enum | 否 | 使用 compact 可删除重复的说明文字和字段,同时保留证据;full 保留旧版响应契约full | compact |
详细介绍
FactGrid
Agent 编写代码前所需的参考数据。 npm 和 PyPI 的依赖升级建议、覆盖 1,097 项服务的开发者 API 架构,以及电子元件规格——通过 MCP 提供,采用 Ed25519 签名,并附带证据。
MCP 端点:https://factgrid.co.uk/mcp · 面向 Agent 的文档 · factgrid.co.uk
阻止 Agent 发布有问题的依赖升级
你的 Agent 想把 chalk 从 4.1.2 升级到 5.0.0。在修改 package.json 之前,它会先询问哪些地方会出问题:
GET /api/v1/packages/npm/chalk/advisory?from=4.1.2&to=5.0.0
Authorization: Bearer <key>
{
"found": true,
"packageName": "chalk",
"fromVersion": "4.1.2",
"toVersion": "5.0.0",
"breakingCount": 2,
"advisories": [
{
"severity": "breaking",
"changeType": "MODULE_FORMAT_CHANGED",
"description": "chalk 5.0.0 changed module format from \"commonjs (undeclared)\" to \"module\". CommonJS require() of this package will now fail.",
"evidenceField": "type",
"evidenceBefore": null,
"evidenceAfter": "module",
"migrationHint": "Convert the call site to import(), or pin to the last CommonJS release."
},
{
"severity": "breaking",
"changeType": "RUNTIME_REQUIREMENT_RAISED",
"description": "chalk 5.0.0 raised its runtime requirement from \">=10\" to \"^12.17.0 || ^14.13 || >=16.0.0\". Older runtimes are no longer supported.",
"evidenceField": "engines.node",
"evidenceBefore": ">=10",
"evidenceAfter": "^12.17.0 || ^14.13 || >=16.0.0",
"migrationHint": "Confirm the deployment runtime satisfies the new floor before upgrading."
}
]
}
通过 MCP,只需调用一次工具即可提出同样的问题:
{
"name": "factgrid_package_upgrade_advisory",
"arguments": { "registry": "npm", "name": "chalk", "from": "4.1.2", "to": "5.0.0" }
}
每条发现都包含 evidenceField、evidenceBefore 和 evidenceAfter——这些字段精确指出注册表元数据中的字段,以及变更前后的值。Agent 可以直接向 npm 或 PyPI 核实相关说法,而不必只听我们的一面之词。
连接
Streamable HTTP。无需安装,也无需下载软件包。
{
"mcpServers": {
"factgrid": {
"type": "http",
"url": "https://factgrid.co.uk/mcp"
}
}
}
获取密钥——无需注册,也无需银行卡:
curl -X POST https://factgrid.co.uk/api/v1/keys/create \
-H 'Content-Type: application/json' \
-d '{"email":"[email protected]"}'
工具
| 工具 | 可解答的问题 |
|---|---|
factgrid_package_upgrade_advisory | 两个已发布的 npm/PyPI 版本之间有哪些变化 |
factgrid_api_schema | 某个版本中 API 端点的准确请求/响应结构 |
factgrid_integration_brief | 编写一次可用 API 调用所需的全部信息 |
factgrid_discover_api | 1,097 项服务中,哪些可以执行 X |
factgrid_deprecation_scan | 哪些端点已弃用、日落日期及替代方案 |
factgrid_auth_playbook | 身份验证方案、作用域、速率限制标头、错误代码表 |
factgrid_component_spec | 电子元件引脚排列、电压、封装 |
factgrid_subscribe_spec_changes | 规格变更时通过 Webhook 或轮询触发的回调 |
factgrid_create_topup_link | 额度用尽时生成 Stripe 结账链接 |
factgrid_api_breaking_changes | 目前离线——请参阅下文的 我们不会声称什么 |
目录
| 已索引的软件包版本 | 16 个 npm/PyPI 软件包,共 10,190 个版本 |
| 升级建议 | 357 条,其中 84 条为破坏性变更 |
| API 端点架构 | 覆盖 1,097 项服务,共 18,348 个 |
| 电子元件 | 994 种 |
实时统计数据,免费且无需身份验证:/api/v1/stats · /api/v1/packages/stats
定价
每个密钥每天可免费查询 50 次。 无需银行卡,无需注册。
| 层级 | 价格 |
|---|---|
| 元件查询 | $0.001 |
| API 架构 | $0.002 |
| 语义搜索 | $0.003 |
| 弃用扫描 | $0.005 |
| 身份验证手册 | $0.005 |
| 能力搜索 | $0.005 |
| 集成简介 | $0.01 |
| 软件包升级建议 | $0.02 |
使用预付额度支付,或通过 x402 使用 USDC 按次支付——无需账户,也无需人工介入。实时价格:/api/v1/pricing
未命中绝不收费。 对于无法解答的查询,系统会返回 found: false、billed: false 及最接近的匹配项,且不收取费用。缓存重新验证(HTTP 304)和受到速率限制的请求也绝不会收费。
我们不声称的内容
之所以设置本节,是因为另一种做法更糟。
API 重大变更层已下线。 本项目的早期版本曾发布第三方 API 的 8,150 条重大变更差异。抽查发现,误报率为 100%——这些差异是根据顺序错误的规范版本计算得出的。我们已撤回全部差异。该层目前仍不返回数据,也不收费;在我们证明其输出经得起发布方自有更新日志的核验之前,它将继续保持下线。
正是这次失败,决定了我们采用如下方式构建包引擎:
breaking仅用于可通过已声明的元数据证明的移除或收紧——exports映射中的入口点消失、运行时最低版本要求提高,或发布方撤回某个版本。- 新增内容绝不会被判定为重大变更。 有一项测试专门断言这一点。
- 如果无法解析版本范围,引擎会保持沉默,而不是猜测。
- 对
urllib3连续发布的 103 个稳定版本,引擎只发出 7 条警告,而不是数千条。保守正是我们的特点。
包警告涵盖的是发布方声明的注册表元数据,而非行为变更。 如果维护者在不修改 package.json 的情况下悄悄更改函数的返回值,我们就无法发现——请查阅更新日志。我们会明确说明这一点,而不会暗示我们具备实际上并不具备的覆盖能力。
主网 x402 已配置并公布,但从未进行过真实资金交易。 它已在测试网上与两个独立的 Facilitator 完成结算。只有真实结算成功后,我们才会称其经过验证。
准确性
每条响应均由 Ed25519 签名;公钥位于 /.well-known/jwks.json。记录均注明来源。API 架构数据来源于 APIs.guru,遵循 CC-BY 4.0 许可。
准确性尽力保证,但不作担保——请参阅 /terms。发现错误?请发送 POST /api/v1/report-error——免费,无需身份验证。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。