GitHub
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
作者による説明(英語の原文)
GitHub repo maintainability verdicts—maintained, slowing, at-risk, abandoned—via MCP.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
ウェブ、デスクトップ、モバイルのClaudeで使えます:
https://joeslade--github-repo-intelligence-mcp.apify.actor/mcpターミナルでこれを実行します
claude mcp add --transport http github-repo-intelligence https://joeslade--github-repo-intelligence-mcp.apify.actor/mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"github-repo-intelligence": {
"url": "https://joeslade--github-repo-intelligence-mcp.apify.actor/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"github-repo-intelligence": {
"type": "http",
"url": "https://joeslade--github-repo-intelligence-mcp.apify.actor/mcp"
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
ChatGPTがつなげるのは、インターネット上のサーバーだけです:
https://joeslade--github-repo-intelligence-mcp.apify.actor/mcpメニューの名前は、プランや時期によって少し違うことがあります。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
このサーバーのツール一覧はまだ読み取っていません。エンドポイントは順番にチェックしています。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント digitalgremlin で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントは順番にチェックしています
まだチェックしていません。エンドポイントをチェックするときにツール一覧を読み取ります
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.0)がレジストリに届いたのは5 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。
同じカテゴリには:GitHub, Desktop Commander, Cloudflare MCP
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
_A maintainability verdict, not another dashboard._
GitHub Repo Health Check is an MCP server that answers the one question your dependency list can't: is this repo still maintained, or am I building on sand? Last-commit date lies. Star count lies. One signal isn't a verdict. So it returns a four-way read — *Actively maintained*, *Slowing*, *At-risk*, or *Likely abandoned* — synthesized across four dimensions (activity, issues, PRs, contributors), backed by the transparent, inspectable thresholds that produced it. Point it at any owner/name (or GitHub URL) and your agent gets a verdict it can act on, plus the raw numbers so it can see exactly why. Same repo state + config → the same verdict, every time.
It runs as a Standby Actor on the Apify platform — always warm, reachable over the Streamable HTTP transport at the /mcp path, with API access, scheduling, and monitoring included.
Two repos, two very different verdicts — then a drill-down into the metrics behind them, all over MCP:
If you've ever asked "is this repo abandoned?" or run a GitHub repo health check by hand, this server does it programmatically at any scale.
Most GitHub tools hand an agent raw API access and leave the judgment to the model — inconsistent, hand-rolled heuristics on every call. This server does the synthesis for you.
The differentiator is judgment, not raw access: every verdict ships alongside the pinned thresholds and raw metrics that produced it, so the agent (and you) can audit the reasoning. Same repo state + same config always yields the same verdict.
One GitHub fetch per repository is cached and shared across all five tools. Drilling from the headline verdict into a specific dimension costs no extra upstream calls.
https:// /mcp) using the Streamable HTTP transport.repo argument ("owner/name" or any https://github.com/owner/name URL) to get the headline verdict.get_activity_metrics, get_issue_health, get_pr_health, or get_contributor_insights when you need detail beyond the headline. All five tools read from the same cached payload.All tools take a single repo argument — either "owner/name" or any https://github.com/owner/name[/...] URL (case-insensitive).
get_repo_health — headline verdictReturns the overall verdict, a per-dimension breakdown, and a rationale string explaining the worst dimension.
{
"repo": "honojs/hono", "overallVerdict": "Actively maintained", "dimensions": { "activity": { "verdict": "Healthy", "lastCommitDaysAgo": 1, "commits90d": 412 }, "issues": { "verdict": "Healthy", "medianFirstResponseDays": 2.4, "staleOpenRatio": 0.12 }, "pullRequests": { "verdict": "Healthy", "mergeRate": 0.88, "oldestOpenPrDaysAgo": 14 }, "contributors": { "verdict": "Healthy", "totalContributors": 312, "busFactorFlag": false } }, "rationale": "Overall: activity is Healthy; weakest dimension is issues (Healthy).", "stars": 21000, "forks": 640, "fetchedAt": "2026-06-01T00:00:00.000Z", "authenticated": true }
get_activity_metrics — commit cadence and momentumCommit volumes over trailing windows, release frequency, and a momentum trend.
{
"repo": "honojs/hono", "verdict": "Healthy", "lastCommitDaysAgo": 1, "commits30d": 140, "commits90d": 412, "commits365d": 1680, "releaseCount365d": 48, "lastReleaseDaysAgo": 3, "momentumTrend": "steady", "fetchedAt": "2026-06-01T00:00:00.000Z" }
momentumTrend is accelerating / steady / declining, derived from the 30-day commit rate vs the 90-day rate. Repos that tag rather than cutting GitHub Releases will show releaseCount365d: 0 and lastReleaseDaysAgo: null — this does not by itself degrade the verdict.
get_issue_health — responsiveness and backlog hygieneHow quickly maintainers respond to issues and how much of the backlog has gone stale.
{
"repo": "honojs/hono", "verdict": "Healthy", "openIssues": 32, "closedIssues": 1840, "openClosedRatio": 0.017, "medianFirstResponseDays": 2.4, "medianTimeToCloseDays": 5.1, "staleOpenIssues": 4, "staleOpenRatio": 0.12, "fetchedAt": "2026-06-01T00:00:00.000Z" }
An issue is stale if untouched for more than 90 days. Medians are null when no qualifying events exist in the analysis window — absence is not the same as zero.
get_pr_health — PR throughput and queue ageHow effectively the project merges or closes contributions, and how old the oldest open PR is.
{
"repo": "honojs/hono", "verdict": "Healthy", "openPrs": 6, "mergedPrs": 220, "closedUnmergedPrs": 30, "mergeRate": 0.88, "medianTimeToMergeDays": 1.2, "oldestOpenPrDaysAgo": 14, "fetchedAt": "2026-06-01T00:00:00.000Z" }
mergeRate excludes still-open PRs from the denominator. It is null when no PRs have been decided in the analysis window.
get_contributor_insights — concentration and bus-factor riskHow many contributors the project has and whether commit activity is dangerously concentrated.
{
"repo": "honojs/hono", "verdict": "Healthy", "totalContributors": 312, "topContributorShare": 0.28, "topTwoContributorShare": 0.41, "busFactorFlag": false, "fetchedAt": "2026-06-01T00:00:00.000Z" }
busFactorFlag is true when the top contributor owns more than 50% of commits, or the top two together own more than 80%. totalContributors is the repository's all-time contributor count (sourced from GitHub's stable /contributors list endpoint) — it is not a 90-day-active count.
Verdicts come from pinned, transparent thresholds — same repo state plus same config always yields the same verdict.
| Dimension | Healthy | Moderate | At-Risk | Notes |
|---|---|---|---|---|
| Activity | last commit ≤ 30d | 30–180d | 180–365d | Likely abandoned if > 365d |
| Issues | median first response ≤ 7d and staleOpenRatio ≤ 0.40 | ≤ 30d and ≤ 0.60 | otherwise | null median → judged on staleOpenRatio alone |
| Pull requests | mergeRate ≥ 0.60 and oldestOpenPr ≤ 30d | mergeRate ≥ 0.30 or oldestOpenPr ≤ 90d | otherwise | null mergeRate → judged on oldestOpenPr alone |
| Contributors | totalContributors ≥ 3 and not bus-factor | 1–2 contributors, or ≥ 3 with bus-factor | 0 contributors | solo active maintainer → at most Moderate |
Overall verdict is activity-dominant, evaluated top-down (first match wins):
Likely abandoned (no commits in > 365 days).At-Risk, or any two of {issues, PRs, contributors} are At-Risk.Healthy and no dimension is At-Risk.Moderate, or Healthy activity with one At-Risk dimension).The server boots with no input required (a Standby constraint — all fields are optional in the schema so the container never crash-loops on startup). In practice, you must provide a GitHub token for the Actor to return verdicts rather than rate-limit errors.
| Field | Type | Default | Description |
|---|---|---|---|
githubToken | string (secret) | — | Effectively required. GitHub's GraphQL API (this Actor's primary data source) rejects unauthenticated requests, and on Apify's shared IPs the anonymous REST quota (~60 req/hour per IP) is typically already exhausted by other traffic. A token gives 5,000 req/hour and enables private-repo analysis. |
cacheTtlMinutes | integer | 20 | How long a repo's fetched payload is reused before refetching. Lower = fresher data; higher = fewer GitHub API calls. |
analysisWindowDays | integer | 90 | Trailing window (30–365 days) over which issue and PR activity is measured. |
GitHub token setup. A classic token with no scopes is sufficient for public repositories. A fine-grained token scoped to specific repos works for private-repo analysis. For Standby deployments the recommended approach is to set a
GITHUB_TOKENenvironment variable on the Actor (stored as a secret) rather than pasting the token into the input field — it persists across restarts. Both paths work; both are stored as secrets and never exposed in logs.
Each tool returns a single structured JSON object (shown above in each tool's section). Responses are deterministic — same repo state plus same config always produces the same verdict. Each response includes a fetchedAt timestamp reflecting when the underlying GitHub payload was pulled. A cached read returns the same timestamp as the original fetch for that TTL window.
| Field | What it tells you |
|---|---|
overallVerdict | The headline: Actively maintained / Slowing / At-risk / Likely abandoned |
lastCommitDaysAgo | Days since the most recent commit; null if no commits found |
commits30d / commits90d / commits365d | Commit counts over trailing 30, 90, and 365-day windows |
momentumTrend | Whether commit rate is accelerating, steady, or declining (30d vs 90d rate) |
medianFirstResponseDays | Median time (days) until a maintainer first responds to a new issue |
staleOpenRatio | Fraction of open issues that have had no activity in 90+ days |
mergeRate | Merged PRs ÷ (merged + closed-unmerged) — excludes still-open PRs |
oldestOpenPrDaysAgo | Age of the oldest PR that is still open |
totalContributors | All-time contributor count (not a 90-day-active figure — see FAQ) |
busFactorFlag | true when commit activity is dangerously concentrated on 1–2 people |
This Actor runs in Standby mode and is billed for the compute used while warm and serving requests. Health reads are lightweight — each repo's GitHub data is fetched once, cached (default 20 minutes), and shared across all five tools. Drilling into multiple dimensions for the same repo costs a single upstream fetch.
A GitHub token is required in practice (see Input) and adds no extra Apify cost.
GITHUB_TOKEN as an environment冒頭だけを表示しています。続きはリポジトリで読めます