mcpindex

io.github.gautamgb由 GitHub 帳號 gautamgb 發布v0.4.0更新於 Oct 24, 2026

The MCP server index that vets servers, not just lists them. Advisory screen before you install.

已驗證Streamable HTTP可網頁執行開發者工具安全與監控

概覽

AI 產生的概覽

一個 MCP 伺服器索引,讓助理推薦、搜尋、比較並預檢其他 MCP 伺服器,並提供諮詢性信任判定。

可以做什麼
  • 推薦與搜尋 MCP 伺服器:把自然語言任務轉成附理由與品質評分的排序推薦,或依關鍵字與語意檢索,可加分類篩選。
  • 比較與安裝:對 2 至 5 個伺服器做並排比較,並提供適用於 Claude Desktop、Claude Code、Cursor、Gemini CLI、Cline、Zed 等用戶端的确切安裝指令或設定區塊。
  • 信任篩檢:針對某個伺服器的特定工具取得諮詢性判定,或對整個伺服器取得彙總的預檢評估,包含面向、時效與明示限制。
適用情境
適合希望助理在對話中直接挑選合適的 MCP 伺服器、比較候選方案,或產生可直接貼上的安裝設定的情境。也適用於在派送工具呼叫前想做諮詢性信任檢查的代理框架。
執行需求
可使用免憑證的遠端 streamable HTTP 端點,或以 npx 執行 npm 套件,後者需要 Node 20 以上。預設呼叫 mcpindex.ai 後端;免費額度限制為每個 IP 每分鐘 60 次請求。
安裝前請注意
信任判定僅供參考:v1 公開篩檢只回傳 REVIEW 或 UNVERIFIED,不會回傳 ALLOW 或 DENY,且篩檢停在描述層級,工具名稱未經獨立核實。判定可能過期或從缺,用戶端在沒有判定時採失敗關閉處理。證據引文、理由與鏈上歷史屬付費內容。專案自稱非官方,與 Anthropic 無關聯。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 mcpindex,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.gautamgb%2Fmcp-server-mcpindex/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "mcpindex": {
      "type": "http",
      "url": "https://mcpindex.ai/api/mcp"
    }
  }
}

README

mcp-server-mcpindex

[mcpindex] [npm] [npm downloads] [servers indexed] [screened] [last commit] [Smithery] [Glama]

An MCP server for finding MCP servers, plus advisory trust verdicts agent frameworks can call before invoking a tool - from mcpindex.ai.

A drop-in MCP server that lets your agent discover, compare, install, and pre-flight other MCP servers from inside the agent loop. Backed by mcpindex.ai - the agent-native MCP server index of the official registry (live count at mcpindex.ai/stats), screened and drift-monitored daily.

Live site · npx mcp-server-mcpindex · Remote MCP · Install gate · Docs · Trust

Install

bash
npm install -g mcp-server-mcpindex

This is the directory / advisory client (recommend, search, trust). It does not install the in-path drift gate — that is curl -fsSL https://mcpindex.ai/install.sh | sh.

Requires Node 20+. Speaks both protocol eras on stdio: the 2026-07-28 revision (server/discover, per-request _meta envelope) and the initialize handshake every current client uses (2025-11-25 down to 2024-10-07), selected per connection.

Or connect remotely (no install)

Prefer not to install anything? mcpindex is also a hosted remote MCP server. Point any client that supports remote MCP (Claude connectors, Cursor, etc.) at:

https://mcpindex.ai/api/mcp

Streamable HTTP, no credentials. Same six tools as the npm package.

Claude Code

bash
claude mcp add --scope user mcpindex -- npx -y mcp-server-mcpindex@latest

Gemini CLI

bash
gemini mcp add -s user mcpindex npx -y mcp-server-mcpindex@latest

Use it from Claude Desktop

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

json
{  "mcpServers": {    "mcpindex": {      "command": "npx",      "args": ["-y", "mcp-server-mcpindex@latest"]    }  }}

