abandoncheck について
abandoncheckは、利用者が渡すリポジトリの情報から依存関係の保守状況を評価し、依存関係を確認するチームを支援します。リポジトリ取得やコード調査をせず、固定のローカルルールで判定と理由を返します。
主な機能
- 01リポジトリの保守状況シグナルを評価
- 02判定、スコア、理由を返却
- 03リリースとコミットの経過期間を分類
- 04項目を特定して入力エラーを検証
活用シーン
- 01保守作業で依存関係の状態を確認
- 02入力したシグナルを使って依存関係を比較
MCP 対応
MCPサーバーは`check_dep_maintenance`を公開し、利用者が渡したシグナルから判定、スコア、シグナル、理由を返します。ネットワーク照会は行いません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
1掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| name | string | はい | 依存関係の名前 |
| archived | boolean | はい | 依存関係のリポジトリがアーカイブされているかどうか |
| open_issues | integer | いいえ | 未解決 issue 数(任意;報告のみで、スコアには含めません) |
| last_commit_days | integer | いいえ | 前回のコミットからの日数(任意;不明な場合は省略) |
| maintainer_count | integer | いいえ | アクティブなメンテナー数(任意) |
| last_release_days | integer | いいえ | 前回のリリースからの日数(任意;リリースがない場合は省略) |
| recent_commits_90d | integer | いいえ | 過去 90 日間のコミット数(任意) |
詳細
abandoncheck
依存関係ツリー内の依存関係は、どれもいつか選ばれたもので、多くの場合、何年も前のことです。後になって重要になるのは、「今も誰かがこれを見守っているのか」という単純な問いです。abandoncheck は推測せずに答えます。すでに把握している事実に基づくシグナル(リポジトリがアーカイブされているか、最後のリリースと最後のコミットからどれだけ経過したか、過去 90 日間に何件のコミットがあったか、アクティブなメンテナーが何人いるか、未解決のイシューが何件あるか)を入力すると、判定、スコア、各シグナルが該当する区分、そしてその数値になった正確な理由を返します。
何も取得せず、コード自体について何かを推論することもありません。リポジトリがアーカイブ済みなら、それだけで判定が決まります。他のシグナルがどれだけ新しく見えても、スコアは 0、判定は abandoned です。それ以外の場合、スコアは 100 から始まり、リリース情報の欠落または古さ、コミット情報の欠落または古さ、過去 90 日間の活動の停止、メンテナーの不足について、決められた順序でポイントを減算します。スコアは 0 を下回りません。未解決イシュー数はシグナルに含めて返しますが、意図的に採点には使いません。トラッカーの活発さは、人気のあるプロジェクトを示す場合も、放置されたプロジェクトを示す場合もあるためです。このツールは、一方向の判断につながるシグナルに絞っています。
区分によって、スコアをひと目で検証できます。リリースから 180 日以内は fresh、365 日までは aging、730 日までは stale、それを超えると dormant です。リリース情報がない場合、区分は unknown です。コミットは、より短い期間で判定します。90 日以内は active、180 日までは slowing、365 日までは quiet、それを超えると silent です。スコアが 80 以上なら maintained、50 以上なら at_risk、0 より大きければ likely_abandoned、0 なら abandoned です。減点が一切ない場合、理由は「no adverse signals」のみです。それ以外の場合は、適用された順に、該当する減点の理由がそれぞれ示されます。
入力に不備がある場合(name がない、空、または文字列でない場合、archived がない、または真偽値でない場合、あるいは任意の数値が 0 以上の整数でない場合)、該当するパスを示す検証エラーとなり、部分的な結果は返されません。未定義の追加フィールドは無視されます。計算は純粋かつローカルで行われ、ネットワーク接続も設定も不要で、リポジトリの読み取りや変更も行いません。
CLI
npx @reneturcios/abandoncheck check --input args.json
npx @reneturcios/abandoncheck --version
args.json には、引数オブジェクト全体を記述します。
{
"name": "leftpad",
"archived": false,
"last_release_days": 45,
"last_commit_days": 12,
"recent_commits_90d": 18,
"maintainer_count": 3,
"open_issues": 27
}
結果は JSON として出力されます。
{
"name": "leftpad",
"verdict": "maintained",
"score": 100,
"signals": {
"archived": false,
"last_release_band": "fresh",
"last_commit_band": "active",
"recent_commits_90d": 18,
"maintainer_count": 3,
"open_issues": 27
},
"reasons": ["no adverse signals"]
}
指定されていない任意のシグナルは、signals では null として返され、区分は "unknown" になります。終了コード:成功時は 0、実行時エラー(読み取れない入力ファイル、無効な入力ファイル、または無効な入力を含む)では 1、使用方法のエラーでは 2 です。
MCP サーバー
npx -y @reneturcios/abandoncheck mcp
MCP クライアントの設定:
{
"mcpServers": {
"abandoncheck": {
"command": "npx",
"args": ["-y", "@reneturcios/abandoncheck", "mcp"]
}
}
}
ツール
-
check_dep_maintenance— 呼び出し元が指定した事実に基づくシグナルのみから、1 つの依存関係が保守されているかを判定します。name(文字列、必須、空でない)— 依存関係の名前archived(真偽値、必須)— 依存関係のリポジトリがアーカイブされているかどうかlast_release_days(整数、任意、0 以上)— 最後のリリースからの日数。リリースがない場合は省略last_commit_days(整数、任意、0 以上)— 最後のコミットからの日数。不明な場合は省略recent_commits_90d(整数、任意、0 以上)— 過去 90 日間のコミット数maintainer_count(整数、任意、0 以上)— アクティブなメンテナーの数open_issues(整数、任意、0 以上)— 未解決イシュー数。報告されますが、採点には使われません
{name, verdict, score, signals, reasons}を返します。signalsは{archived, last_release_band, last_commit_band, recent_commits_90d, maintainer_count, open_issues}です。
Docker
docker run -i ghcr.io/cloudcorprecords/abandoncheck
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/abandoncheck check --input /w/args.json
開発
npm install
npm run build # tsc -> dist/
npm test # tsx --test test/*.test.ts (pure local, no network)
npm run dev # run the CLI from source
ライセンス
MIT — Copyright (c) 2026 Rene Turcios
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。