MetaMCP
](https://www.npmjs.com/package/@mentu/metamcp) ](https://nodejs.org)   
MetaMCP通过一个连接您的所有MCP服务器。你的模型看到了6个工具,而不是数百个。
把它想象成MCP服务器的电源板。根据需要插入尽可能多的内容——剧作家、数据库、GitHub、自定义工具——你的LLM就会与一台服务器对话,该服务器处理幕后的一切。
┌─── playwright (52 tools)
│
LLM ──► MetaMCP ────────┼─── fetch (3 tools)
(6 tools) │
├─── sqlite (6 tools)
│
└─── ... N more servers为什么选择MetaMCP?
您添加的每个MCP服务器都会向LLM注册其工具模式。每个模式都吃上下文标记。在5台服务器上,每台服务器有20个工具,仅在模式上就花费了大约15000个令牌——每一个请求。
MetaMCP将所有这些整合为6个工具(约1300个代币)。无论您运行3台服务器还是30台服务器,该成本都保持不变。令牌开销更少,工具选择精度更高,实际工作空间更大。
除了节省令牌外,MetaMCP还处理了您不必考虑的事情:连接池、进程生命周期、错误恢复、模式缓存以及本地和远程服务器之间的传输差异。
快速开始
安装并运行:
npx @mentu/metamcp # run directly (no install)
npm install -g @mentu/metamcp # or install globally自动配置编辑器 (克劳德桌面、克劳德代码、光标、VS代码、风帆等):
npx @mentu/metamcp init从内置库中添加服务器 (122台精选服务器):
metamcp add playwright sentry memory postgres # one-click, writes .mcp.json
metamcp add --list # browse all available servers
metamcp add --category search # filter by category或者创建一个 .mcp.json 手动:
{
"mcpServers": {
"playwright": {
"command": "npx",
"args": ["-y", "@playwright/mcp@latest"]
},
"sqlite": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sqlite", "/path/to/db"]
}
}
}npx @mentu/metamcp --config .mcp.json就是这样。MetaMCP通过stdio与MCP通信——将任何MCP客户端指向它。
注: MetaMCP可选择使用better-sqlite3用于语义搜索。这需要一个C++编译器。如果编译失败,MetaMCP仍然可以使用仅关键字搜索。在macOS上:xcode-select --install在Linux上:apt install build-essential.
工具
MetaMCP为LLM 6提供了工具:4个用于服务器管理的核心工具,2个用于技能意识的咨询工具。
核心工具
mcp_discover --查找工具
在所有连接的服务器上搜索工具目录。不进行查询,返回服务器状态和工具计数。
{ "query": "screenshot" }mcp_provision --得到你需要的东西
描述一个功能,MetaMCP会解析正确的服务器。它首先搜索本地目录,然后在npm注册表中搜索可安装的服务器。
{ "intent": "I need to crawl a website and extract links" }mcp_call --使用工具
将工具调用转发到特定服务器。MetaMCP处理连接管理并在崩溃时重试。
{ "server": "playwright", "tool": "browser_navigate", "args": { "url": "https://example.com" } }mcp_execute --编写代码
在V8沙箱中运行JavaScript,可以访问所有配置的服务器。在一次调用中组合多步骤工作流、循环和条件语句。
{ "code": "const result = await servers.sqlite.call('query', { sql: 'SELECT count(*) FROM users' }); return result;" }技能意识工具
技能是方法论文件(SKILL.md)教特工 *怎么* 有效地使用MCP服务器。MetaMCP可以发现技能,并检查他们所需的MCP服务器是否可用。
mcp_skill_discover --寻找技能
使用MCP准备状态搜索已安装的技能。返回匹配的技能、所需的服务器以及这些服务器是否已连接。
{ "query": "browser automation" }mcp_skill_advise --飞行前检查
在使用特定技能之前,检查其依赖关系是否得到满足。
{ "skill": "playwright" }技能生活 ~/.claude/skills/ (个人)或 .claude/skills/ (项目)。MetaMCP扫描这两个位置,并通过 requires-mcp 前沿领域。看 技能 在文档中。
服务器库
MetaMCP附带了一个精心策划的122台MCP服务器库,涵盖了开发工具、数据库、浏览器自动化、搜索、安全、监控等领域。
metamcp add --list # browse all servers
metamcp add playwright sentry neon # add multiple at once
metamcp add --category databases # filter by category当您添加安装了配套技能的服务器时,MetaMCP告诉您:
Added 2 server(s): playwright, sentry
Companion skills detected:
playwright → skill: playwright
sentry → skill: sentry
These skills teach agents how to use these servers effectively.查看完整图库 metamcp.org/guides/server-gallery.
配置
MetaMCP读取 .mcp.json --与Claude Desktop和Claude Code使用的格式相同。
本地服务器:
{
"mcpServers": {
"my-server": {
"command": "/usr/local/bin/my-mcp-server",
"args": ["--port", "8080"],
"env": { "API_KEY": "..." }
}
}
}远程服务器(SSE):
{
"mcpServers": {
"remote-tools": {
"url": "https://mcp.example.com/sse",
"transportType": "sse",
"headers": { "Authorization": "Bearer your-token" }
}
}
}使用OAuth的远程服务器(HTTP):
{
"mcpServers": {
"cloud-server": {
"url": "https://mcp.example.com/api",
"oauth": true
}
}
}服务器生命周期:
{
"mcpServers": {
"database": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-sqlite", "/path/to/db"],
"lifecycle": { "mode": "keep-alive", "idleTimeoutMs": 600000 }
},
"one-shot": {
"command": "/usr/local/bin/converter",
"lifecycle": "ephemeral"
}
}
}三种运输方式: stdio (本地,默认), http (流式HTTP),以及 sse (服务器发送的事件)。OAuth在首次连接时触发浏览器流,并将令牌保存到 ~/.metamcp/oauth/.
生命周期控制空闲行为: keep-alive 服务器持续存在, ephemeral 服务器在使用后立即关闭,没有声明的服务器遵循默认池超时。
来自保险库的秘密决议
硬编码 API_KEY 字符串在 .mcp.json 是将凭据泄漏到git中的最简单方法。MetaMCP支持 ${KEY} 任何引用 env 或 headers value并在配置加载时解析它们:
{
"mcpServers": {
"github": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-github"],
"env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" }
},
"remote-tools": {
"url": "https://mcp.example.com/sse",
"transportType": "sse",
"headers": { "Authorization": "Bearer ${REMOTE_TOOLS_TOKEN}" }
}
}
}每个的解决顺序 ${KEY}:
mentu vault--如果 门图保险库 安装在~/.local/bin/mentu-vault,MetaMCP在macOS Keychain(或年龄加密文件回退)中查找密钥。在以下情况下首先尝试工作区范围的查找MENTU_WORKSPACE设置,然后全局。process.env--标准环境变量。- 字面 --如果两者都没有解决,MetaMCP会记录一个警告并离开
${KEY}引用到位,因此配置错误是可见的,而不是无声的。
Vault查找在进程生命周期内被缓存,因此在启动时只会进行一次解析,而不会产生每个连接的开销。内联引用,如 "Bearer ${TOKEN}" 独立 "${TOKEN}" 两者都得到了支持。
如果你不使用 mentu vault,MetaMCP回落到 process.env 自动-不需要额外的配置。就 export GITHUB_TOKEN=... 同样的 .mcp.json 作品。
出门时秘密擦洗
MetaMCP还在每个工具响应返回LLM之前运行一个输出洗涤器。JWT、OpenAI/GitHub/Slack/AWS令牌和JSON形状的凭证密钥(password, secret, api_key, access_token, private_key, authorization等)被替换为 [REDACTED:LABEL]这是深度的尽力防御——即使配置错误的下游服务器在错误消息中回复了与已知模式匹配的秘密,这些秘密也会被捕获。
MetaMCP为您处理什么
- 连接池 --带LIFO闲置驱逐的有界游泳池。服务器在首次使用时启动缓慢。
- 断路器 --每台服务器故障跟踪。错误被分类:身份验证失败(401/403)永远不会使断路器跳闸,只计算瞬态错误。
- 架构缓存 --工具模式会保存到磁盘上,以便快速冷启动。过时的缓存会透明地刷新。
- 配置导入 --
--import从Cursor、Claude Desktop、Claude Code、VS Code、Windsurf、Codex和OpenCode中发现服务器。 - 热重载 --MetaMCP手表
.mcp.json为了改变。添加服务器metamcp add它们在2秒内可用,无需重新启动。 - V8沙盒 --
mcp_execute在锁定的上下文中运行。不eval,没有require,没有网络接入。 - 多运输 --stdio、HTTP和SSE与OAuth。模型不知道区别。
- 技能意识 --发现MCP服务器的配套技能,并在调用前检查准备情况。
命令行界面
| 命令 | 描述 |
|---|---|
metamcp | 启动MetaMCP服务器(默认) |
metamcp init | 在所有支持的MCP客户端中自动配置MetaMCP |
metamcp add | 将库中的服务器添加到 .mcp.json |
metamcp add --list | 浏览所有可用服务器 |
| 标志 | 默认值 | 描述 |
|---|---|---|
| `--config | ||
| ` | .mcp.json | 配置文件的路径 |
--max-connections | 20 | 连接池最大大小 |
--idle-timeout | 300000 | 空闲连接超时 |
--failure-threshold | 5 | 跳闸前断路器故障 |
--cooldown | 30000 | 断路器冷却 |
--import | off | 从已安装的编辑器导入配置 |
文档
完整文档请访问 metamcp.org.
贡献
看 贡献.md 用于开发设置和指南。
