起因
今天上午刷到了 linux.do/t/topic/140... ,奈何该工具需要docker,而我又没有docker,遂造轮之。
叠甲:我是不会告诉你们我今天晚上搜gateway在npm上发现了很多同类工具。所以请不要说我重复造轮子,我只是看了帖子上头了手搓了几个小时搓出来的
技术细节
该mcp服务提供了3个工具以隐藏mcp服务。
-
获取全部的MCP服务以及其下属的工具摘要。
放心,它只会返回MCP服务的名字以及下属的全部工具名称以及经过处理的描述。 不会占用太多上下文。
-
批量获取MCP服务及其下属工具 该工具会返回要查询的全部MCP服务以及其下属工具的名称,描述以及调用参数约定
-
通过MCP服务名称和工具名称调用具体工具
安装
首先,确保您使用 NodeJS v16 及以上版本。
bash
npm install -g @kagg886/mcp-gateway@latest
其次,打开您的AI工具,编辑MCP文件,进行配置:
json
{
"mcpServers": {
"mcp-gateway": {
"isActive": true,
"name": "mcp-gateway",
"type": "stdio",
"command": "mcp-gateway",
"args": [
"-f",
"/path/to/your/json"
],
"installSource": "unknown"
}
}
}
/path/to/your/json的配置如下:
json
{
"mcpServers": {
"chrome-devtools": {
"command": "npx",
"args": [
"-y",
"chrome-devtools-mcp@latest"
]
},
"mcp-server-time": {
"command": "uvx",
"args": [
"mcp-server-time",
"--local-timezone=Asia/Shanghai"
],
"alwaysAllow": [
"get_current_time",
"convert_time"
]
},
"context7": {
"command": "npx",
"args": [
"-y",
"@upstash/context7-mcp@latest"
],
"alwaysAllow": [
"resolve-library-id",
"query-docs"
],
"disabled": true
}
}
}
最后,在AI工具中进行测试:

优点
- 不需要安装docker(
除了我之外还有谁没安装docker呢) - 配置超级简单,只需要传递配置路径或配置字符串(使用
-s参数) - 无
web-ui,私认为这种工具不需要可视化配置,完全可以通过参数来隔离实例。
缺陷
虽然我在几个小时内匆忙地写完了这个工具,但是综合看来,还是有很多功能没有做,例如:
-
现版本只能代理基于stdio的MCP服务
-
将部分MCP调用错误标记为error,以供Agent识别
-
尽管我在MCP服务的description中给Agent添加了足够的提示。 但是在能力有限的模型中,可能不会调用代理工具查询可用的Agent。 此时需要您手动在聊天框或prompt中显式告知AI可用工具
-
尽管配置了并发启动,但启动速度很明显受木桶效应影响。
开发计划
大概有人用我才会更新,否则我会基于我自己的需求迭代这个工具(x
未来可能会增加以下功能:
- 异步启动(而不是在程序启动阶段就初始化所有服务)
- 数据缓存(缓存调用规范以避免频繁启动)
- 自动清理(长时间不调用的mcp会自动关闭)功能。
- 代理基于SSE的MCP服务
我将永远不会制作以下功能:
- 可视化web页面
注意事项
-
最好不要代理影响LLM行为的MCP服务,如
sequential-thinking -
最佳实践是代理专业性较强,或者不常使用的MCP服务,如
chrome-devtools,github。
开源地址
mcp-gateway 使用 MIT 协议发布。源码地址为:github.com/magic-cucum...