项目简介

这个项目是一个基于 Deno 构建的 MCP (Model Context Protocol) 服务器的代理工具。它的核心功能是包裹一个现有的 MCP 服务器,并允许用户指定只暴露该服务器提供的部分工具给连接的 LLM 客户端。这有助于控制 LLM 的能力范围、减少不必要的工具列表,或根据特定需求(如读写权限)对工具进行分组暴露。

主要功能点

  • 工具过滤: 只向 LLM 客户端暴露配置中指定名称的工具。
  • 工具代理: 当客户端调用允许的工具时,将调用请求转发给实际的 MCP 服务器处理,并将结果返回。
  • 支持多种服务器源: 可以包裹运行在本地文件、JSR 包或 NPM 包中的 MCP 服务器。
  • Stdio 传输支持: 使用标准输入/输出来与 LLM 客户端和被包裹的 MCP 服务器通信。

安装步骤

首先,请确保您的系统已安装 Deno

您可以通过以下两种方式获取此工具:

  1. 从 JSR 安装 (推荐用于命令行使用):

    deno install jsr:@dpirate/mcp-server-wrapper
  2. 从 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与计算