项目简介
这个项目是一个基于 Deno 构建的 MCP (Model Context Protocol) 服务器的代理工具。它的核心功能是包裹一个现有的 MCP 服务器,并允许用户指定只暴露该服务器提供的部分工具给连接的 LLM 客户端。这有助于控制 LLM 的能力范围、减少不必要的工具列表,或根据特定需求(如读写权限)对工具进行分组暴露。
主要功能点
- 工具过滤: 只向 LLM 客户端暴露配置中指定名称的工具。
- 工具代理: 当客户端调用允许的工具时,将调用请求转发给实际的 MCP 服务器处理,并将结果返回。
- 支持多种服务器源: 可以包裹运行在本地文件、JSR 包或 NPM 包中的 MCP 服务器。
- Stdio 传输支持: 使用标准输入/输出来与 LLM 客户端和被包裹的 MCP 服务器通信。
安装步骤
首先,请确保您的系统已安装 Deno。
您可以通过以下两种方式获取此工具:
-
从 JSR 安装 (推荐用于命令行使用):
deno install jsr:@dpirate/mcp-server-wrapper -
从 Git 克隆 (用于本地开发或贡献):
git clone https://github.com/LichCon/mcp-server-wrapper.git cd mcp-server-wrapper # 您可以直接从这里运行 src/cli.ts
MCP 服务器配置
MCP 客户端(如 Cursor 编辑器等)需要通过配置来启动并连接 MCP 服务器。通常,配置信息是一个 JSON 对象,包含服务器的名称、启动命令 (command) 和参数 (args)。
要使用这个工具作为您的 MCP 服务器,您需要将它的启动命令和参数配置到您的 MCP 客户端中。基本的配置结构示例如下(请根据您的客户端实际支持的格式调整):
{ "name": "mcp-filtered-tools", // 给这个代理服务器起一个名字 "command": "deno", // 启动程序的命令,这里是 deno "args": [ "run", // deno 的运行参数 "-A", // 允许所有权限 (必需,因为需要运行子进程) "jsr:@dpirate/mcp-server-wrapper/cli", // 启动这个代理工具的 CLI 入口 (如果是本地克隆,路径会有不同) "YOUR_MCP_SERVER_URL", // ***必需***:实际的 MCP 服务器的地址或标识符。 // 可以是本地文件路径 (如 ./my-server.ts), // 或 JSR/NPM 包标识符 (如 jsr:@user/pkg, npm:package-name) "TOOL_NAME_1", // ***必需***:您希望暴露的第一个工具的名称。 "TOOL_NAME_2", // ***可选***:希望暴露的第二个工具的名称。 // ... 您可以列出任意多个希望暴露的工具名称 ] }
在配置时,请将 'YOUR_MCP_SERVER_URL' 替换为您实际需要包裹的 MCP 服务器的启动路径或标识符,并将 'TOOL_NAME_1', 'TOOL_NAME_2' 等替换为您希望从该服务器中过滤后暴露给 LLM 客户端的具体工具的名称。
基本使用方法
配置完成后,您的 MCP 客户端在启动时会根据上述配置自动启动这个代理工具。
如果您想手动从命令行启动并测试这个代理(例如,包裹一个名为 './my-server.ts' 的本地服务器,并只暴露其中的 'search' 和 'read' 工具),可以使用以下命令:
# 假设您已经通过 jsr 安装了 mcp-server-wrapper deno run -A jsr:@dpirate/mcp-server-wrapper/cli ./my-server.ts search read # 如果您是从 git 克隆并在本地运行 deno run -A ./src/cli.ts ./my-server.ts search read
此命令将启动代理服务器,它会进一步启动 './my-server.ts' 服务器,并作为中间层等待 LLM 客户端通过 Stdio 连接,只提供 'search' 和 'read' 这两个工具。
信息
分类
AI与计算