whichlib について
whichlib は、コーディングエージェント向けに GitHub リポジトリを検索・比較・採点し、依存ライブラリの選定を支援する MCP サーバーです。勢い、保守状況、採用状況、ライセンスの評価内訳を示します。
主な機能
- 01要件に合うリポジトリの推薦
- 02リポジトリの横並び比較
- 03トレンドリポジトリの検索と採点
- 04スコアの内訳と判定の表示
活用シーン
- 01プロジェクト要件に合うライブラリの選定
- 02採用前の候補リポジトリ比較
- 03言語別の新しいトレンドリポジトリ探し
MCP 対応
recommend_repos、compare_repos、trending_repos の3つのツールを MCP クライアントに提供します。stdio でのローカル実行と、ホスト型 HTTP サーバーに対応します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://whichlib.com/mcpclaude mcp add --transport http josifb-whichlib https://whichlib.com/mcp{"mcpServers":{"josifb-whichlib":{"type":"http","url":"https://whichlib.com/mcp"}}}Cursor で開く{"servers":{"josifb-whichlib":{"type":"http","url":"https://whichlib.com/mcp"}}}VS Code で開く{"mcpServers":{"josifb-whichlib":{"type":"http","url":"https://whichlib.com/mcp"}}}{"mcpServers":{"josifb-whichlib":{"serverUrl":"https://whichlib.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://whichlib.com/mcp認証が必要ツール
3| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| need | string | はい | ニーズを平易な言葉で指定します。例:"python pdf parser"、"react state management"。ライブラリ名ではなく、実現したいタスクを指定してください。 |
| limit | integer | いいえ | 返すリポジトリ数。1-10。 |
| language | string | いいえ | GitHub の言語名。例:"TypeScript"、"Python"、"Rust"、"C++"。JavaScript は TypeScript のリポジトリにも一致し、その逆も同様です。Python は Jupyter Notebook にも一致します。省略すると全言語を検索します。 |
詳細
whichlib
コーディングエージェント向けの依存関係選定ツールです。どのライブラリを使うべきか尋ねると、推測ではなく、スコア付きの検証済みの回答が得られます。
whichlib は、3 つのツールを備えた MCP サーバーです。MCP 2026-07-28 に対応しており、古いクライアントでも引き続き動作します。返されるすべてのリポジトリには、透明性のある 0~100 のスコア(勢い、メンテナンス状況、npm と PyPI のダウンロード数を含む採用状況、ライセンス)、ティア、1 行の評価、詳細な内訳が付いているため、エージェントは選定理由を説明でき、あなたもその理由を確認できます。
チーム向け(ウェイトリスト): リポジトリで使われている依存関係が古くなったときのアラートと、依存関係を追加する際にチームのコーディングエージェントが守るべきルールを提供します。ウェイトリストのイシューに 👍 を付けてください。登録が 20 件に達したら開発します。whichlib 自体は無料のままです。
インストール
Claude Code:
claude mcp add whichlib -- npx -y whichlib
Cursor、Windsurf、その他の MCP クライアント:
{ "mcpServers": { "whichlib": { "command": "npx", "args": ["-y", "whichlib"] } } }
Node 22 以降が必要です。アカウントも API キーも不要です。
インストールせずに使う場合(ホスト型、Node 不要):
claude mcp add --transport http whichlib https://whichlib.com/mcp
制限事項と Web API:https://whichlib.com/docs/
ツール
| ツール | 尋ねる内容 | 得られるもの |
|---|---|---|
recommend_repos | 平易な言葉での need、任意の language、limit 1~10 | ニーズへの適合度(スコア × 関連性)で順位付けされた最適なリポジトリ。それぞれにダウンロード数と評価が付きます |
compare_repos | repos:owner/repo 形式の名前を 2~10 個 | リポジトリを横並びで比較した結果。最適なものから順に、同じ内訳が表示されます |
trending_repos | period day / week / month / rising、任意の language、limit | 指定期間に作成され、スター数が最も多いリポジトリをスコア付きで表示します。rising では、今週獲得したスター数に基づき、作成時期を問わずリポジトリを表示します |
Claude Code での例:「Python の PDF パーサーはどれを使うべき?」 → MinerU、pdfplumber、pypdf と、それぞれのスコア、週間ダウンロード数、「急上昇中、週 2.6 万ダウンロード、3 日前にプッシュ、Apache-2.0」といった評価が表示されます。
スコア
| 項目 | 重み | 指標 |
|---|---|---|
| 勢い | 40% | 7 日間のスター獲得数(利用可能な場合は日ごとのスター数を使用)。それ以外は作成後の 1 日あたりのスター数を使用し、判明している場合は npm/PyPI のダウンロード傾向に応じて調整します(0.5~2 倍)。対数スケールです。 |
| メンテナンス状況 | 25% | 最終プッシュからの経過日数。30 日で満点、1 年で 0 点です。広く使われているリポジトリ(スター 1 万以上、または週間ダウンロード数 10 万以上)は、半分未満にはなりません。 |
| 採用状況 | 25% | スター数、フォーク数、npm/PyPI の週間ダウンロード数。対数スケールです。 |
| ライセンス | 10% | 寛容なライセンスは 1.0、弱いコピーレフトは 0.75、強いコピーレフトは 0.5、ライセンスなしは 0 です。 |
ティア:Strong ≥ 75、Solid ≥ 50、Watch ≥ 25、Avoid。作成から 30 日未満のリポジトリは、スコアにかかわらず New(「評価するには新しすぎます」)になります。アーカイブ済みのリポジトリのスコアは 20 が上限です。20 件のニーズを使った評価では、最上位の推奨が 75% の確率で受け入れられ、上位 5 件には 100% の確率で受け入れられる候補が含まれます。評価とレポートはリポジトリ内にあります。
環境変数(すべて任意)
GITHUB_TOKEN:GitHub の検索上限を 1 分あたり 10 件から 30 件に引き上げます。権限のないファイン・グレインド・トークンで十分です。推奨ツールは呼び出しごとに 3 回検索します。WHICHLIB_HISTORY=off:日ごとのスター数をダウンロードしません。デフォルトでは、サーバーは直近 10 日分を~/.whichlib/stars/に保持し、バックグラウンドで 12 時間に 1 回を上限としてraw.githubusercontent.comから更新します。そのため、勢いの指標には、各言語の上位 1,000 件のリポジトリと、新たにトレンド入りしたリポジトリについて、実際の週間スター獲得数が使われます。このダウンロードで何かが送信されることはありません。FRESH_REPOS_DATA_DIR:代わりに使用する日次スナップショットまたはスター数のフォルダーです(リポジトリのデータブランチを参照)。WHICHLIB_TELEMETRY=offまたはDO_NOT_TRACK=1:匿名の呼び出し数カウントを無効にします。カウントされる情報:ツール名、ランダムなインストール ID、バージョン、プラットフォーム、Node のメジャーバージョン、呼び出し時の MCP プロトコルバージョン。クエリ、リポジトリ名、結果は決してカウントされません。集計値は https://whichlib-telemetry.todorovskijosif.workers.dev/stats で公開されています。
ソース、ダッシュボード、データ
リポジトリ:https://github.com/josifb/whichlib(MIT)。このリポジトリには、Fresh Repos ダッシュボード(新着リポジトリのスター数ランキング、日/週/月別、並べ替え可能、HTML ファイル 1 つ)、夜間のスナップショットとエンリッチメントのジョブ、おすすめ機能の評価、80 件以上のユニットテストも含まれています。
リポジトリの whichlib/ フォルダーから開発する場合:
npm test # unit tests, no network
npm run mcp:smoke # start the server over stdio and call every tool live
npm run eval # 20-need recommendation eval (set GITHUB_TOKEN)
npm run snapshot # today's top repos per period and language -> data/snapshots/
npm run enrich # add npm / PyPI packages and weekly downloads to the latest snapshot
npm run score # top repos from the latest snapshot with score and verdict
npm run pull-data # copy snapshots from the data branch
構成:
mcp/server.mjs MCP entry (stdio) mcp/tools.mjs tool logic
mcp/expand.mjs query expansion mcp/telemetry.mjs anonymous call counting
mcp/github-api.mjs GitHub client + cache mcp/data.mjs snapshot history provider
mcp/eval/ needs, metrics, runner, inspect, results/
lib/score.js the score, shared by browser and Node
snapshot/src/ query, normalize, github, registry, enrich, history, run, score-report, pull-data
dashboard/index.html redirect to whichlib.com/repos (Fresh Repos)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。