MCP协议拦截器

一个基于WebSocket的轻量级拦截器,用于观察和转发本地MCP协议通信,支持调试和修改协议交换。

  • by gabriel-sztejnworcel
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 gabriel-sztejnworcel/mcp-intercept

使用说明

MCP-截距

一个基于WebSocket的轻量级拦截器,用于本地模型上下文协议(MCP)通信。

mcp-intercept 它允许你观察并转发基于stdio的MCP进程与任何MCP兼容主机(如Claude Desktop)之间的本地MCP流量。它运行一个小型的本地WebSocket桥接器,通过HTTP代理路由消息,从而支持检查、调试或修改协议交互。


🧠 概述

mcp_intercept.py 启动一个MCP服务器进程(例如,一个通过标准输入输出实现MCP的Node.js或Python脚本)。然后,它启动一个本地WebSocket服务器,并通过如HTTP代理等连接到该服务器 Burp客户端和服务器之间的所有MCP消息都通过这个桥接器传输,从而可以对其进行检查或操作。


📈 架构图


⚙️ 安装与设置

1) 克隆仓库

git clone https://github.com/gabriel-sztejnworcel/mcp-intercept
cd mcp-intercept

2) 创建并激活虚拟环境

🪟 在Windows上

python -m venv .venv
.venv\Scripts\activate

🍎 在 macOS / Linux 上

python -m venv .venv
source .venv/bin/activate

3) 安装依赖项

pip install -r requirements.txt

🧑‍💻 使用方法

您需要配置您的MCP主机以运行 mcp_intercept.py 作为MCP服务器,并将命令传递给您的目标MCP服务器:

path/to/mcp-intercept/.venv/bin/python mcp_intercept.py --proxy-port 8080 path/to/mcp-server mcp-server-args
  • path/to/mcp-server mcp-server-args → MCP进程运行并拦截
  • --proxy-port 8080 → 可选(默认 8080); 本地HTTP代理,该代理 mcp-intercept 将通过……路由

使用任何支持WebSocket的代理,如 Burp Suite(通常直接保留原名,不翻译) 检查指定端口上的流量。


在Claude桌面中配置为MCP服务器

你可以制作 mcp-intercept 表现得像一个正常的MCP服务器,因此Claude Desktop会自动启动它。

1) 找到Claude MCP配置

  • macOS: ~/Library/"Application Support"/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json

2) 添加一个条目用于 mcp-intercept

{
  "servers": {
    "mcp-intercept": {
      "command": "path/to/mcp-intercept/.venv/bin/python",
      "args": [
        "/path/to/mcp-intercept/mcp_intercept.py",
        "node",
        "/path/to/your-mcp-server.js"
      ]
    }
  }
}

替换 /path/to/... 根据你的实际路径。

3) 重启Claude桌面版

重启后,Claude 将启动 mcp-intercept该程序会启动您的MCP服务器,并通过拦截器(以及如果已配置的话,通过代理)路由通信。


🧠 工作原理

  1. 启动您的目标进程(例如。, node mcp-server.js) 和 stdin/stdout (通过)管道传输。
  2. 启动一个绑定到(指定地址或端口的)本地WebSocket服务器 127.0.0.1:<random_port>。
  3. 启动一个WebSocket客户端,通过HTTP代理连接到该服务器(默认 127.0.0.1:8080)。
  4. 日志记录到 stderr保持协议字节的干净整洁 stdout。

📈 示例:文件系统服务器


📜 许可证

麻省理工学院许可证 © 2025 Gabriel Sztejnworcel