mcpindex について
mcpindexは、エージェントがMCPサーバーを検索、比較、インストールするためのMCPサーバーです。ツール呼び出し前の信頼チェックも提供しますが、判定は助言であり、安全性の保証ではありません。
主な機能
- 01タスクに応じたサーバー推薦
- 02キーワードとセマンティック検索
- 03クライアント別のインストール手順
- 04サーバーの横並び比較
- 05呼び出し前のツール・サーバーチェック
活用シーン
- 01エージェントのタスクに合うサーバー探し
- 02品質や設定情報の比較
- 03ツール実行前のサーバー確認
- 04クライアント別インストール設定の取得
MCP 対応
MCPクライアントに、検索、比較、インストール案内、助言的な信頼チェックを行う6つのツールを提供します。ローカルのstdioサーバーまたはホスト型リモートMCPサーバーとして利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcpindex.ai/api/mcpclaude mcp add --transport http gautamgb-mcp-server-mcpindex https://mcpindex.ai/api/mcp{"mcpServers":{"gautamgb-mcp-server-mcpindex":{"type":"http","url":"https://mcpindex.ai/api/mcp"}}}Cursor で開く{"servers":{"gautamgb-mcp-server-mcpindex":{"type":"http","url":"https://mcpindex.ai/api/mcp"}}}VS Code で開く{"mcpServers":{"gautamgb-mcp-server-mcpindex":{"type":"http","url":"https://mcpindex.ai/api/mcp"}}}{"mcpServers":{"gautamgb-mcp-server-mcpindex":{"serverUrl":"https://mcpindex.ai/api/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
6| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| task | string | はい | タスクの自然言語による説明。例:"read PDFs and write to S3"。 |
詳細
mcp-server-mcpindex
MCP サーバーを検索するための MCP サーバーです。また、エージェントフレームワークがツールを呼び出す前に利用できる、信頼性に関する助言的な判定も提供します。mcpindex.ai 提供。
エージェントのループ内から、ほかの MCP サーバーを検索、比較、インストールし、事前チェックできる、すぐに導入可能な MCP サーバーです。mcpindex.ai が提供するもので、公式レジストリを対象としたエージェント向け MCP サーバーインデックスです(現在の件数は mcpindex.ai/stats)。毎日スクリーニングとドリフト監視を実施しています。
ライブサイト · npx mcp-server-mcpindex · リモート MCP · インストールゲート · ドキュメント · 信頼性
インストール
npm install -g mcp-server-mcpindex
これはディレクトリ/助言用クライアントです(推奨、検索、信頼性確認)。インパス型のドリフトゲートはインストールしません。インストールするには、curl -fsSL https://mcpindex.ai/install.sh | sh を実行してください。
Node 20 以降が必要です。stdio では、2 つのプロトコル世代に対応しています。2026-07-28 リビジョン(server/discover、リクエストごとの _meta エンベロープ)と、現在のすべてのクライアントが使用する initialize ハンドシェイク(2025-11-25 から 2024-10-07 まで)です。接続ごとに選択されます。
またはリモート接続(インストール不要)
何もインストールしたくない場合、mcpindex はホスト型リモート MCP サーバーとしても利用できます。リモート MCP に対応する任意のクライアント(Claude コネクター、Cursor など)で、次の URL に接続してください。
https://mcpindex.ai/api/mcp
Streamable HTTP で、認証情報は不要です。npm パッケージと同じ 6 つのツールを利用できます。
Claude Code
claude mcp add --scope user mcpindex -- npx -y mcp-server-mcpindex@latest
Gemini CLI
gemini mcp add -s user mcpindex npx -y mcp-server-mcpindex@latest
Claude Desktop から使用する
~/Library/Application Support/Claude/claude_desktop_config.json に追加します。
{
"mcpServers": {
"mcpindex": {
"command": "npx",
"args": ["-y", "mcp-server-mcpindex@latest"]
}
}
}
@latestを指定すると、常に最新の状態を保てます。これは助言型の検索サーバーであり(インパス型のドリフト ゲートではありません)、バージョンを固定していません。次回ホストを再起動すると、npxが最新バージョンを取得するため、 手動でアップグレードする必要はありません。
Claude Desktop を再起動して、次のように尋ねてください。
「PDF を読み取り、その内容を S3 に書き込める MCP サーバーを探してください。」
Claude は recommend_mcp_for_task を呼び出し、インストールコマンド付きで、ランキング上位 3 件のサーバーを返します。
Cursor から使用する
.cursor/mcp.json に追加します。
{
"mcpServers": {
"mcpindex": {
"command": "npx",
"args": ["-y", "mcp-server-mcpindex@latest"]
}
}
}
Cline から使用する
cline_mcp_settings.json に追加します。
{
"mcpServers": {
"mcpindex": {
"command": "npx",
"args": ["-y", "mcp-server-mcpindex@latest"]
}
}
}
Zed から使用する
Zed は mcpServers ではなく context_servers から MCP サーバーを読み込みます。~/.config/zed/settings.json に追加します。
{
"context_servers": {
"mcpindex": {
"command": "npx",
"args": ["-y", "mcp-server-mcpindex@latest"]
}
}
}
公開されるツール
| ツール | 機能 |
|---|---|
recommend_mcp_for_task | 自然言語でタスクを指定します。推奨理由、インストールコマンド、品質スコアとともに、上位 3 件のサーバーを返します。 |
search_mcp_servers | レジストリ全体を対象に、キーワード検索とセマンティック検索を行います。任意でカテゴリーによる絞り込みが可能です。 |
get_install_command | サーバーとクライアント(Claude Desktop、Claude Code、Cursor、Gemini CLI、Cline、Zed)を指定して、正確なインストール用 JSON/CLI を取得します。 |
compare_servers | 2~5 件のサーバーを並べて比較します。品質スコア、インストール方法、環境変数を確認できます。 |
check_tool_trust | サーバー上の特定のツールに対し、呼び出し前の参考判定を行います。フェイルクローズ方式で、判定がファイルにない場合は UNVERIFIED を返します。 |
assess_server | サーバー上のすべてのツールを対象に、呼び出し前の総合判定を行います。形式は check_tool_trust と同じです。 |
エージェントフレームワークとの統合:呼び出し前の参考スクリーニング
check_tool_trust は、インパスの mcpindex-gate ではなく、ディレクトリクライアントの統合インターフェースです。エージェントフレームワーク(Composio、Mastra、LangChain、DSPy、生の LLM ツール呼び出しループ)から、呼び出しをディスパッチする前に参考スクリーニング判定を照会できます。v1 で確認できるのは REVIEW または UNVERIFIED であり、安全性が承認されたことを示すものではありません。
Mastra をお使いですか? 姉妹パッケージ
@mcp-index/mastraでは、このスクリーニングをすぐに使えるbeforeToolCallフックとして提供しています。npm i @mcp-index/mastraを実行すれば、配線は不要です。
判定の仕様(v1)
このツールは、API の判定を API から受け取ったとおりに返します(ホストされたエンドポイント /api/mcp が返すものと同じフィールドと値)。さらに、このクライアントが末尾に 4 つのフラットな便宜フィールドを追加します:server_id、tool_name、source_url、fetched_at。
{
"subject": { "server_id": "github", "tool_name": "create_pull_request", "tool_verified": false },
"directive": "ALLOW" | "DENY" | "REVIEW" | "UNVERIFIED",
"status": "EVALUATED" | "PARTIAL" | "STALE" | "ERROR",
"granularity": "description-level" | null, // scope of a PARTIAL screen
"dimensions": [
{ "id": "tool_safety", "verdict": "PASS", "severity": "INFO" }
],
"expires_at": "2026-06-30T00:00:00Z",
"honest_limits": [
"semantic_only_no_conformance",
"calibrated_false_v1",
"description_level_screen",
"advisory",
"tool_name_not_independently_verified"
],
"verdict_contract_version": "1.1.0",
"server_id": "github",
"tool_name": "create_pull_request",
"source_url": "https://mcpindex.ai/api/v1/trust/tool/github/create_pull_request",
"fetched_at": "2026-05-28T18:42:11.118Z"
}
verdict_contract_version は API 自身のバージョンであり、このクライアントが書き換えることはありません。subject.tool_verified: false は、API がツール名の存在をサーバー上で確認していないことを意味します。現在のスクリーニングは説明レベルであるため、スクリーニング対象サーバー上のどのツール名にも、そのサーバーの判定が適用されます。
無料プランの判定には、ディレクティブ、ディメンション、新しさの情報が含まれます。証拠の引用、LLM による根拠、履歴チェーンは有料プラン向けの機能であり、意図的にここでは省略されています。
制限事項(ゲートの UI に表示してください)
honest_limits は API が返すリストであり、そのまま中継されます。ゲートでは、ディスパッチの判断ごとにこのリストを必ず表示してください。スクリーニング済みの判定には、スクリーニング自体の制限事項(例:semantic_only_no_conformance、description_level_screen、tool_name_not_independently_verified)が含まれます。判定がファイルにない場合、またはクライアントがフェイルクローズする場合、このリストは v1 の最低限の内容となります:
conformance_monitored_not_enforced- 公開者による自己申告です。mcpindex は差分を監視しますが、ネットワーク層ではブロックしません。calibrated_false_v1- ディメンションの重大度は、実際のインシデントデータに基づく調整がまだ行われていません。advisory_deployment- 判定は参考情報であり、エージェント(またはエージェントを確認する人間)が意思決定者です。
API が返したリストとこの最低限のリストを、クライアントが結合することはありません。結合すると内容が矛盾する可能性があるためです。
履歴のアンカリング:OTS による Bitcoin アンカリング履歴。N=6 確認(約 1 時間)で Bitcoin 上の確定が完了し、約 10 分で保留状態になります。サブウィンドウの精度は主張されているものであり、証明されていません。
統合パターン(LangChain 形式、直接 LLM ツール呼び出しの規約)
import { Client } from '@modelcontextprotocol/sdk/client/index.js';
import { StdioClientTransport } from '@modelcontextprotocol/sdk/client/stdio.js';
const mcpindex = new Client({ name: 'gate', version: '1.0.0' }, { capabilities: {} });
await mcpindex.connect(new StdioClientTransport({
command: 'npx', args: ['-y', 'mcp-server-mcpindex@latest'],
}));
// gateToolCall wraps any agent tool dispatch. Plug it in front of
// the LangChain / DSPy / Mastra / Composio tool-call hook.
async function gateToolCall({ serverId, toolName, invoke, askHuman }) {
const res = await mcpindex.callTool({
name: 'check_tool_trust',
arguments: { server_id: serverId, tool_name: toolName },
});
const verdict = JSON.parse(res.content[0].text);
// Pin the v1 caveats in the audit log no matter what.
audit.log({ verdict, caveats: verdict.honest_limits });
switch (verdict.directive) {
case 'REVIEW':
// Fail-CLOSED to human. Do NOT auto-execute on REVIEW.
// At v1 this is the common screened outcome (semantic-only).
return askHuman({ verdict, action: `${serverId}/${toolName}` });
case 'UNVERIFIED':
// No verdict on file (or upstream unreachable). Fail-CLOSED.
// Recommend human review. Do NOT fail-open to invoke().
return askHuman({
verdict,
action: `${serverId}/${toolName}`,
note: 'No trust verdict on file. Human review required before first use.',
});
case 'ALLOW':
// Reserved in the contract — not produced by the v1 public screen.
// Keep the branch for future conformance-earned ALLOW; do not expect it today.
return invoke();
case 'DENY':
// Reserved in the contract — not produced by the v1 public screen.
throw new Error(
`mcpindex denied ${serverId}/${toolName}: ${JSON.stringify(verdict.dimensions)}`,
);
default:
// Unknown directive. Fail-CLOSED.
return askHuman({ verdict, action: `${serverId}/${toolName}` });
}
}
最も重要なルール:フェイルオープンにしない
判定エンドポイントに到達できない場合、2xx 以外のステータスを返す場合、タイムアウトする場合、不正な JSON を返す場合、API パスをたどるような server_id/tool_name(..、/、空文字列)を受け取った場合、またはそのサーバーの判定がまだ記録されていない場合、check_tool_trust は directive: "UNVERIFIED" と status: "ERROR" を返します。暗黙のうちに ALLOW に変換することはありません。ゲートのコードでは、UNVERIFIED を「人による確認が必要」として扱い、「問題なさそうだからリリースする」と判断しないでください。
status は審査の完全性に関するテレメトリーであり、信頼に関する判断である directive とは異なります。EVALUATED(審査完了)、PARTIAL(説明レベルなど、対象の一部のみ。granularity を参照)、STALE(判定が有効期間を過ぎている)、ERROR(到達不能/判定が記録されていない)。PARTIAL の審査が EVALUATED として報告されることはありません。
これはテスト済みです。test/trust.test.mjs を参照してください。
MCP を使わずにライブラリーを直接使用する
トラストクライアントは、プレーンな ES モジュールとしてもエクスポートされています。
import { checkToolTrust, assessServer } from 'mcp-server-mcpindex/src/trust.mjs';
const verdict = await checkToolTrust({
serverId: 'github',
toolName: 'create_pull_request',
});
if (verdict.directive !== 'ALLOW') {
// Hand to a human, log, or block.
}
バックエンド
デフォルトでは、呼び出しは https://mcpindex.ai に送られます。セルフホストする場合は、MCPINDEX_API_BASE=... で上書きしてください。
無料プランでは、60 req/min/IP にレート制限されています。より高いスループットと、証拠を含む完全な判定(証拠の引用、LLM による根拠、チェーンの履歴)を利用できる有料キーは、近日提供予定です。
関連パッケージ
mcpindex をエージェントに導入する方法は、用途に応じて 3 つあります。
| パッケージ | インストール | 機能 |
|---|---|---|
mcp-server-mcpindex (このパッケージ) | npm i -g mcp-server-mcpindex | ディレクトリーとアドバイザリー審査を MCP サーバーとして提供します。タスクからサーバーを検索し、呼び出し前に check_tool_trust を実行します。 |
@mcp-index/mastra | npm i @mcp-index/mastra | 同じアドバイザリー審査を beforeToolCall フック(警告/強制)として Mastra に組み込みます。 |
@mcp-index/sdk | npm i @mcp-index/sdk | インパス型のドリフトゲートです。MCP セッションを wrap() し、ツールの契約がピン留めした内容から変化した場合、呼び出しを HOLD します。 |
アドバイザリー審査とドリフトゲート: このパッケージと @mcp-index/mastra は、mcpindex に「このツールは審査済みか」と問い合わせます(ネットワーク上の判定)。@mcp-index/sdk は別の質問をローカルで行います。「ピン留めしてから、このツールの契約に変更があったか」です。これらは互いに補完し合うもので、どれも別のパッケージに依存しません。
ライセンス
MIT。
プロジェクト
- ウェブサイト:mcpindex.ai
- 方法論:mcpindex.ai/methodology
- サーバーを審査する:mcpindex.ai/screen
- ガイド:タスクから適切な MCP サーバーを見つける
- ソース:github.com/mcpindex-ai
非公式です。Anthropic とは提携していません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。