关于 x402-repohealth-mcp
x402-repohealth-mcp 是面向 Agent 和开发者的 MCP 服务,用于判断 GitHub 仓库是否仍适合作为依赖。它根据实时 GitHub 数据计算 0–100 分,并以指标说明结论。
主要功能
- 01实时检查 GitHub 仓库健康状况
- 02按四个维度计算 0–100 分
- 03给出维护状态与弃用判断
- 04提供指标明细和数据依据
适用场景
- 01将仓库加入依赖前评估其状况
- 02检查现有依赖是否仍在维护
MCP 相关
向 MCP 客户端提供 `check_repo_health` 工具。每次调用都会获取 GitHub 公共 REST API 数据,并返回评分、结论、指标和依据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
1收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| repo | string | 是 | GitHub 仓库名称,例如 "react" |
| owner | string | 是 | GitHub 仓库所有者/组织,例如 "facebook" |
详细介绍
x402-repohealth-mcp
一个免费的 MCP(Model Context Protocol)服务,可根据实时 GitHub 数据计算GitHub 仓库维护/弃用健康评分:仓库是在积极维护、逐渐放缓、可能已被弃用,还是已归档?无需 API 密钥,无需付费,也不用玩速率限制的花样——任何 MCP 客户端都能调用的 MCP 工具。
这是一个付费、受 x402 限制的 HTTP API 的开放入口版:
x402-repohealth-poc.theliminalguy.workers.dev
— GET /repo-health/:owner/:repo,通过 x402 payment protocol 在 Base 上按次支付 $0.01 USDC,适用于生产/高频使用,或非 MCP(纯 HTTP)/由 Agent 自动化的场景。评分逻辑和输出相同,只是按次计费,而不是通过 MCP 免费使用。
为什么要做这个项目
选择依赖项、工具或库的 Agent,需要知道某个仓库是否值得依赖——它是在积极维护、逐渐放缓,还是实际上已停止维护。GitHub 自带的 API 只提供原始信号(提交、议题、发行版),不会根据这些信号给出判断结果。这个 MCP 服务通过免费/本地方式填补这一空缺——可以通过 MCP 免费试用;如果需要大批量使用或不通过 MCP 客户端使用,则可选择付费 HTTP 端点。
功能说明
该服务提供一个工具 check_repo_health,接收 GitHub 的 owner 和 repo,并从四个加权维度计算0-100 的健康评分(提交时间、提交活跃度、议题/PR 响应速度、发行版频率,每项 0-25 分),同时给出结论:
archived— GitHub 自身的archived标记为 true(优先于评分)actively maintained— 评分 >= 75slowing down— 评分为 45-74likely abandoned— 评分 < 45
响应包含完整的评分细目、计算所得的指标(距上次提交的天数、过去 90 天内的提交数、议题关闭率等),以及根据实际数字生成的易读 reasoning 数组——没有针对特定仓库硬编码的内容;所有数据都从 GitHub 实际的公开 REST API 获取,并在调用时计算评分。
安装与运行
npx x402-repohealth-mcp
也可以将其添加到 MCP 客户端配置中(例如 Claude Desktop 的
claude_desktop_config.json):
{
"mcpServers": {
"repohealth": {
"command": "npx",
"args": ["-y", "x402-repohealth-mcp"]
}
}
}
工具:check_repo_health
输入:
{
"owner": "facebook",
"repo": "react"
}
输出(MCP 工具文本内容,JSON 字符串化):
{
"owner": "facebook",
"repo": "react",
"fetchedAt": "2026-08-01T22:00:00.000Z",
"repoMeta": { "fullName": "facebook/react", "archived": false, "stargazersCount": 230000, "...": "..." },
"metrics": { "daysSinceLastCommit": 1, "commitsLast90Days": 100, "...": "..." },
"scoreBreakdown": { "commitRecency": 25, "commitActivity": 25, "issueResponsiveness": 17, "releaseCadence": 17 },
"score": 84,
"verdict": "actively maintained",
"reasoning": [
"Last commit 1 day ago (2026-07-31T...).",
"100+ commits in the last 90 days.",
"..."
]
}
评分详情
| 维度 | 分值 | 逻辑 |
|---|---|---|
| 提交时间 | 0-25 | 距上次提交的天数:<=14d->25,<=30d->21,<=90d->15,<=180d->9,<=365d->4,否则为 0 |
| 提交活跃度 | 0-25 | 过去 90 天内的提交数:0->0,1-2->6,3-9->13,10-29->20,30+->25 |
| 议题/PR 响应速度 | 0-25 | 过去 90 天内更新的议题/PR:关闭率 >=0.6 且关闭时间中位数 <=14d->25,>=0.4->17,>=0.15->9,否则为 3。无近期活动 -> 中性分 14 |
| 发行版频率 | 0-25 | 距最近一次带标签发行版的天数:<=180d->25,<=365d->17,<=730d->9,否则为 3。从未发布过 -> 中性分 12 |
GitHub 返回的 archived: true 会完全覆盖根据评分得出的结论——仓库已归档,说明维护者已亲自确认其停止维护,而不只是“可能已被弃用”。
真实与受限之处
- 真实: 每次调用时,都会根据该仓库的实际 GitHub 数据实时计算所有 GitHub API 调用、评分逻辑和 MCP 工具响应——没有硬编码或模拟数据。
- 不对 GitHub 进行身份验证: 使用 GitHub 未经身份验证的公开 REST API(由本地运行此 MCP 服务的所有使用者共享,每个 IP 每小时 60 次请求)。
每次
check_repo_health调用约消耗 3-4 次 GitHub 请求。免费/本地/低频 MCP 使用足够;付费 Worker 会在服务器端添加GITHUB_TOKEN(每小时 5,000 次请求)。 - 不缓存: 每次调用都会重新实时获取 GitHub 数据。
本地开发
npm install
npm run dev # runs src/index.ts directly on stdio via tsx
npm run build # compiles to dist/ for the published npm package
npm run test:health # calls getRepoHealth() directly against real repos, no MCP transport
src/github.ts、src/score.ts、src/health.ts 和 src/types.ts 与付费 Worker 使用相同的 GitHub 数据获取和评分逻辑——此 MCP 服务只是围绕 getRepoHealth() 的轻量 src/index.ts 封装。
改用付费 HTTP 同类服务的情况
以下情况请改用付费 Worker 上的 GET /repo-health/:owner/:repo,而非此 MCP 服务:
- 你从 MCP 客户端之外发起调用(纯 HTTP,任意语言)。
- 你需要用于生产环境或高频调用,并希望按次付费,而不是与其他用户共用此 MCP 服务每小时 60 次的未认证 GitHub 配额。
- 你的 Agent 已支持 x402(例如通过
x402-fetch/x402-axios),并且可以为每次请求支付 0.01 美元的 Base USDC。
两种方式都会调用完全相同的评分函数,输出也完全一致。
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。