mcpField
F
freshcheck

freshcheck

ローカル
github.com/CloudCorpRecords開発ツール01 週間前に更新

freshcheck について

freshcheckは、開発者やメンテナー向けに依存関係の古さを評価します。厳密なsemver比較とアーカイブ・長期未リリースの判定を行い、ネットワーク照会なしでリスク別に分類します。

主な機能

  1. 01major・minor・patchの差分比較
  2. 02アーカイブ済み・長期未リリースの検出
  3. 03リスク別の依存関係分類
  4. 04入力検証とソート済み結果
  5. 05コマンドライン、MCPサーバー、Dockerで実行

活用シーン

  1. 01深刻度に応じた依存関係更新の優先順位付け
  2. 02放棄の兆候がある依存関係の特定
  3. 03入力された依存ツリーのオフライン評価

MCP 対応

MCPサーバーは`assess_freshness`ツールを公開し、依存関係のバージョンと任意の放棄シグナルを受け取ります。評価、リスク分類、件数を返します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-freshcheck": {
"command": "npx",
"args": [
"-y",
"@reneturcios/freshcheck"
]
}
}
}
起動コマンドnpx -y @reneturcios/freshcheck

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/freshcheck0.1.0
ocighcr.io/cloudcorprecords/freshcheck:0.1.0

ツール

1

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
dependenciesarrayはい評価する依存関係(1 つ以上)。
abandoned_daysintegerいいえこの日数の間リリースがない依存関係を放棄されたものと見なします(任意、既定値は 730)。

詳細

freshcheck

依存関係ツリーは、気付かないうちに古くなります。パッチバージョンが遅れていて、特に考えずに更新できるパッケージもあれば、メジャーバージョンが遅れていて、計画的なアップグレードが必要なものもあります。また、何年も新しいリリースがないものや、リポジトリがすでにアーカイブされているものは、どのバージョンを使っていてもリスクになります。freshcheck は、依存関係ツリー(各依存関係の名前、インストール済みバージョン、利用可能な最新バージョン、および任意の放棄シグナル)を受け取り、次のリスクグループに分類します。

  • 遅れのレベル — 各依存関係について、current と latest を数値としてコンポーネントごとに比較します。最初に異なるコンポーネントによって、major、minor、または patch が決まります。latest が current より新しくない場合(同じか、古い場合)は、レベルは none です。バージョンには厳密な MAJOR.MINOR.PATCH の semver が必要です。つまり、数値のコンポーネントが3つあり、先頭のゼロやプレリリースサフィックス、ビルドサフィックスがない形式です。
  • 放棄済み — リポジトリがアーカイブされている場合、またはリリースから少なくとも abandoned_days 日が経過している場合(デフォルトは730日。任意の days_since_last_release で計測)、依存関係は放棄済みとみなされます。放棄状態はバージョンの遅れより優先されます。2メジャーバージョン遅れているアーカイブ済みパッケージは abandoned に分類されますが、遅れの大きさが失われないよう、遅れのレベルも併せて報告されます。
  • グループと件数 — すべての依存関係は、abandoned、major、minor、patch、または current(遅れのレベルが none で、放棄されていないもの)のいずれか1つのグループに分類されます。結果には各グループの名前と、グループごとの件数および合計数が含まれます。

結果内のすべてのリストは昇順でソートされるため、同じツリーには常にまったく同じ評価が返されます。不正な入力(依存関係リストがない、または空、名前がない、空、または重複している、厳密な semver ではないバージョン、型が正しくないシグナルなど)は、該当するパスを示す検証エラーになります(例:dependencies[1].latest must be a strict MAJOR.MINOR.PATCH semver version)。評価結果の一部だけが生成されることはありません。計算は純粋かつローカルで行われます。ネットワークへのアクセスやレジストリの検索はなく、渡された入力以外のファイルも読み込みません。freshcheck は、渡されたバージョンとシグナルのみを評価します。

CLI

npx @reneturcios/freshcheck assess --input args.json
npx @reneturcios/freshcheck --version

args.json には、引数オブジェクト全体を記述します。

{
  "dependencies": [
    { "name": "core", "current": "2.0.0", "latest": "2.0.0" },
    { "name": "lib", "current": "1.9.0", "latest": "1.10.2" },
    { "name": "old", "current": "0.8.1", "latest": "3.0.0", "archived": true }
  ]
}

各依存関係の archived のデフォルトは false で、呼び出し全体の abandoned_days のデフォルトは 730 です。評価結果は JSON で出力されます。

{
  "dependencies": [
    { "name": "core", "current": "2.0.0", "latest": "2.0.0", "behind": "none", "group": "current" },
    { "name": "lib", "current": "1.9.0", "latest": "1.10.2", "behind": "minor", "group": "minor" },
    { "name": "old", "current": "0.8.1", "latest": "3.0.0", "behind": "major", "group": "abandoned" }
  ],
  "groups": {
    "abandoned": ["old"],
    "major": [],
    "minor": ["lib"],
    "patch": [],
    "current": ["core"]
  },
  "counts": { "abandoned": 1, "major": 0, "minor": 1, "patch": 0, "current": 1, "total": 3 }
}

lib に注目してください。1.10.2 は 1.9.0 より1つ先のマイナーバージョンです。コンポーネントは辞書順ではなく数値で比較されるためです。

終了コード:成功時は 0、実行時エラー時(読み取り不能または無効な入力ファイル、あるいは無効な入力を含む)は 1、使用方法のエラー時は 2 です。

MCP サーバー

npx -y @reneturcios/freshcheck mcp

MCP クライアントの設定:

{
  "mcpServers": {
    "freshcheck": {
      "command": "npx",
      "args": ["-y", "@reneturcios/freshcheck", "mcp"]
    }
  }
}
ツール
  • assess_freshness — 依存関係ツリーの古さをリスク別に評価します。

    • dependencies(配列、必須、1件以上)— {name, current, latest, archived?, days_since_last_release?} オブジェクトとして依存関係を指定します。name はセット内で一意である必要があり、current と latest は厳密な MAJOR.MINOR.PATCH の semver バージョンである必要があります
    • abandoned_days(整数、任意、デフォルトは730、1以上)— 依存関係が放棄済みとみなされる、リリースのない日数

    {dependencies, groups, counts} を返します。

Docker

docker run -i ghcr.io/cloudcorprecords/freshcheck
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/freshcheck assess --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

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。