MCP工具过滤代理

mcpwrapped是一个轻量级的MCP(Model Context Protocol)代理,位于MCP客户端和服务器之间,允许通过白名单过滤可用工具,防止上下文窗口混乱。

  • by VitoLin
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 VitoLin/mcpp

使用说明

mcpwrapped

mcpwrapped 是位于MCP客户端和服务器之间的轻量级MCP(模型上下文协议)代理。它允许您筛选可用的工具,通过仅公开您明确想要使用的工具来防止上下文窗口混乱。

特性

  • 工具筛选:使用白名单特定工具 --visible_tools 旗帜
  • 透明代理:原封不动地转发所有其他MCP协议消息(资源、提示等)
  • 轻松集成:适用于支持基于命令的服务器配置的任何MCP客户端

安装

npm install -g mcpwrapped

用法

mcpwrapped 包装您现有的MCP服务器命令。您首先传递过滤标志,然后传递运行服务器的实际命令。

基本语法

mcpwrapped --visible_tools=tool1,tool2 <actual_command> [actual_args...]

示例:Claude桌面配置

要将其与Claude Desktop一起使用,请更新您的 claude_desktop_config.json:

{
  "mcpServers": {
    "filesystem": {
      "command": "mcpwrapped",
      "args": [
        "--visible_tools=read_file",
        "npx",
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop"
      ]
    }
  }
}

在这个例子中,只有 read_file Claude可以看到文件系统服务器上的工具,并将其隐藏 write_file, list_directory等等。

配置标志

标志 描述 示例
‑visible_tools 以逗号分隔的要公开的工具名称列表 `visible_tools=读、写

运作原理

┌─────────────┐         ┌──────────────┐         ┌─────────────┐
│ MCP Client  │ ◀──────▶│  mcpwrapped  │ ◀──────▶│ MCP Server  │
│ (Claude)    │         │  (Proxy)     │         │             │
│             │         │              │         │             │
└─────────────┘         └──────────────┘         └─────────────┘
                              │
                              └── Filters tool_list to only include
                                  tools specified in --visible_tools

mcpwrapped 充当透明代理:

  1. 使用提供的命令生成实际的MCP服务器
  2. 拦截来自服务器的消息
  3. 过滤 tools 初始化消息中的列表仅包含允许的工具
  4. 原封不动地传递所有其他消息(资源、提示、工具调用等)

许可证

MIT许可证-请参阅 许可证 了解详情。