@latest keeps you current: this is the advisory discovery server (not the in-path drift gate), so it carries no version pin — npx fetches the newest on your next host restart, no manual upgrade step.

Restart Claude Desktop. Then ask:

"Find me an MCP server that can read PDFs and write the contents to S3."

Claude calls recommend_mcp_for_task and returns the top 3 ranked servers with install commands.

Use it from Cursor

Add to .cursor/mcp.json:

json
{  "mcpServers": {    "mcpindex": {      "command": "npx",      "args": ["-y", "mcp-server-mcpindex@latest"]    }  }}

Use it from Cline

Add to cline_mcp_settings.json:

json
{  "mcpServers": {    "mcpindex": {      "command": "npx",      "args": ["-y", "mcp-server-mcpindex@latest"]    }  }}

Use it from Zed

Zed reads MCP servers from context_servers, not mcpServers. Add to ~/.config/zed/settings.json:

json
{  "context_servers": {    "mcpindex": {      "command": "npx",      "args": ["-y", "mcp-server-mcpindex@latest"]    }  }}

Tools exposed

ToolWhat it does
recommend_mcp_for_taskPass a natural-language task. Returns top 3 servers with reasoning, install commands, quality scores.
search_mcp_serversKeyword + semantic search across the full registry. Optional category filter.
get_install_commandGet the exact install JSON/CLI for a server + client (Claude Desktop, Claude Code, Cursor, Gemini CLI, Cline, Zed).
compare_serversSide-by-side comparison of 2-5 servers - quality scores, install paths, env vars.
check_tool_trustPre-invocation advisory verdict for a specific tool on a server. Fail-CLOSED: returns UNVERIFIED when no verdict on file.
assess_serverAggregated pre-flight verdict across all tools on a server. Same shape as check_tool_trust.

Agent-framework integration: advisory pre-invocation screen

check_tool_trust is the directory client integration surface (not the in-path mcpindex-gate). It lets agent frameworks (Composio, Mastra, LangChain, DSPy, raw LLM-tool-call loops) ask for an advisory screen verdict before dispatching a call. At v1 you will see REVIEW or UNVERIFIED — not a safety clearance.

Using Mastra? The sibling package @mcp-index/mastra ships this exact screen as a ready-made beforeToolCall hook - npm i @mcp-index/mastra, no wiring required.

Verdict contract (v1)

The tool returns the API's verdict as the API sent it (same fields and values the hosted endpoint at /api/mcp returns) plus four flat convenience fields this client adds at the end: server_id, tool_name, source_url, fetched_at.

