MCPfinder - MCP Server Discovery について
MCPfinderは、MCP サーバーの検索、詳細確認、インストール設定の生成をAIクライアントに提供するローカルMCPサーバーです。Official MCP RegistryとGlamaを索引化し、スナップショットから起動して定期的に更新します。
主な機能
- 01複数カタログのサーバー検索
- 02信頼性情報と導入情報の確認
- 03クライアント用設定の生成
- 04カテゴリ別のサーバー閲覧
活用シーン
- 01キーワードでMCPサーバーを検索
- 02導入前に詳細や警告を確認
- 03クライアント用設定スニペットを作成
MCP 対応
MCPクライアントに検索、詳細確認、導入設定、カテゴリ閲覧のツールを公開し、エージェントによる他のMCPサーバーの発見と設定を支援します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
4掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | number | いいえ | 返す結果の最大数(デフォルト:10、最大:50) |
| query | string | いいえ | 検索クエリ — キーワード(例:"filesystem")、ユースケース("query databases")、または技術("postgres")。一般的なエイリアスも利用できます:"gh" → github、"pg" → postgres、"k8s" → kubernetes、"db" → database。人気の高いサーバーを表示するには空欄にしてください。 |
| registryType | enum | いいえ | パッケージレジストリの種類で絞り込むnpm | pypi | oci | any |
| transportType | enum | いいえ | トランスポートの種類で絞り込むstdio | streamable-http | sse | any |
| registrySource | enum | いいえ | レジストリのソースで絞り込むofficial | glama | smithery | any |
詳細
@mcpfinder/server
MCP サーバーを見つける MCP サーバー。AI のツール用アプリストアです。
MCPfinder は、Official MCP Registry と Glama にある MCP サーバーの検索可能なインデックスを公開するローカル MCP サーバーです。 AI クライアントの機能として一度インストールすれば、以降はアシスタントが必要に応じて MCP サーバーを見つけ、詳細を確認し、インストールできます。手動で探す必要はありません。
クイックインストール
以下のスニペットを、クライアントの MCP 設定ファイルに追加してください。初回の実行時には
https://mcpfinder.dev/api/v1/snapshot からビルド済みの圧縮スナップショットをダウンロードするため、
通常は 10 分かかるライブ同期ではなく、1 回のダウンロードでセットアップできます。この
サーバーは brotli アーティファクトを優先します。gzip アーティファクトより約 21%小さく、
取得、展開、検証に失敗した場合は gzip にフォールバックします。その場合は 2 回のダウンロードが
必要です。そのため、brotli の失敗だけでセットアップが失敗することはありません。
両方のアーティファクトに失敗した場合、ダウンロードは失敗し、サーバーは何もせずに終了するのではなく、
ライブ同期にフォールバックします。gzip のみを使うには
MCPFINDER_SNAPSHOT_NO_BROTLI=1 を設定してください。どちらのサイズもインデックス対象の
コーパスに応じて増加します。現在の値は、スナップショットマニフェストの
sizeBytes および brotli.sizeBytes フィールドで確認できます。
https://mcpfinder.dev/api/v1/snapshot/manifest.json
ダウンロードによって起動がブロックされることはありません。サーバーはすぐに
initialize に応答し、バックグラウンドでスナップショットを取得するため、クライアントの
ハンドシェイクタイムアウトによってダウンロード中にサーバーが終了することはありません。
カタログがまだ空の間、つまりスナップショットのダウンロード中や、スナップショットを適用する
ハンドルの切り替え中にツール呼び出しが届いた場合は、応答が止まったり「見つかりません」と返されたりする代わりに、
進捗を示す簡潔な「準備中」通知を返します。この状態は
retry_after_seconds を含む status: "preparing" として報告され、found: false としては報告されません。そのため、構造化出力の利用側が
「準備未完了」を「存在しない」と誤認することはありません。ファイルが届くと検証(sha256)され、
再起動なしで切り替えられます。ネットワーク障害は発生時点にかかわらずログに記録され、
ライブ同期にフォールバックします。サーバーが停止することはありません。
複数のクライアントで 1 つのデータディレクトリを共有
Claude Desktop、Cursor、Claude Code はそれぞれ独自の mcpfinder プロセスを ~/.mcpfinder に対して起動するため、既存のファイルがその場で置き換えられることはありません。各スナップショットは data-<sha16>.db という独立した不変ファイルであり、ポインター(<data-dir>/data.db.snapshot.json)に現在のファイルが記録されます。プロセスが行うのはファイルの追加だけで、古いファイルを提供しているピアには影響しません。
保持処理では、後に置き換えられたデータベースファイルが削除されますが、長期間にわたって削除対象となるのはそのファイルだけです。POSIX では、ファイルをまだ開いているピアはその inode を使い続けられます。また、実際に破損の原因となる -wal/-shm はそのまま残されます。これはデータベースが削除された後も同じです。孤立したジャーナルは、実行中のピアが必要としているものと見分けがつかないため、回収されることはありません。
これらのファイルは容量を消費します。クロールは一つのトランザクションとしてコミットされ、実測したインストールでは、323MB のデータベースに加えて 40MB の -wal と 1MB の -shm がありました。ただし、サーバーは同期が成功するたびに WAL をトリミングし、役目を終えたハンドルを適切にクローズするため、ジャーナルがクロール全体と同じサイズに膨らんだままになることはありません。クローズに失敗した場合は放棄せずに再試行します。最初は短い間隔で 3 回、その後は unref されたティッカーで 1 分ごとに無期限に再試行します。stdio サーバーは起動元のクライアントが存続する間ずっと動作するため、再試行をあきらめると、置き換えられたファイルのディスクリプターと WAL ロックが何日も保持される可能性があるからです。
MCP クライアントが stdio サーバーを停止する際によく使う SIGKILL は捕捉できないため、最後のチェックポイント以降に蓄積されたデータは既知のリークとして残ります。その後に起こることのうち 2 つについては、@mcpfinder/core を参照してください。削除は失敗することがあるため、開いているファイルの名前を取り除けない場合は古いスナップショットが残り、サイドカーファイルは対応するデータベースより長く残ることがあります。
プロセス内で切り替える際は、古いハンドルを解放する前に新しいファイルを開きます。そのため、使用可能なデータベースがない状態になることはなく、ツールの呼び出しが切り替えを待つこともありません。以前のバージョンでインストールしたものは、既存の data.db を使い続けます。このファイルの名前が変更されたり削除されたりすることはありません。新しいスナップショットが初めてポインターにバージョン付きファイルを指定すると、そのファイルに切り替わります。
置き換えられたファイルが回収されるのは、ポインターから参照されておらず、かつ MCPFINDER_SNAPSHOT_RETAIN_HOURS(デフォルトは 48)で指定された時間にわたって変更されていない場合に限られます。現在のファイルは、経過時間にかかわらず削除されません。意図的なトレードオフとして、あるプロセスが新しいスナップショットに切り替わる一方で、別のプロセスがライブ同期の途中だった場合、後者も切り替わる際にその同期結果は破棄されます。公開されたスナップショットがカタログの信頼できる情報源であるため、最大でも後から 1 回再同期すれば済みます。
インストール済みのスナップショットは、その後 1 日に 1 回再チェックされます(期間ごとに 4 回、古さのしきい値がポーリングされるため、再チェックがわずかに早く行われても、更新が次の期間まで先送りされることはありません)。新しいものが見つからなかった場合、必要なリクエストはマニフェストへの1 回のみです。マニフェストで異なるダイジェストが通知されると、DB へのリクエストが続きます。gzip エンドポイントでは条件付きリクエスト(ポインターに記録された ETag を使用する If-None-Match)ですが、ETag が示すファイルがまだディスク上にある場合に限られます。修復時に再検証すると 304 が返され、何もインストールされないためです。ファイルを転送するか、304 を返します。brotli エンドポイントでは無条件リクエストです。このアーティファクトは独自のダイジェストでコンテンツアドレス指定されており、brotli の ETag は一切保存されないためです。brotli の試行に失敗した場合は、gzip アーティファクトへのリクエストがさらに 1 回発生します。マニフェストへのリクエスト自体は常に無条件です。ポインターを削除すると、ダウンロードが 1 回余分に発生し、プロセスは標準の data.db 名に戻ります。これは安全です。その名前が削除済みで、ピアのジャーナルだけがそこに残っている場合、resolveCurrentDbPath はそのジャーナルを採用せず、バリアント名を開きます。
ライブ更新が必要な場合、レジストリは Official → Glama の順に逐次実行されるため、後続の重複排除インデックスは先に挿入されたデータを参照できます。失敗したソースは報告されますが、残りのソースへの試行は続行されます。
通常のコールドスタートではスナップショットが使われるため、ライブレジストリの予算を合算したコストは発生しません。逐次実行時の最悪ケースが適用されるのは、スナップショットのブートストラップが明示的に無効化されている場合、または空のデータベースから起動する際に失敗した場合のみです。レジストリ間で決定的に重複排除できるよう、順序は維持されます。
Claude Desktop
(macOS)~/Library/Application Support/Claude/claude_desktop_config.json、または(Windows)%APPDATA%\Claude\claude_desktop_config.json:
{
"mcpServers": {
"mcpfinder": {
"command": "npx",
"args": ["-y", "@mcpfinder/server"]
}
}
}
Claude Desktop を再起動します。
Cursor
(プロジェクト).cursor/mcp.json、または(グローバル)~/.cursor/mcp.json:
{
"mcpServers": {
"mcpfinder": {
"command": "npx",
"args": ["-y", "@mcpfinder/server"]
}
}
}
Claude Code
(プロジェクト).mcp.json、または(グローバル)~/.claude.json — 上と同じスニペットです。
Cline / Roo Code(VS Code)
.vscode/mcp.json:
{
"servers": {
"mcpfinder": {
"command": "npx",
"args": ["-y", "@mcpfinder/server"]
}
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json — Cursor と同じスニペットです。
公開されるツール
AI での利用に最適化された 4 つの標準ツールです(チェーン処理用の型付き outputSchema と structuredContent、警告フラグ、信頼度の内訳を備えています)。
| ツール | 用途 |
|---|---|
search_mcp_servers | キーワード、テクノロジー、またはユースケースによる、ランキング付きの全文検索です。 |
get_server_details | インストール前に確認できる信頼性の指標、環境変数、ツールマニフェスト、警告です。 |
get_install_config | Claude Desktop、Cursor、Claude Code、Cline、または Windsurf 用の、そのまま貼り付けられる JSON 設定です。 |
browse_categories | 1 回の呼び出しでカテゴリを閲覧できます(一覧表示には category を省略し、上位サーバーの表示には category を指定します)。 |
MCPfinder が AI に返す内容
confidenceScoreを含むランク付けされた結果と、透明性の高いconfidenceBreakdown(base、official、verified、popularity、multiSource、penalties)。2.0.0 以降、verifiedとpopularityは 常に 0 です(詳細のuseCount/verifiedも 0/false)。これらの 唯一の情報源だった Smithery との同期は終了しています。詳しくは CHANGELOG をご覧ください。warningFlags:deprecated-npm、archived-repo、stale-over-18-months、single-source-only、missing-repository-url、install-method-unclear。- インストールメタデータ:OS ごとの対象ファイルパス、必須環境変数(シークレットには
マークを付与)、
safe_to_autoinstallおよびrequires_user_secretsのシグナル。 - 生成された設定の
envブロックには説明文ではなく値が設定されます。シークレットには<YOUR_VALUE>、それ以外の変数にはレジストリで公開されたdefault、次にplaceholder、それもなければ<VALUE>が設定されます。説明はスニペットの下にある 「必須環境変数」セクションに記載されます。 - レジストリの
isSecretフラグは、存在するか存在しないかのどちらかであり、存在しない 場合は「シークレットではない」ではなく「ラベルなし」を意味します。認証情報らしい名前 (GITHUB_TOKEN、OPENAI_API_KEYなど)を持つラベルなしの変数には、環境変数の一覧に 注意書き(「認証情報のように見えます(レジストリでシークレットとしてマークされていません)。シークレットとして扱ってください」)が表示され、get_install_configのpossible_unlabeled_secretsにも記載されます。これはあくまで注意喚起です。 設定値は、マークのない変数と同じ方法で選択されます(レジストリのdefault、次にplaceholder、それもなければ<VALUE>)。このヒューリスティックによって値が変わることはなく、requires_user_secretsの意味もレジストリの情報だけに基づく点で変わりません。
2.0.1:一覧ページのリンクはリモートエンドポイントではありません
Glama が公開しているのは各サーバーのディレクトリページ(https://glama.ai/mcp/servers/<id>)であり、
MCP エンドポイントではありません。2.0.1 以降、このページはサーバーの 一覧ページ として表示されます。
Glama の情報のみがあるサーバーはリモートとしてマークされなくなり、パッケージもリモートエンドポイントもない
サーバーに対して get_install_config は、リポジトリと一覧ページへのリンクを添えて「既知のインストール方法はありません」と
返します。公開カタログでは、2 つの Official Registry エントリに同じエンドポイントが記載されている場合、
1 つのエントリとして扱われます。
2.0.0 へのアップグレード
2.0.0 では情報源から Smithery が削除されます。Smithery のレジストリ API、プロキシ、
ホスト型サーバー URL は 2026-10-31 に利用できなくなります(https://smithery.ai/future)。ライブ同期では
Official MCP Registry と Glama のみを呼び出すようになり、registrySource: "smithery" は
削除されます。廃止された Smithery ホストのリモート URL が提示されることもありません。また、1.x の
ローカルカタログは初回起動時にクリーンアップされます(Smithery のみを情報源とするサーバーを削除し、
Smithery の URL と人気度/認証済みの値を消去します)。詳しくは CHANGELOG をご覧ください。
設定
| 環境変数 | デフォルト | 内容 |
|---|---|---|
MCPFINDER_DATA_DIR | ~/.mcpfinder/ | ローカルの SQLite DB の保存先です。 |
MCPFINDER_DISABLE_SNAPSHOT | 未設定 | 1 に設定すると、スナップショットによるブートストラップをスキップし、代わりにライブ同期を行います。 |
MCPFINDER_SNAPSHOT_NO_BROTLI | 未設定 | 1 に設定すると、マニフェストの brotli アーティファクトを無視し、常に gzip をダウンロードします。 |
MCPFINDER_SNAPSHOT_BASE | https://mcpfinder.dev/api/v1/snapshot | ミラーやテスト用にスナップショットのホストを上書きします。 |
MCPFINDER_SNAPSHOT_REFRESH_HOURS | 24 | インストール済みのスナップショットをマニフェストと再確認するまでの経過時間です。0 では定期的な再確認のみ無効になります。まだスナップショットがない環境では、引き続きブートストラップが行われます。 |
MCPFINDER_SNAPSHOT_RETAIN_HOURS | 48 | 古いスナップショットファイルが削除されるまでの猶予期間です。mcpfinder のプロセスを長時間実行し続ける場合は、値を大きくしてください。 |
MCPFINDER_SNAPSHOT_DOWNLOAD_STALE_HOURS | 6 | 放置されたダウンロード途中のファイルが削除されるまでの猶予期間です。 |
MCPFINDER_SNAPSHOT_MANIFEST_TIMEOUT_MS | 10000 | 小さなマニフェストリクエストのタイムアウトです。 |
MCPFINDER_SNAPSHOT_STALL_TIMEOUT_MS | 60000 | DB ダウンロードの無通信許容時間です。この時間にわたって受信バイトがない場合にのみ中断されるため、速度は遅くても正常な接続が切断されることはありません。 |
MCPFINDER_SNAPSHOT_FRESH_MINUTES | 360 | インストールしたばかりのスナップショットを新鮮な同期とみなし、ライブレジストリの更新が再開されるまでの時間です。 |
GLAMA_API_KEY | 未設定 | Glama のレジストリ用 API キーです(こちらで作成)。設定されていない場合、ライブ更新では Glama が完全にスキップされます。同期対象は Official のみとなり、Glama は skipped として記録されます。公開済みのスナップショットには、常に Glama のデータが含まれます。公開にはすべてのレジストリが必須のため、Glama と同期できなかったビルドは何も公開せず、クライアントは前回の完全なスナップショットを使い続けます(マニフェストの publishedAt と counts を確認してください)。 |
Glama の API データライセンスでは、API から取得したデータを表示するすべてのページに、Glama の帰属表示が必要です
(https://glama.ai/policies/terms-of-service)。sources に glama が含まれるサーバーを表示する画面には、必ず帰属表示を付けてください。
リンク
- ソースコードと課題: https://github.com/mcpfinder/mcpfinder
- MCP レジストリ:
dev.mcpfinder/server - ウェブサイト: https://mcpfinder.dev
- AI 向け概要: https://mcpfinder.dev/llms.txt
ライセンス
AGPL-3.0-or-later — 個人利用、社内利用、商用利用は無料です。ネットワークサービスとして公開する変更は、同じライセンスのもとで公開する必要があります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。