Token导航 LogoToken导航TokenDH.com
Utcp MCP Gateway logo
运维云端未说明官方级别未说明来源级核验

Utcp MCP Gateway

MCP Server

utcp-mcp-gateway是一个MCP工具优化解决方案,通过渐进式工具发现、代码模式执行和LLM智能过滤,显著减少Token浪费并提升效率。

工具数

0

提示词数

0

GitHub Stars

11

资源数

0
工具管理TypeScriptClaudeClaude DesktopClaudeCursorWindsurf

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Xuleileon

提供方

Xuleileon

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

utcp-mcp网关

🚀 The Smarter Way to Use MCP — Save 90%+ Tokens with Code Mode

English | 中文

Inspired by Claude Skills' Progressive Disclosure

claude skills alternative · mcp token optimization · progressive tool discovery · mcp response filtering

______________________________________________________________________

The Story / 故事

我注意到 克劳德技能 工作得非常好——克劳德动态地发现并加载它需要的技能,避免了上下文过载。 但大多数代理框架呢?他们一次将500多个工具定义转储到上下文中。MCP的反应如何?通常有10000多个字符的原始数据浪费了您的令牌。 所以我建立在UTCP之上: 渐进式发现+代码模式+LLM过滤 --使用MCP的更智能方式。 最好的部分?只需添加一个配置块。适用于Claude Desktop、Windsurf、Cursor、Dify和任何兼容MCP的客户端。不需要额外的服务器。

寻找。..?

  • 克劳德技能替代品 对于您的MCP设置
  • 更好的MCP工具管理 没有上下文重载
  • 渐进式工具发现 --按需加载工具
  • OpenAPI/Swagger到工具 --将REST API注册为工具
  • MCP令牌优化 --减少90%+代币浪费
  • MCP响应滤波 --智能摘要

你来对地方了。

这是什么?

LLM擅长编写代码,但在工具调用方面很糟糕。

传统的MCP将工具直接暴露给LLM,但LLM在以下方面遇到了困难:

  • 工具太多(500+定义=混淆)
  • 巨大的响应(10000+个字符=浪费的令牌)
  • 多次往返(15次以上API调用=缓慢且昂贵)

utcp-mcp-gateway 修复了所有这些问题:

问题解决方案
500+工具定义渐进式发现 --只装载需要的东西
10000+个字符响应LLM过滤 --智能摘要(缩小97%!)
API往返15次以上代码模式 --一个代码块,一次执行
Traditional:  User → LLM → Tool1 → LLM → Tool2 → LLM → Tool3 → Result
              (15+ calls, $26/day, slow)

Code Mode:    User → LLM writes code → Execute all at once → Result  
              (1 call, $0.87/day, fast)

结果:每年节省9536美元 (基准源)

特性

特性描述
🔌 通用MCP连接任何HTTP或stdio MCP服务器
📜 OpenAPI支持直接从OpenAPI/Swagger规范注册REST API
🧠 LLM过滤智能摘要(响应减少97%!)
🔍 渐进式发现search_tools -查找工具而不加载所有500个定义
代码模式在一次调用中执行TypeScript工具链
🔒 安全沙盒代码在隔离环境中运行
📦 零配置仅环境变量,无配置文件

快速开始

无需配置文件! 只需添加到Claude Desktop配置中:

模式1:HTTP MCP(远程)

{
  "mcpServers": {
    "gateway": {
      "command": "npx",
      "args": ["-y", "utcp-mcp-gateway"],
      "env": {
        "MCP_URL": "https://mcp.context7.com/mcp",
        "MCP_NAME": "context7",
        "LLM_API_KEY": "sk-xxx",
        "LLM_BASE_URL": "https://api.openai.com/v1",
        "LLM_MODEL": "gpt-4o-mini"
      }
    }
  }
}

模式2:stdio MCP(本地)

{
  "mcpServers": {
    "gateway": {
      "command": "npx",
      "args": ["-y", "utcp-mcp-gateway"],
      "env": {
        "MCP_COMMAND": "npx",
        "MCP_ARGS": "-y,@anthropic/mcp-server-filesystem",
        "MCP_NAME": "filesystem",
        "MCP_TRANSPORT": "stdio",
        "LLM_API_KEY": "sk-xxx"
      }
    }
  }
}
⚠️ Windows用户: 使用 cmd /c npx 而不是 npx: ``json "command": "cmd", "args": ["/c", "npx", "-y", "utcp-mcp-gateway"] ``

