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

相关推荐
山顶夕景7 小时前
【LLM】大模型数据清洗&合成&增强方法
大模型·llm·训练数据
tiger1199 小时前
FPGA 在大模型推理中的应用
人工智能·llm·fpga·大模型推理
AndrewHZ9 小时前
【AI黑话日日新】什么是大模型的test-time scaling?
人工智能·深度学习·大模型·llm·推理加速·测试时缩放
GPUStack11 小时前
vLLM、SGLang 融资背后,AI 推理正在走向系统化与治理
大模型·llm·vllm·模型推理·sglang·高性能推理
Tadas-Gao13 小时前
大模型幻觉治理新范式:SCA与[PAUSE]注入技术的深度解析与创新设计
人工智能·深度学习·机器学习·架构·大模型·llm
猿小羽13 小时前
基于 Spring AI 与 Streamable HTTP 构建 MCP Server 实践
java·llm·spring ai·mcp·streamable http
猿小羽14 小时前
MCP Server 运行模式入门(Streamable HTTP / stdio)
http·ai·ai实战·mcp·mcp server
AndrewHZ14 小时前
【AI黑话日日新】什么是隐式CoT?
人工智能·深度学习·算法·llm·cot·复杂推理
花酒锄作田1 天前
MCP官方Go SDK尝鲜
golang·mcp
一个处女座的程序猿1 天前
CV之VLM之LLM-OCR:《DeepSeek-OCR 2: Visual Causal Flow》翻译与解读
llm·ocr·cv·vlm