MCP Slim代理工具

MCP Slim是一个代理工具,通过减少工具定义占用的上下文窗口,优化LLM的工作记忆,支持语义搜索和工具调用,适用于需要高效管理多个MCP服务器的场景。

  • by dopatools
  • TypeScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 dopatools/mcp-slim

使用说明

MCP Slim

MCP服务器占用了72%的上下文窗口。在60秒内修复它。

连接3台MCP服务器,55000个令牌在您的第一条消息之前就消失了——烧毁了您永远不会使用的工具定义。你的模型变得更笨,选错了工具,产生了更多的幻觉。不是因为它不好,而是因为它的工作记忆中充满了工具手册。

MCP Slim是一个位于客户端和服务器之间的代理。它没有预先转储100多个工具模式,而是公开了3个元工具。LLM搜索它需要的内容,一次加载一个模式,并调用它。 一个代理,所有服务器,零配置更改。

诀窍

search_tools("create github issue")     →  5 matches, ~200 tokens
get_tool_schema("github_create_issue")  →  just that schema
call_tool("github_create_issue", {...}) →  routed to the right backend

在典型的3-tool任务中: 约20000个代币→ ~700. 这是96%。

语义搜索(真实特征)

大多数代理只是压缩描述或按名称过滤。MCP Slim运行本地嵌入模型,因此LLM可以通过以下方式找到工具 意图,而不是关键字:

search_tools("save a note")  →  create_entities, add_observations

零关键字重叠。该模型理解“保存注释”意味着“在知识图中创建一个实体”。尝试使用关键字过滤器。

这很重要,因为真正的用户不会考虑工具名称。他们在任务中思考。

储蓄

层 前 后 缩减
工具目录 20000个令牌 270个令牌 98.7%
每次查找的架构 300个令牌 180个令牌 39%
API响应 40000个代币 5000个代币 87%

安装

npx mcp-slim init

检测您的Claude Desktop、Cursor、Cline、Windsurf或Zed配置。将其备份。重写它。完成。没有Docker,没有Rust工具链,没有Python虚拟环境。

第一次运行下载一个约80MB的嵌入模型。关键字搜索立即生效;语义搜索在大约2秒后开始。

手动设置

// Your MCP client config
{
  "mcpServers": {
    "mcp-slim": {
      "command": "npx",
      "args": ["mcp-slim", "proxy"]
    }
  }
}
// ~/.mcp-slim/config.json
{
  "backends": {
    "github": {
      "command": "github-mcp-server",
      "env": { "GITHUB_TOKEN": "ghp_..." }
    },
    "slack": {
      "command": "slack-mcp-server",
      "args": ["--workspace", "myteam"]
    }
  }
}

在幕后

  • 混合搜索 --关键字+局部语义嵌入 @huggingface/transformers。没有API密钥,完全脱机。
  • 多服务器聚合 --一个代理处理您的所有后端。每台服务器没有一个包装器。
  • 架构压缩 --删除冗余描述、默认值、JSON模式元字段。
  • 响应优化 --截断数组,按模式剥离元数据,删除空值。
  • 使用跟踪 --每个请求节省到stderr,会话总计节省到SQLite。
  • 优雅降级 --如果嵌入失败,则返回关键字搜索。永不崩溃。

命令行界面

mcp-slim proxy              # Start the proxy
mcp-slim proxy --verbose    # With debug logging
mcp-slim init               # Auto-configure from existing client config
mcp-slim status             # Backends, settings, all-time token savings

配置

全部可选。默认值开箱即用。

{
  "backends": {},
  "maxToolsPerSearch": 5,
  "searchMode": "hybrid",
  "embeddingModel": "Xenova/all-MiniLM-L6-v2",
  "enableSchemaCompression": true,
  "enableResponseCompression": true,
  "maxArrayItems": 10,
  "maxStringLength": 2000,
  "stripKeyPatterns": ["_links", "_meta", "node_id", "*_url"],
  "removeNulls": true,
  "trackUsage": true
}

这与X有何不同?

vs mcp压缩机(Atlassian) --压缩器一次包装一台服务器,不进行搜索。每个后端都需要一个单独的实例,LLM必须已经知道工具名称。MCP Slim聚合了所有服务器,LLM通过描述它想要做什么来找到工具。

vs MCProxy --MCProxy是一个带有关键字搜索和中间件的Rust二进制文件。MCP Slim增加了语义搜索、模式压缩、响应优化,并安装了 npx 在一条线上。

vs克劳德代码工具搜索 --仅内置于克劳德代码中。不适用于Cursor、Cline、Windsurf、Zed或任何其他客户。MCP Slim适用于任何地方。

适用于

Claude Desktop、Claude Code、Cursor、Cline、Roo Code、Windsurf、Continue.dev、Zed、JetBrains、VS Code——任何支持stdio传输的MCP客户端。

许可证

麻省理工学院