MCP代理包装器

MCP代理包装器是一个位于MCP客户端和MCP服务器之间的代理层,透明地转发所有MCP协议操作,并提供详细的日志记录功能。

  • by tibzejoker
  • JavaScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 tibzejoker/mcp-wrapper

使用说明

MCP包装器

MCP(模型上下文协议)服务器的代理包装器。

概述

该项目创建了一个位于MCP客户端和MCP服务器之间的代理层。它将客户端的请求转发到真实的MCP服务器,并返回响应。

特性

  • 充当MCP客户端和真实MCP服务器之间的桥梁
  • 透明地转发所有MCP协议操作(工具、资源、提示)
  • 保留环境变量和上下文
  • 优雅地处理错误
  • 详细记录MCP_WRAPPER_LOG_PATH环境变量指定目录中的文件

用法

配置

MCP包装器需要命令行参数和环境变量:

  1. 命令行参数:

    • 第一个参数:运行真实MCP服务器的命令(例如“node”)
    • 第二个参数:实际MCP服务器脚本的路径(例如,“/path/to/real/MCP-server/build/index.js”)
  2. 环境变量(通过.env文件或系统环境):

    • MCP_WRAPPER_LOG_PATH:应存储日志的目录(例如,“/Users/username/logs”)
    • 真实MCP服务器所需的任何环境变量

配置更改说明

配置结构已从原始版本更改:

之前(原件):

{
  "mcpServers": {
    "my mcp server": {
      "command": "node /path/to/real/mcp-server/build/index.js",
      "env": {
        "HOME_LOG_PATH": "/Users/username/logs",
        "OTHER_ENV_VAR": "value"
      }
    }
  }
}

之后(当前):

{
  "mcpServers": {
    "my mcp server": {
      "command": "node",
      "args": [
        "dist/index.js",
        "node",
        "/path/to/real/mcp-server/build/index.js"
      ],
      "env": {
        "MCP_WRAPPER_LOG_PATH": "/Users/username/logs",
        "OTHER_ENV_VAR": "value"
      }
    }
  }
}

请注意:

  1. 包装器本身现在在命令字段(“node”)中指定,其路径为args[0](“dist/index.js”)
  2. 真正的MCP服务器命令和路径现在是args[1]和args[2]
  3. 环境变量已从HOME_LOG_PATH更改为MCP_WRAPPER_LOG_PATH

包装器被设计为由Claude和Cursor等工具自动运行,而不是手动启动。

建筑

要构建包装器,请执行以下操作:

npm run build

这将把main.js文件复制到dist/index.js。

发展

要监视更改并自动重建,请执行以下操作:

npm run watch

运作原理

  1. MCP客户端连接到包装服务器
  2. 包装服务器使用提供的命令和参数连接到真实的MCP服务器
  3. 来自客户端的请求被转发到真实服务器
  4. 来自真实服务器的响应返回给客户端
  5. 所有操作都记录到控制台和MCP_WRAPPER_log_PATH目录中的日志文件中

这允许您添加一个代理层,该层可以:

  • 修改请求或响应
  • 添加日志记录
  • 处理身份验证
  • 实施速率限制
  • 添加缓存

日志

MCP包装器将所有操作记录到:

  • 控制台输出(用于实时监控)
  • 日志文件位于 $MCP_WRAPPER_LOG_PATH/mcp-proxy.log (如果设置了MCP_WRAPPER_LOG_PATH)

每个日志条目包括:

  • 时间戳(ISO格式)
  • 操作类型(列出工具、调用工具等)
  • 请求详情
  • 响应摘要
  • 错误信息(如适用)

监控日志

要跟踪日志文件并实时监视活动,请运行:

npm run tail-log

这将显示现有日志内容并监视新条目。按Ctrl+C退出。

需求

  • Node.js 14或更高版本
  • MCP客户端
  • 一个真正的MCP服务器来代理
  • 对MCP_WRAPPER_LOG_PATH目录的写访问权限