MCP代理侧车
](https://badge.fury.io/js/mcp-proxy-sidecar)  ](https://github.com/dortegau/mcp-proxy-sidecar/actions/workflows/publish.yaml)
该项目通过WebSocket支持扩展了原始MCP服务器功能,同时保持了与原始实现的所有功能的兼容性。
建筑
graph LR
A[MCP Client
e.g. Claude
Desktop App]
B[MCP Proxy
Sidecar
with WebSocket]
C[JetBrains IDE]
D[WebSocket Clients
Monitoring]
A B
B C
B --WebSocket notifications
port 27042--> D
style A fill:#f5f5f5,stroke:#333,stroke-width:2px
style B fill:#e1f5fe,stroke:#333,stroke-width:2px
style C fill:#f5f5f5,stroke:#333,stroke-width:2px
style D fill:#f5f5f5,stroke:#333,stroke-width:2px上图说明了系统架构和数据流:
- MCP客户端(如克劳德桌面应用程序)使用MCP协议与Sidecar通信
- Sidecar将命令翻译并转发到JetBrains IDE
- IDE的响应通过Sidecar发回
- 所有工具调用都通过WebSocket进行广播,用于监控目的
特性
此分叉添加了WebSocket通知,允许您实时监视所有MCP工具调用。每个工具调用都通过WebSocket广播,其中包含有关端点和参数的详细信息。
WebSocket消息格式
interface MCPNotification {
type: 'mcp-notification';
payload: {
endpoint: string; // Tool name that was called
content: any; // Call arguments
timestamp: string; // ISO timestamp
}
}WebSocket配置
默认情况下,WebSocket服务器在端口27042上运行。您可以使用自定义此端口 WS_PORT 配置中的环境变量:
"env": {
"WS_PORT": "" // Example: "8080"
}用法
安装MCP服务器插件
https://plugins.jetbrains.com/plugin/26071-mcp-server
使用Claude Desktop
要在Claude Desktop中使用此功能,请将以下内容添加到您的 claude_desktop_config.json. MacOS上的完整路径: ~/Library/Application\ Support/Claude/claude_desktop_config.json,在Windows上: %APPDATA%/Claude/claude_desktop_config.json.
{
"mcpServers": {
"ide": {
"command": "npx",
"args": ["-y", "mcp-proxy-sidecar"],
"env": {
"WS_PORT": "27042" // Optional: customize WebSocket port
}
}
}
}配置选项
以下环境变量可以在您的 claude_desktop_config.json:
| 变量 | 描述 | 默认值 |
|---|---|---|
WS_PORT | WebSocket服务器端口 | 27042 |
IDE_PORT | IDE连接的特定端口 | 自动扫描63342-63352 |
HOST | IDE连接的主机地址 | 127.0.0.1 |
LOG_ENABLED | 启用调试日志记录 | false |
具有所有选项的示例配置:
{
"mcpServers": {
"ide": {
"command": "npx",
"args": ["-y", "mcp-proxy-sidecar"],
"env": {
"WS_PORT": "27042",
"IDE_PORT": "63342",
"HOST": "127.0.0.1",
"LOG_ENABLED": "true"
}
}
}
}注:如果 IDE_PORT 如果未指定,sidecar将自动扫描端口63342-63352以找到IDE。
发展
需求
- Node.js 20.x
- pnpm(最新版本)
构建
- 安装依赖项:
pnpm install --frozen-lockfile- 构建项目:
pnpm build贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
出版
此包发布到npm:
- 为供应链安全启用来源
- 创建新版本时通过GitHub Actions自动发布
- npm注册表上的公共访问
要发布新版本,请执行以下操作:
- 更新package.json中的版本
- 创建并推送与版本匹配的新标签
- 从标签创建GitHub版本
- 工作流将自动构建并发布到npm
更新日志
1.0.0
- @jetbrains/mcp代理的初始分叉
- 添加了WebSocket支持,用于实时工具调用监控
- 为清楚起见,重命名了包
- 更新的文档和配置示例
鸣谢
这是一把叉子 JetBrains MCP代理服务器。最初实现的所有功劳都归功于JetBrains团队。