环境变量

变量必填描述
MCP_URLHTTP模式MCP服务器URL
MCP_COMMANDstdio模式运行MCP的命令
MCP_ARGSstdio模式参数(逗号分隔)
MCP_NAMEMCP命名空间
MCP_TRANSPORT没有http (默认)或 stdio
LLM_API_KEY用于筛选任何与OpenAI兼容的API密钥
LLM_BASE_URL用于筛选API端点(默认值:OpenAI)
LLM_MODEL用于过滤型号名称(默认:gpt-4o-mini)

就是这样!重新启动Claude Desktop并尝试: *“搜索React useState示例”*

运作原理

┌──────────────┐     ┌─────────────────────────────────┐     ┌─────────────┐
│   Your AI    │────▶│      utcp-mcp-gateway           │────▶│ Any MCP     │
│ (Claude etc) │     │  ┌─────────┐  ┌─────────────┐   │     │ (Context7)  │
└──────────────┘     │  │  UTCP   │  │ LLM Filter  │   │     └─────────────┘
                     │  │ search  │  │ 10K→300char │   │
                     │  └─────────┘  └─────────────┘   │
                     └─────────────────────────────────┘

Gateway为您的AI提供了4个工具:

工具参数功能
search_toolsquery, limit按关键字查找工具。返回带有TypeScript接口的工具
list_tools-列出已连接MCP的所有已注册工具
tool_infotool_name获取特定工具的详细TypeScript接口
call_tool_chaincode, timeout, max_output_size, filter_response, purpose执行一次调用多个工具的TypeScript代码

上下文感知摘要

使用时 call_tool_chain 随着 filter_response: true,您可以提供 purpose 用于指导LLM摘要的参数:

call_tool_chain({
  code: "const docs = await context7.context7_get_library_docs({...}); return docs;",
  filter_response: true,
  purpose: "Find React useState usage examples"
})

LLM将只提取与您的目的相关的信息,而不是通用的摘要。

示例流程

User: "How do I use React useState?"

1. AI calls search_tools("react")        → Returns tools with TypeScript interfaces
2. AI calls call_tool_chain with code:
   const id = await context7.context7_resolve_library_id({ libraryName: "react" });
   const docs = await context7.context7_get_library_docs({ libraryId: id, topic: "useState" });
   return docs;
3. Gateway executes code and returns result
4. AI receives structured response

代币储蓄基准

MCP服务原始筛选节省
上下文7(文档)10625个字符326个字符97%
DeepWiki(维基)3318个字符400个字符88%

配置

单MCP

MCP_URL=https://mcp.context7.com/mcp
MCP_NAME=context7

多个MCP(推荐:编号样式)

使用编号的环境变量进行清晰配置:

{
  "mcpServers": {
    "gateway": {
      "command": "npx",
      "args": ["-y", "utcp-mcp-gateway"],
      "env": {
        "MCP_1_NAME": "context7",
        "MCP_1_URL": "https://mcp.context7.com/mcp",
        
        "MCP_2_NAME": "filesystem",
        "MCP_2_COMMAND": "npx",
        "MCP_2_ARGS": "-y,@anthropic/mcp-server-filesystem,/path/to/dir",
        
        "LLM_API_KEY": "sk-xxx",
        "MAX_RESPONSE_CHARS": "10000"
      }
    }
  }
}

编号变量:

  • MCP_1_NAME, MCP_1_URL -第一个MCP(HTTP模式)
  • MCP_2_NAME, MCP_2_COMMAND, MCP_2_ARGS -第二MCP(标准输入模式)
  • 多达 MCP_20_* 支持

多个MCP(替代方案:半导体风格)

{
  "env": {
    "MCP_URL": "https://mcp.context7.com/mcp;https://mcp.deepwiki.com/mcp",
    "MCP_NAME": "context7;deepwiki"
  }
}

LLM设置

变量默认值描述
LLM_API_KEY-OpenAI/OpenRouter API密钥
LLM_BASE_URLOpenAI自定义端点(兼容OpenAI)
LLM_MODELgpt-4o-mini摘要模型
ENABLE_LLM_FILTERtrue启用/禁用筛选
MAX_RESPONSE_CHARS10000LLM汇总前的最大响应长度
FORCE_LLM_FILTERfalse强制对所有响应进行LLM摘要

