流量捕获服务器

Reqable MCP Server 是一个本地流量捕获服务器,用于将 Reqable 捕获的流量暴露给 MCP 客户端(如 Windsurf/Cursor/Claude/Codex),支持 HTTP 请求和 WebSocket 消息的查询、搜索和分析。

  • by ElonJask
  • Python
  • 本地部署
  • 237 星标
  • 更新于
在 GitHub 查看 ElonJask/reqable-mcp

使用说明

所需MCP服务器

可请求的MCP服务器向MCP客户端(Windsurf/Cursor/Cloud/Code)公开本地可请求的捕获流量。

默认架构仅限于本地:

  1. 可请求的帖子HAR(JSON) http://127.0.0.1:18765/report.
  2. 可选的增量WebSocket事件可以发布到 http://127.0.0.1:18765/ws/events.
  3. reqable-mcp 将请求/消息规范化并存储在本地SQLite中。
  4. MCP工具仅查询本地数据(默认情况下没有云中继)。

文件: 英语 | 中文

特性

  • 本地优先,隐私优先。
  • 通过Reqable报表服务器实时摄取。
  • 丢失会话的HAR文件导入回退。
  • HTTP请求查询/搜索/域统计/API分析。
  • 对携带消息帧扩展的HAR条目的WebSocket会话/消息解析。
  • 跨平台运行时(macOS/Linux/Windows与Python 3.10+)。

先决条件

  1. 安装并打开Reqable。
  2. 配置所需报表服务器以发布到 http://127.0.0.1:18765/report.
  3. 确保Node.js(用于 npx)以及 uv (为 uvx)可用。

安装

通过npx运行(推荐)

npx -y reqable-mcp@latest

本地开发

uv run reqable-mcp

MCP客户端配置

{
  "mcpServers": {
    "reqable": {
      "command": "npx",
      "args": ["-y", "reqable-mcp@latest"]
    }
  }
}

所需报表服务器设置

在可请求的“添加报表服务器”中使用这些值:

  1. 姓名: reqable-mcp-local
  2. 匹配规则: * (或您的目标域名)
  3. 服务器URL: http://127.0.0.1:18765/report
  4. 压缩: None (或与您的接收者保持一致)

保存后,生成流量并呼叫 ingest_status 以验证传入的有效载荷计数。

重要提示: reqable-mcp 仍然使用仅HTTP摄取传输(没有本机传输 ws:// 监听器),但现在支持两个HTTP摄取路径: /report HAR/会话有效载荷和 /ws/events 用于增量WebSocket事件。WebSocket捕获在Reqable有效负载包含帧数据时工作(例如 _webSocketMessages 或事件帧对象)。原始条目JSON和原始消息JSON由WebSocket工具保留和公开。当实时推送错过的帧时,HAR导出/导入仍然是回退。

可用工具

  • ingest_status:摄取服务器状态和计数器
  • import_har:从文件路径导入HAR
  • list_requests:使用筛选器列出最近的HTTP/WebSocket握手请求
  • get_request:按ID获取请求详细信息(full 包括 raw_entry)
  • search_requests:HTTP URL/body/raw上传条目中的关键字搜索(raw / raw_entry)
  • list_websocket_sessions:列出捕获的WebSocket会话
  • list_active_websocket_sessions:按最新捕获的帧列出最近活动的WebSocket会话
  • get_websocket_session:按ID获取WebSocket会话详细信息和消息(包括 raw_entry 和消息 raw)
  • tail_websocket_messages:增量获取方式 request_id + after_seq 光标
  • search_websocket_messages:按关键字、方向、类型、操作码、关闭代码、域和请求ID进行精确的WebSocket消息搜索
  • analyze_websocket_session:总结会话的方向、消息类型、JSON形状和结束事件
  • export_websocket_session_raw:导出原始上传的WebSocket条目和原始帧列表
  • health_report:摄取状态+WebSocket数据质量报告
  • repair_websocket_messages:回填原始框架中缺失的字段(支持干运行)
  • get_domains:域级请求统计
  • analyze_api:推断域的API形状
  • generate_code:从捕获的HTTP请求生成示例客户端代码

环境变量

变量 描述 默认值
REQABLE_INGEST_HOST 报告接收主机 127.0.0.1
REQABLE_INGEST_PORT 报告接收器端口 18765
REQABLE_INGEST_PATH 报告接收器路径 /report
REQABLE_WS_EVENTS_PATH 增量WebSocket事件接收器路径 /ws/events
REQABLE_DATA_DIR 本地数据目录 平台应用数据目录
REQABLE_DB_PATH SQLite文件路径 ${REQABLE_DATA_DIR}/requests.db
REQABLE_MAX_BODY_SIZE 每个请求/消息的最大持久体字节数 102400
REQABLE_MAX_REPORT_SIZE 最大可接受报告有效负载字节数 10485760
REQABLE_MAX_IMPORT_FILE_SIZE 最大HAR导入文件字节数 104857600
REQABLE_RETENTION_DAYS 本地保留窗口 7
REQABLE_INGEST_TOKEN 可选本地身份验证令牌 未设置

隐私和数据保留

  • 数据在默认模式下保留在本地计算机上。
  • 保留清理应用于本地DB记录,包括WebSocket消息。
  • 如果摄取服务器脱机,则不会重试请求失败的报告推送。

许可证

麻省理工学院