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消息都通过这个桥接器传输,从而可以对其进行检查或操作。
______________________________________________________________________
📈 架构图
Architecture Diagram
______________________________________________________________________
⚙️ 安装与设置
1) 克隆仓库
git clone https://github.com/gabriel-sztejnworcel/mcp-intercept
cd mcp-intercept2) 创建并激活虚拟环境
🪟 在Windows上
python -m venv .venv
.venv\Scripts\activate🍎 在 macOS / Linux 上
python -m venv .venv
source .venv/bin/activate3) 安装依赖项
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-argspath/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服务器,并通过拦截器(以及如果已配置的话,通过代理)路由通信。
______________________________________________________________________
🧠 工作原理
- 启动您的目标进程(例如。,
node mcp-server.js) 和stdin/stdout(通过)管道传输。 - 启动一个绑定到(指定地址或端口的)本地WebSocket服务器
127.0.0.1:。 - 启动一个WebSocket客户端,通过HTTP代理连接到该服务器(默认
127.0.0.1:8080)。 - 日志记录到
stderr保持协议字节的干净整洁stdout。
______________________________________________________________________
📈 示例:文件系统服务器
Example Filesystem Server
______________________________________________________________________
📜 许可证
麻省理工学院许可证 © 2025 Gabriel Sztejnworcel
