WebSocket监控代理

MCP Proxy Sidecar是一个扩展了JetBrains MCP服务器功能的代理工具,增加了WebSocket实时监控能力,适用于IDE工具调用监控和开发调试场景。

  • by dortegau
  • JavaScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 dortegau/mcp-proxy-sidecar

使用说明

MCP代理侧车

叉子 JetBrains MCP服务器 它添加了WebSocket监控功能,由 @多特高.

该项目通过WebSocket支持扩展了原始MCP服务器功能,同时保持了与原始实现的所有功能的兼容性。

建筑

graph LR
    A[MCP Client<br>e.g. Claude<br>Desktop App]
    B[MCP Proxy<br>Sidecar<br>with WebSocket]
    C[JetBrains IDE]
    D[WebSocket Clients<br>Monitoring]
    
    A <--MCP requests/responses--> B
    B <--IDE commands/responses--> C
    B --WebSocket notifications<br>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

上图说明了系统架构和数据流:

  1. MCP客户端(如克劳德桌面应用程序)使用MCP协议与Sidecar通信
  2. Sidecar将命令翻译并转发到JetBrains IDE
  3. IDE的响应通过Sidecar发回
  4. 所有工具调用都通过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": "<custom port number>"  // 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(最新版本)

构建

  1. 安装依赖项:
    pnpm install --frozen-lockfile
    
  2. 构建项目:
    pnpm build
    

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

出版

此包发布到npm:

  • 为供应链安全启用来源
  • 创建新版本时通过GitHub Actions自动发布
  • npm注册表上的公共访问

要发布新版本,请执行以下操作:

  1. 更新package.json中的版本
  2. 创建并推送与版本匹配的新标签
  3. 从标签创建GitHub版本
  4. 工作流将自动构建并发布到npm

更新日志

1.0.0

  • @jetbrains/mcp代理的初始分叉
  • 添加了WebSocket支持,用于实时工具调用监控
  • 为清楚起见,重命名了包
  • 更新的文档和配置示例

鸣谢

这是一把叉子 JetBrains MCP代理服务器。最初实现的所有功劳都归功于JetBrains团队。