mcp-anything
mcp-anything
一个能够发现并调用(几乎)世界上任何 MCP 服务器的 MCP 服务器。
mcp-anything 是一个元 MCP 服务器:与其在你的宿主(Claude Desktop、Claude Code、Cursor 等)中配置数十个 MCP 服务器,你只需配置一个。它在本地索引官方 MCP 注册表,并暴露五个小型元工具,让模型能够搜索服务器、检查它们并即时调用其工具——而无需将数千个工具模式加载到上下文窗口中。
Host / LLM
│ (5 meta-tools, constant context cost)
▼
mcp-anything ──── local BM25 index ◄──┬── official MCP registry (moderated, richest metadata)
│ (cross-source dedupe, ├── PulseMCP (~22k servers, stars & downloads)
│ popularity-boosted ├── npm (~67k packages tagged mcp)
│ ranking) └── Glama (~75k indexed servers)
│
│ security policy: SSRF guard · stdio allowlist · secrets injection · timeouts
▼
downstream MCP servers (streamable-http / sse / stdio via npx·uvx)为什么
发现:世界上存在数千个 MCP 服务器;你的宿主只知道你手动配置的那些。
上下文:加载大量服务器会消耗你的上下文窗口。元工具保持成本恒定——模型分两个阶段搜索能力(搜索 → 检查 → 调用),这与 Anthropic 的 Tool Search 使用的模式相同。
单一配置:在你的 MCP 客户端配置中只需一个条目,而不是每个服务器一个。
快速开始
# Run directly (Node >= 20):
npx mcp-anything sync # first-time index download (~few seconds)
npx mcp-anything serve # start the meta-MCP server on stdioClaude Code
claude mcp add anything -- npx -y mcp-anything serveClaude Desktop / 其他宿主
{
"mcpServers": {
"anything": {
"command": "npx",
"args": ["-y", "mcp-anything", "serve"]
}
}
}然后只需向你的模型提问,例如*"找一个可以查询 Postgres 并列出其工具的 MCP 服务器"*——它会自行使用元工具。
CLI
mcp-anything sync # refresh the registry index
mcp-anything search "weather" # search the index from your terminal
mcp-anything serve # stdio MCP server (default command)元工具
工具 | 功能 |
| 对索引注册表进行关键词搜索(BM25 + 模糊匹配)。返回带有可连接性判定的候选结果。 |
| 完整的注册表元数据:传输方式、包、所需的环境变量/密钥、策略判定。 |
| 实时连接(按策略)并列出服务器的实际工具及其 JSON 模式。 |
| 在下游服务器上执行一个工具。会话被池化并复用。 |
| 强制刷新索引(否则在 TTL 过期时自动刷新)。 |
安全模型
默认情况下,将 LLM 连接到公共注册表中的任意服务器是危险的。mcp-anything 采用保守的默认设置,并使每一项放宽都显式化:
远程服务器(streamable-http / sse):允许,但阻止私有/回环/链路本地地址(包括云元数据端点,如
169.254.169.254)和纯http:——这是针对指向你网络的注册表条目的 SSRF 防护。可通过remote.allowPrivateNetwork选择退出(仅用于本地开发)。Stdio 服务器(生成
npx/uvx进程):默认禁用。 从公共注册表运行包等同于在你的机器上执行任意代码。仅可通过显式的逐包允许列表启用。密钥:API 密钥永远不会被索引或暴露给模型。你在配置中按服务器映射它们;它们在连接时被注入(远程为请求头,stdio 为环境变量)。
不受信任的输出:来自下游服务器的结果和工具描述被标记为第三方数据,以便模型将其视为数据而非指令。这降低了提示注入风险;但并未消除——参见 SECURITY.md。
限制:连接/调用超时、响应大小截断、有界的会话池。
配置
~/.config/mcp-anything/config.json(或 --config <路径>,或 MCP_ANYTHING_CONFIG):
{
"registryUrl": "https://registry.modelcontextprotocol.io",
"sources": ["official"],
"qualityFilter": true,
"cacheTtlHours": 24,
"maxServers": 10000,
"policy": {
"remote": {
"enabled": true,
"allowPrivateNetwork": false,
"headers": {
"io.github.example/github": { "Authorization": "Bearer ghp_..." }
}
},
"stdio": {
"enabled": false,
"allowPackages": ["@modelcontextprotocol/server-filesystem"],
"env": {
"io.github.example/postgres": { "DATABASE_URL": "postgres://..." }
}
},
"limits": {
"callTimeoutMs": 60000,
"connectTimeoutMs": 20000,
"maxSessions": 8,
"maxResultChars": 100000
}
}
}每个字段都是可选的;上面的默认值(减去示例请求头/环境变量)就是你在没有任何配置时得到的结果。registryUrl 接受任何实现官方 REST API 的注册表——包括私有/自托管的注册表。
索引源——扩大覆盖面
sources 控制生态系统中被索引的范围:
源 | 规模 | 增加的内容 |
| 数千 | 经过审核的条目,元数据最丰富(传输方式、环境变量、版本) |
| ~22k | 广泛的目录 + GitHub 星标和下载量(用于排名) |
| ~67k 个带标签的包 | 最大的原始 stdio 服务器池,包含月度下载量 |
| ~75k | 最广泛的索引(尽力而为的适配器) |
{ "sources": ["official", "pulsemcp", "npm"] }出现在多个目录中的条目会按规范化后的仓库 URL 和包标识符进行去重;最受信任的来源决定身份,元数据从其他来源回填,星标和下载量会累积。排名随后将 BM25 相关性得分与对数缩放的流行度加成(以及官方注册表条目的额外加分)相结合,因此 search_mcp_servers 会呈现某个能力得到维护的实现,而不是第一百个被遗弃的克隆。qualityFilter(默认开启)会丢弃无法连接且没有可用描述的条目——在广泛的来源下,更多只有在垃圾条目不进入前 5 名时才更好。某个来源失败时会优雅降级:同步会保留其他来源返回的内容并报告失败。
设计说明
词法搜索,而非嵌入。 完全本地化,零 API 成本,无需索引构建步骤——而且对于工具发现,带模糊匹配的关键词搜索在实践中表现相当(Anthropic 的 Tool Search 也采用了同样的 BM25/正则方案)。
会话,而非无状态调用。 MCP 是面向会话的(initialize 握手、能力协商)。下游连接被池化并在调用间复用,采用 LRU 淘汰。
优雅降级。 如果注册表不可达,上次同步的缓存仍可继续工作。
先例与定位
这个领域很活跃:MetaMCP 和其他网关聚合你配置的服务器;Composio 的 Rube 路由到其自有精选目录;宿主正在发展原生工具搜索。mcp-anything 的定位是开放的组合:以公共注册表为目录、本地优先的单一二进制文件、以及明确的安全策略——无需云账户、无精选锁定、可针对私有注册表自托管。
路线图
排名中的实时健康检查和结果质量信号
通过索引热门服务器的
tools/list实现按工具(而不仅仅是按服务器)搜索为需要 OAuth 的远程服务器提供 OAuth 流程透传
作为允许列表替代方案的 stdio 服务器容器/Wasm 沙箱
多注册表联合与去重
可选的 streamable-http 服务模式(用于共享/团队部署)
开发
npm install
npm test # unit + end-to-end (mock registry + real downstream MCP server)
npm run typecheck
npm run build
node scripts/smoke.mjs # spawns the built CLI as a real stdio MCP server参见 CONTRIBUTING.md。以 MIT 许可发布。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Find and call the right MCP server for any task - pay per use, no install.
Search and browse every MCP server in the Model Context Protocol registry.
MCP Hub: AI service discovery, per-user OAuth, and multi-service workflow orchestration
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dror-Bengal/mcp-anything'
If you have feedback or need assistance with the MCP directory API, please join our Discord server