Free MCP server: compute a GitHub repo maintenance/abandonment health score (0-100) from live GitHub data. Open twin of a paid x402-gated repohealth HTTP API.
claude mcp add x402-repohealth-mcp -- npx -y x402-repohealth-mcp{
"mcpServers": {
"x402-repohealth-mcp": {
"command": "npx",
"args": ["-y", "x402-repohealth-mcp"]
}
}
}MCP Servers overview
# x402-repohealth-mcp
A free MCP (Model Context Protocol) server that computes a **GitHub repo
maintenance/abandonment health score** from live GitHub data: is a repo
actively maintained, slowing down, likely abandoned, or archived? No API
key, no payment, no rate-limit games — just an MCP tool any MCP client can
call.
This is the **open funnel twin** of a paid, x402-gated HTTP API:
**[x402-repohealth-poc.theliminalguy.workers.dev](https://x402-repohealth-poc.theliminalguy.workers.dev)**
— `GET /repo-health/:owner/:repo`, $0.01 USDC on Base per call via the
[x402 payment protocol](https://x402.org), for production/high-volume or
non-MCP (plain HTTP) / agent-automated use. Same scoring logic, same
output, just billed per call instead of free-via-MCP.
## Why this exists
Agents that pick dependencies, tools, or libraries need to know whether a
repo is safe to depend on — actively maintained vs. slowing down vs.
effectively dead — and GitHub's own API only gives raw signals (commits,
issues, releases), not the *decision* computed from them. This MCP server
is the free/local half of filling that gap — try it for nothing via MCP;
reach for the paid HTTP endpoint when you need it at volume or outside an
MCP client.
## What it does
One tool, `check_repo_health`, takes a GitHub `owner` + `repo` and computes
a **0-100 health score** across four weighted dimensions (commit recency,
commit activity, issue/PR responsiveness, release cadence, each 0-25
points), plus a verdict:
- `archived` — GitHub's own `archived` flag is true (overrides the score)
- `actively maintained` — score >= 75
- `slowing down` — score 45-74
- `likely abandoned` — score < 45
The response includes the full score breakdown, computed metrics (days
since last commit, commits in last 90 days, issue close ratio, etc.), and a
human-readable `reasoning` array built from the actual numbers — nothing is
hardcoded per-repo, it's fetched from GitHub's real public REST API and
scored at call time.
## Install & run
```bash
npx x402-repohealth-mcp
```
Or add it to an MCP client config (e.g. Claude Desktop's
`claude_desktop_config.json`):
```json
{
"mcpServers": {
"repohealth": {
"command": "npx",
"args": ["-y", "x402-repohealth-mcp"]
}
}
}
```
## Tool: `check_repo_health`
Input:
```jsonc
{
"owner": "facebook",
"repo": "react"
}
```
Output (MCP tool text content, JSON-stringified):
```jsonc
{
"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.",
"..."
]
}
```
## Scoring detail
| Dimension | Points | Logic |
|---|---|---|
| Commit recency | 0-25 | Days since last commit: <=14d->25, <=30d->21, <=90d->15, <=180d->9, <=365d->4, else 0 |
| Commit activity | 0-25 | Commits in trailing 90 days: 0->0, 1-2->6, 3-9->13, 10-29->20, 30+->25 |
| Issue/PR responsiveness | 0-25 | Of issues/PRs updated in the last 90 days: closed-ratio >=0.6 & median close <=14d->25, >=0.4->17, >=0.15->9, else->3. No recent activity -> neutral 14 |
| Release cadence | 0-25 | Days since latest tagged release: <=180d->25, <=365d->17, <=730d->9, else 3. No releases ever -> neutral 12 |
`archived: true` from GitHub overrides the score-derived verdict entirely —
an archived repo is confirmed dead by the maintainer's own action, not
merely "likely abandoned."
## What's real vs. limited
- **Real:** every GitHub API call, the scoring math, and the MCP tool
response are computed live at call time from that repo's actual GitHub
data — nothing is hardcoded or mocked.
- **No auth against GitHub:** uses GitHub's unauthenticated public REST API
(60 requests/hour/IP shared across whoever runs this MCP server locally).
A `check_repo_health` call costs ~3-4 GitHub requests. Fine for
free/local/low-volume MCP use; the paid Worker adds a `GITHUB_TOKEN`
(5,000 req/hr) server-side.
- **No caching:** every call re-fetches GitHub live.
## Local development
```bash
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`, and `src/types.ts` are
the same GitHub-fetch + scoring logic as the paid Worker — this MCP server
is a thin `src/index.ts` wrapper around `getRepoHealth()`.
## When to use the paid HTTP twin instead
Use [`GET /repo-health/:owner/:repo`](https://x402-repohealth-poc.theliminalguy.workers.dev)
on the paid Worker instead of this MCP server when:
- You're calling from outside an MCP client (plain HTTP, any language).
- You need production/high-volume use and want to pay per call rather than
share this MCP server's unauthenticated 60 req/hr GitHub budget.
- Your agent already speaks x402 (e.g. via `x402-fetch` / `x402-axios`) and
can pay $0.01 USDC on Base per request.
Both routes call the exact same scoring function — output is identical.
## License
MIT
What people ask about x402-repohealth-mcp
What is liminalpepe/x402-repohealth-mcp?
+
liminalpepe/x402-repohealth-mcp is mcp servers for the Claude AI ecosystem. Free MCP server: compute a GitHub repo maintenance/abandonment health score (0-100) from live GitHub data. Open twin of a paid x402-gated repohealth HTTP API. It has 0 GitHub stars and was last updated today.
How do I install x402-repohealth-mcp?
+
You can install x402-repohealth-mcp by cloning the repository (https://github.com/liminalpepe/x402-repohealth-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is liminalpepe/x402-repohealth-mcp safe to use?
+
liminalpepe/x402-repohealth-mcp has not been audited yet by our security agent. Review the original repository on GitHub before using it in production.
Who maintains liminalpepe/x402-repohealth-mcp?
+
liminalpepe/x402-repohealth-mcp is maintained by liminalpepe. The last recorded GitHub activity is from today, with 0 open issues.
Are there alternatives to x402-repohealth-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy x402-repohealth-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/liminalpepe-x402-repohealth-mcp)<a href="https://claudewave.com/repo/liminalpepe-x402-repohealth-mcp"><img src="https://claudewave.com/api/badge/liminalpepe-x402-repohealth-mcp" alt="Featured on ClaudeWave: liminalpepe/x402-repohealth-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
The fastest path to AI-powered full stack observability, even for lean teams.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!