智能路由器设置(v0.1.20+)

变量默认值描述
ENABLE_LLM_SEARCHtrue使用LLM进行智能刀具搜索
ROUTER_MODEL(使用LLM_MODEL)刀具布线模型(建议使用更快的模型)

它是如何工作的:

  • list_tools 返回简短摘要而不是完整模式(保存标记)
  • search_tools 使用LLM了解意图并推荐相关工具(使用完整的描述以确保准确性)
  • 如果LLM不可用,则返回关键字搜索
  • 如果LLM返回的名称略有不同,则对工具名称进行模糊匹配
  • 在LLM摘要之前预截断大型响应(>20万个字符)

OpenAPI设置(v0.1.24+)

直接从OpenAPI/Swagger规范注册REST API:

# Example: APIs.guru (public API directory)
OPENAPI_1_NAME=apisguru
OPENAPI_1_URL=https://api.apis.guru/v2/openapi.yaml

# Example with authentication
OPENAPI_2_NAME=my_api
OPENAPI_2_URL=https://api.example.com/openapi.json
OPENAPI_2_AUTH_TYPE=api-key
OPENAPI_2_AUTH_TOKEN=sk-xxx
OPENAPI_2_AUTH_VAR=X-Api-Key
OPENAPI_2_AUTH_LOCATION=header
变量必填描述
OPENAPI_N_NAME工具源名称
OPENAPI_N_URLOpenAPI规范URL
OPENAPI_N_AUTH_TYPEapi-key, bearer, basic,或 none
OPENAPI_N_AUTH_TOKEN身份验证令牌/密钥
OPENAPI_N_AUTH_VAR标题名称(默认值: Authorization)
OPENAPI_N_AUTH_LOCATIONheader, query,或 cookie

它是如何工作的:

  • 下载并解析OpenAPI 2.0/3.0规范
  • 将每个操作转换为UTCP工具
  • 工具名称=OpenAPI规范中的操作ID
  • 工具描述=OpenAPI规范的摘要或描述
  • 支持API密钥、承载、基本和OAuth2身份验证

要求:

  • 每个API操作都必须具有 operationId (跳过没有它的操作)
  • 文件上传参数(type: file)UTCP SDK不支持

______________________________________________________________________

故事

我发现 克劳德技能 效果惊人 — Claude 动态发现并只加载需要的技能,避免上下文过载。 但大多数 Agent 框架?一次性把 500+ 工具定义塞进上下文。而且 MCP 响应?经常是 10,000+ 字符的原始数据,白白浪费 Token。 于是我在 UTCP 基础上做了这个:渐进式发现 + Code Mode + LLM 过滤 — 更聪明的 MCP 使用方式。 最棒的是?只需加一段配置。兼容 Claude Desktop、Windsurf、Cursor、Dify 等所有 MCP 客户端。无需额外服务器。

你在找...?

  • Claude Skills 替代方案 — 用于你的 MCP 配置
  • 更好的 MCP 工具管理 — 无上下文过载
  • 渐进式工具发现 — 按需加载工具
  • OpenAPI 转工具 — 直接从 OpenAPI/Swagger 注册 REST API
  • MCP Token 优化 — 减少 90%+ Token 浪费
  • MCP 响应过滤 — 智能摘要

你来对地方了。

这是什么?

LLM 擅长写代码,但不擅长调用工具。

传统 MCP 直接把工具暴露给 LLM — 但 LLM 面临:

  • 工具太多(500+ 定义 = 困惑)
  • 响应太大(10,000+ 字符 = 浪费 Token)
  • 往返太多(15+ 次 API 调用 = 慢且贵)

utcp-mcp-gateway 一次解决所有问题:

问题解决方案
500+ 工具定义渐进式发现 — 只加载需要的
10,000+ 字符响应LLM 过滤 — 智能摘要(缩小 97%!)
15+ 次 API 往返代码模式 — 一段代码,一次执行
传统方式:   用户 → LLM → 工具1 → LLM → 工具2 → LLM → 工具3 → 结果
            (15+ 次调用, $26/天, 慢)

Code Mode:  用户 → LLM 写代码 → 一次执行全部 → 结果
            (1 次调用, $0.87/天, 快)

结果:每年节省 $9,536 (基准测试来源)

核心功能