jsonc
{  "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 is the API's own version and is never rewritten by this client. subject.tool_verified: false means the API did not confirm the tool name exists on the server: today's screens are description-level, so any tool name on a screened server gets that server's verdict.

The free-tier verdict ships directives + dimensions + freshness. Evidence quotes, LLM rationale, and chain history are paid-tier surfaces and intentionally omitted here.

Honest limits (pin these to your gate UI)

honest_limits is the API's list, relayed verbatim; your gate SHOULD surface it on every dispatch decision. A screened verdict carries the screen's own limits (for example semantic_only_no_conformance, description_level_screen, tool_name_not_independently_verified). When there is no verdict on file, or the client fails closed, the list is the v1 floor:

  1. conformance_monitored_not_enforced - publishers self-declare; mcpindex monitors drift but does not block at the network layer.
  2. calibrated_false_v1 - dimension severities are not yet calibrated against real-world incident data.
  3. advisory_deployment - the verdict is advisory; the agent (or human reviewing the agent) is the decision-maker.

The client never merges the floor into a list the API sent, since that could contradict it.

History anchoring: OTS Bitcoin-anchored history; Bitcoin-finalized at N=6 confirmations (~1 hr); pending in ~10 min. Sub-window precision asserted, not proven.

Integration pattern (LangChain-style, direct LLM-tool-call convention)

js
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}` });  }}

The load-bearing rule: never fail-open

If the verdict endpoint is unreachable, returns a non-2xx status, times out, returns malformed JSON, gets a server_id / tool_name that would walk the API path (.., /, empty), or has no verdict on file yet for that server, check_tool_trust returns directive: "UNVERIFIED" + status: "ERROR". It never silently coerces to ALLOW. Your gate code SHOULD treat UNVERIFIED as "human review required", never as "looks fine, ship it."

status is telemetry about screen completeness, distinct from the directive trust decision: EVALUATED (full screen), PARTIAL (only part of the surface, e.g. description-level — see granularity), STALE (verdict past its freshness window), ERROR (unreachable / no verdict on file). A PARTIAL screen is never reported as EVALUATED.

This is tested. See test/trust.test.mjs.

Using the library directly (without MCP)

The trust client is also exported as a plain ES module:

js
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.}

Backend

By default, calls go to https://mcpindex.ai. Override with MCPINDEX_API_BASE=... if you self-host.

The free tier is rate-limited to 60 req/min/IP. Paid keys are coming for higher throughput and the full evidence-bearing verdict (evidence quotes, LLM rationale, chain history).

Related packages

Three ways to bring mcpindex into an agent, for different surfaces:

PackageInstallWhat it does
mcp-server-mcpindex (this package)npm i -g mcp-server-mcpindexDirectory + advisory screen as an MCP server: find servers by task, and check_tool_trust before a call.
@mcp-index/mastranpm i @mcp-index/mastraThe same advisory screen wired into Mastra as a beforeToolCall hook (warn / enforce).
@mcp-index/sdknpm i @mcp-index/sdkIn-path drift gate: wrap() an MCP session and HOLD a call when a tool's contract drifts from your pin.

Advisory screen vs drift gate: this package and @mcp-index/mastra ask mcpindex "has this tool been vetted?" (a network verdict). @mcp-index/sdk asks a different question locally: "did this tool's contract change since I pinned it?" Complementary, and none depends on another.

License

MIT.

Project

Unofficial. Not affiliated with Anthropic.

來源:mcp-server-mcpindex/README.md,提交 4f15285

工具

6

recommend_mcp_for_task

Recommend MCP servers for a task

Recommend the best MCP servers for a natural-language task. Returns top 3 ranked picks with reasoning, install commands, and quality scores. Use this when the user asks for the right MCP server for a task they want to do.

輸入參數task必填

search_mcp_servers

Search MCP servers

Keyword + semantic search across every MCP server mcpindex indexes. Use when the user knows what tool category they want but not which server.

輸入參數limitquery必填category

get_install_command

Get install command

Get the exact install command for a given MCP server and client. Returns a JSON block ready to paste into the client config.

輸入參數client必填server_slug必填

compare_servers

Compare MCP servers

Side-by-side comparison of 2-5 MCP servers - quality scores, install paths, env vars.

輸入參數slugs必填

check_tool_trust

Check tool trust (advisory)

Pre-invocation advisory screen for a specific tool on an MCP server. Returns an advisory verdict object (directive ALLOW | DENY | REVIEW | UNVERIFIED, dimensions, freshness). At v1 the public screen produces REVIEW or UNVERIFIED only - ALLOW/DENY are reserved. Not the in-path gate (mcpindex-gate). Agents SHOULD treat UNVERIFIED as "human review required", never as ALLOW.

輸入參數server_id必填tool_name必填

assess_server

Assess server trust (advisory)

Aggregated pre-flight trust assessment across all tools on an MCP server. Same verdict shape as check_tool_trust. Use for "is THIS server worth integrating?" decisions. v1 advisory; conformance monitored not enforced; verdicts may be UNVERIFIED if not yet probed.

輸入參數server_id必填

版本歷史

1
  1. v0.4.0最新Sep 16, 2026

評分

已滿足適用檢查項的 90%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

    請在儲存庫或註冊中心條目中宣告授權條款。