mcp-gateway —— 隐藏mcp上下文以避免不必要的tokens开销

起因

今天上午刷到了 linux.do/t/topic/140... ,奈何该工具需要docker,而我又没有docker,遂造轮之。

叠甲:我是不会告诉你们我今天晚上搜gateway在npm上发现了很多同类工具。所以请不要说我重复造轮子,我只是看了帖子上头了手搓了几个小时搓出来的

技术细节

该mcp服务提供了3个工具以隐藏mcp服务。

  1. 获取全部的MCP服务以及其下属的工具摘要。

    放心,它只会返回MCP服务的名字以及下属的全部工具名称以及经过处理的描述。 不会占用太多上下文。

  2. 批量获取MCP服务及其下属工具 该工具会返回要查询的全部MCP服务以及其下属工具的名称,描述以及调用参数约定

  3. 通过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

未来可能会增加以下功能:

  1. 异步启动(而不是在程序启动阶段就初始化所有服务)
  2. 数据缓存(缓存调用规范以避免频繁启动)
  3. 自动清理(长时间不调用的mcp会自动关闭)功能。
  4. 代理基于SSE的MCP服务

我将永远不会制作以下功能:

  1. 可视化web页面

注意事项

  • 最好不要代理影响LLM行为的MCP服务,如sequential-thinking

  • 最佳实践是代理专业性较强,或者不常使用的MCP服务,如chrome-devtoolsgithub

开源地址

mcp-gateway 使用 MIT 协议发布。源码地址为:github.com/magic-cucum...

相关推荐
冬奇Lab2 小时前
RAG 系列(五):Embedding 模型——语义理解的核心
人工智能·llm·aigc
tiger从容淡定是人生15 小时前
AI替代软件战略(一):从 CCleaner 到 MCP 架构重构 —— TigerCleaner 的工程实践
人工智能·重构·架构·c#·mcp
SkySeraph16 小时前
SkillNexus:开源 Skills 全生命周期创造平台
llm·agent·skill·skillnexus
wj30558537816 小时前
Ollama Cloud 与直接使用 API 的对比
llm·llama
@SmartSi17 小时前
Spring AI 实战:如何使用 MCP Server 搭建 MCP 天气查询服务
spring ai·mcp
qcx2317 小时前
拆解 Warp AI Agent(五):跨生态联邦——10 种 Skill + MCP + 多 Harness 互操作设计
人工智能·rust·ai agent·skill·warp·mcp·harness
无糖可乐没有灵魂21 小时前
AI Agent结构图例和工作流程描述
ai·llm·prompt·agent·mcp·skills
冬奇Lab1 天前
RAG 系列(四):文档处理——从原始文件到高质量 Chunk
人工智能·llm·源码
Clark111 天前
十年 C++ 后端 GAP 六个月,写了一个近 3 万行的LLM-TFFInfer推理框架项目解析(三)-模型加载
llm
Cosolar1 天前
封神级 TTS!VoxCPM2 凭连续表征,玩转多语言合成 + 创意音色 + 无损声纹克隆
人工智能·llm·github