功能说明
🔌 通用 MCP连接任意 HTTP 或 stdio MCP
📜 OpenAPI 支持直接从 OpenAPI/Swagger 规范注册 REST API
🧠 LLM 过滤智能摘要(响应缩小 97%!)
🔍 渐进式发现search_tools - 按需搜索,无需加载全部 500 个工具
代码模式一次调用执行 TypeScript 代码链
🔒 安全沙箱代码在隔离环境运行
📦 零配置只需环境变量,无需配置文件

快速开始

零配置文件! 直接添加到 Claude Desktop 配置:

模式 1:HTTP MCP(远程)

{
  "mcpServers": {
    "gateway": {
      "command": "npx",
      "args": ["-y", "utcp-mcp-gateway"],
      "env": {
        "MCP_URL": "https://mcp.context7.com/mcp",
        "MCP_NAME": "context7",
        "LLM_API_KEY": "sk-xxx",
        "LLM_BASE_URL": "https://api.openai.com/v1",
        "LLM_MODEL": "gpt-4o-mini"
      }
    }
  }
}

模式 2:stdio MCP(本地)

{
  "mcpServers": {
    "gateway": {
      "command": "npx",
      "args": ["-y", "utcp-mcp-gateway"],
      "env": {
        "MCP_COMMAND": "npx",
        "MCP_ARGS": "-y,@anthropic/mcp-server-filesystem",
        "MCP_NAME": "filesystem",
        "MCP_TRANSPORT": "stdio",
        "LLM_API_KEY": "sk-xxx"
      }
    }
  }
}
⚠️ Windows 用户: 使用 cmd /c npx 代替 npx: ``json "command": "cmd", "args": ["/c", "npx", "-y", "utcp-mcp-gateway"] ``

环境变量

变量必填说明
MCP_URLHTTP 模式MCP 服务器 URL
MCP_COMMANDstdio 模式运行 MCP 的命令
MCP_ARGSstdio 模式参数(逗号分隔)
MCP_NAMEMCP 命名空间
MCP_TRANSPORThttp(默认)或 stdio
LLM_API_KEY过滤用任意 OpenAI 兼容的 API Key
LLM_BASE_URL过滤用API 端点(默认 OpenAI)
LLM_MODEL过滤用模型名称(默认 gpt-4o-mini)

配置好后重启 Claude Desktop,试试:*"搜索 React useState 用法"*

工作原理

┌──────────────┐     ┌─────────────────────────────────┐     ┌─────────────┐
│   你的 AI    │────▶│      utcp-mcp-gateway           │────▶│  任意 MCP   │
│ (Claude 等)  │     │  ┌─────────┐  ┌─────────────┐   │     │ (Context7)  │
└──────────────┘     │  │  UTCP   │  │ LLM 过滤器  │   │     └─────────────┘
                     │  │  搜索   │  │ 10K→300字符 │   │
                     │  └─────────┘  └─────────────┘   │
                     └─────────────────────────────────┘

Gateway 向你的 AI 暴露 4 个工具:

工具参数作用
search_toolsquery, limit按关键词搜索工具,返回带 TypeScript 接口的工具列表
list_tools-列出所有已注册的工具
tool_infotool_name获取特定工具的详细 TypeScript 接口
call_tool_chaincode, timeout, max_output_size, filter_response, purpose执行 TypeScript 代码,一次调用多个工具

上下文感知摘要

使用 call_tool_chain 时,设置 filter_response: true 并提供 purpose 参数,LLM 会根据你的目的智能提取相关信息:

call_tool_chain({
  code: "const docs = await context7.context7_get_library_docs({...}); return docs;",
  filter_response: true,
  purpose: "查找 React useState 的用法示例"
})

LLM 会只提取与你目的相关的信息,而不是泛泛的摘要。

调用流程示例

用户: "React useState 怎么用?"

1. AI 调用 search_tools("react")        → 返回带 TypeScript 接口的工具
2. AI 调用 call_tool_chain 执行代码:
   const id = await context7.context7_resolve_library_id({ libraryName: "react" });
   const docs = await context7.context7_get_library_docs({ libraryId: id, topic: "useState" });
   return docs;
3. Gateway 执行代码并返回结果
4. AI 收到结构化响应

Token 节省实测

MCP 服务原始响应过滤后节省
Context710,625 字符326 字符97%
DeepWiki3,318 字符400 字符88%

配置说明

单个 MCP

MCP_URL=https://mcp.context7.com/mcp
MCP_NAME=context7

多个 MCP(推荐:编号方式)

使用编号环境变量进行清晰配置:

{
  "mcpServers": {
    "gateway": {
      "command": "npx",
      "args": ["-y", "utcp-mcp-gateway"],
      "env": {
        "MCP_1_NAME": "context7",
        "MCP_1_URL": "https://mcp.context7.com/mcp",
        
        "MCP_2_NAME": "filesystem",
        "MCP_2_COMMAND": "npx",
        "MCP_2_ARGS": "-y,@anthropic/mcp-server-filesystem,/path/to/dir",
        
        "LLM_API_KEY": "sk-xxx",
        "MAX_RESPONSE_CHARS": "10000"
      }
    }
  }
}

编号变量:

  • MCP_1_NAME, MCP_1_URL - 第一个 MCP(HTTP 模式)
  • MCP_2_NAME, MCP_2_COMMAND, MCP_2_ARGS - 第二个 MCP(stdio 模式)
  • 最多支持 MCP_20_*

多个 MCP(备选:分号方式)

{
  "env": {
    "MCP_URL": "https://mcp.context7.com/mcp;https://mcp.deepwiki.com/mcp",
    "MCP_NAME": "context7;deepwiki"
  }
}

LLM 配置

变量默认值说明
LLM_API_KEY-OpenAI/OpenRouter API 密钥
LLM_BASE_URLOpenAI自定义端点(兼容 OpenAI 格式)
LLM_MODELgpt-4o-mini摘要用的模型
ENABLE_LLM_FILTERtrue开启/关闭过滤
MAX_RESPONSE_CHARS10000超过此长度时使用 LLM 摘要
FORCE_LLM_FILTERfalse强制所有响应都经过 LLM 摘要

智能路由配置 (v0.1.20+)

变量默认值说明
ENABLE_LLM_SEARCHtrue使用 LLM 智能搜索工具
ROUTER_MODEL(复用 LLM_MODEL)路由用的模型(建议用更快的模型)

工作原理:

  • list_tools 返回精简摘要而非完整 schema(节省 token)
  • search_tools 使用 LLM 理解意图并推荐相关工具(使用全量描述确保准确性)
  • LLM 不可用时回退到关键词搜索
  • 工具名模糊匹配,容错 LLM 返回格式不完全一致的情况
  • 超大响应(>200k 字符)预截断后再进行 LLM 摘要

OpenAPI 配置 (v0.1.24+)

直接从 OpenAPI/Swagger 规范注册 REST API:

# 示例:APIs.guru(公开的 API 目录)
OPENAPI_1_NAME=apisguru
OPENAPI_1_URL=https://api.apis.guru/v2/openapi.yaml

# 带认证的示例
OPENAPI_2_NAME=my_api
OPENAPI_2_URL=https://api.example.com/openapi.json
OPENAPI_2_AUTH_TYPE=api-key
OPENAPI_2_AUTH_TOKEN=sk-xxx
OPENAPI_2_AUTH_VAR=X-Api-Key
OPENAPI_2_AUTH_LOCATION=header
变量必填说明
OPENAPI_N_NAME工具源名称
OPENAPI_N_URLOpenAPI 规范地址
OPENAPI_N_AUTH_TYPEapi-keybearerbasicnone
OPENAPI_N_AUTH_TOKEN认证令牌/密钥
OPENAPI_N_AUTH_VAR头名称(默认 Authorization
OPENAPI_N_AUTH_LOCATIONheaderquerycookie

工作原理:

  • 下载并解析 OpenAPI 2.0/3.0 规范
  • 每个操作转换为一个 UTCP 工具
  • 工具名 = OpenAPI 规范中的 operationId
  • 工具描述 = OpenAPI 规范中的 summary 或 description
  • 支持 API Key、Bearer、Basic 和 OAuth2 认证

注意事项:

  • API 操作必须有 operationId(没有的会被跳过)
  • 文件上传参数(type: file)不被 UTCP SDK 支持

______________________________________________________________________

Credits / 致谢

这个项目建立在令人惊叹的开源工作之上:

许可证

麻省 理工© 2025 清洁

目录标签

目录标签

工具管理TypeScriptClaudeMCP优化本地部署Token节省渐进式发现LLM过滤

支持客户端

Claude DesktopClaudeCursorWindsurf

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

api-key

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明api-key部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP