我为抓包工具 RelayCraft 开发了 MCP Server,让 AI 直接调试 HTTP 流量

2 阅读5分钟

如果你还不了解 RelayCraft,可以先看我之前发布的这篇文章

为什么要做这个

AI 写代码已经很成熟,但在“代码跑起来之后”的调试阶段,仍然存在明显断层:AI 看不到真实接口返回、状态码和响应结构,开发者只能手动截图或复制,再切回对话窗口补充上下文。

这会带来两个问题:

  • 效率问题:信息搬运成本高,调试链路频繁被打断。
  • 协作问题:AI 无法直接访问一线运行数据,只能被动等待“喂数据”。

Whistle、Charles、Fiddler 等工具可以抓流量,但 AI 直接不可用。你没法一句话让 AI 去抓包工具里“自己看请求结果”。

Google 的 Chrome DevTools MCP 解决了部分页面分析场景,但并不以 HTTP 流量调试为核心能力。

因此,我们在 RelayCraft 中增加了 MCP Server 能力,让 AI 可以直接读取、修改并验证流量数据,形成完整闭环。

RelayCraft MCP 闭环流程:

flowchart LR
    classDef observe fill:#1d4ed8,stroke:#60a5fa,stroke-width:2px,color:#ffffff;
    classDef modify fill:#6d28d9,stroke:#a78bfa,stroke-width:2px,color:#ffffff;
    classDef verify fill:#059669,stroke:#34d399,stroke-width:2px,color:#ffffff;
    classDef note fill:#111827,stroke:#374151,stroke-width:1px,color:#d1d5db;
    classDef looplabel fill:#0f172a,stroke:#22c55e,stroke-width:1px,color:#86efac;

    A["1 看 (Observe)<br/>list_flows / get_flow / search_flows"]:::observe
    B["2 改 (Modify)<br/>create_rule"]:::modify
    C["3 验 (Verify)<br/>replay_request + get_flow"]:::verify

    A -->|"定位问题"| B
    B -->|"应用规则"| C
    C -.->|"重放后生成新 Flow"| A

    N1["AI 可直接读取请求与响应"]:::note
    N2["规则即时生效(可追溯来源)"]:::note
    N3["确认生效后进入下一轮调试"]:::looplabel

    A --- N1
    B --- N2
    C --- N3

MCP 是什么(工程视角)

不讲抽象定义:MCP 是让 AI 调用专业工具的标准化桥梁协议。

以前 AI 只能等你“喂数据”;有了 MCP,AI 可以自己调工具:查文件、查接口、读上下文、执行操作、再验证结果。

HTTP 流量调试天然适合 MCP,因为它本身就是一个循环:发现问题 → 分析问题 → 修改行为 → 验证结果


RelayCraft MCP 能做什么

1)AI 能“看到”流量

当前可直接调用:

  • list_flows:列出抓到的请求,支持域名 / 状态码 / 方法过滤
  • get_flow:查看单条请求完整 Headers + Body
  • get_session_stats:查看会话统计(错误率、慢请求、Top 域名)
  • search_flows:按关键词搜索 URL / Header / Body

流量查看能力

2)AI 能“改”流量

create_rule 支持 6 种规则类型:

  • Map Local(本地 Mock)
  • Map Remote(重定向到目标地址)
  • Rewrite Header(改请求/响应头)
  • Rewrite Body(改响应体)
  • Throttle(模拟弱网)
  • Block(屏蔽请求)

Rewrite Body 提供 4 种模式,覆盖绝大多数调试场景:

  • set:整段响应体直接替换(快速 Mock)
  • replace:精确替换固定文本(改字段名、改环境标记)
  • regex_replace:按正则批量替换(脱敏、批量改参数)
  • status_code:只改状态码,不改响应体

例如,只需告诉 AI:“把接口返回中的 Product 替换成 product”,系统就会自动生成并执行对应规则,无需手写配置。

规则创建能力

规则执行示例 1

规则执行示例 2

3)改完之后能“验”

replay_request 是闭环里的关键工具。AI 自己直接发出的请求不一定经过代理;但重放历史请求一定会经过代理端口,被 RelayCraft 捕获。随后可直接用 get_flow 查看修改后的真实结果。

完整闭环:看 → 改 → 验

重放后的请求会重新进入流量列表,AI 可以直接检查规则是否生效。

4)每条规则都有来源

RelayCraft 为规则提供来源标签:

  • user:用户在 UI 手动创建
  • ai_assistant:RelayCraft 内置 AI 助手创建
  • ai_mcp:外部 MCP 客户端(如 Cursor、Claude Desktop)创建

这样在团队协作中,规则变更可追溯、可审计、可解释。

规则来源标识


同类产品的 MCP 探索

流量调试 MCP 是未来的刚需,因此并不只有 RelayCraft 在做,行业已经出现多条路径:

  • Proxyman 较早推进 MCP 集成,能力覆盖较完整(请求列表、详情查看、规则管理、录制控制、部分应用控制),脚本生态成熟,在 Claude Code、Cursor 等工具中的接入体验较顺畅;当前主要面向 macOS,闭源。
  • Charles 暂无官方 MCP 方案,社区存在实验性桥接实现,但在一体化体验上仍有提升空间。
  • Whistle 社区已出现 MCP 方向探索,受既有架构影响,深度集成仍在演进中。
  • mitmproxy 存在 MCP 实验实现,但核心定位偏“可编程代理库”,对普通开发者的使用门槛相对更高。

RelayCraft 当前的 MCP 能力已经可以实现功能闭环。我们规划了更多能力,预计会在 v1.2 版本持续完善,包括但不限于:

  • AI Session:按会话聚合 AI 创建规则,一键撤销
  • 审批模式:写操作先审批再执行
  • SSE 实时事件:出现 5xx 时触发 AI 主动介入
  • update_rule:规则支持原地更新,减少“删后重建”

同时,我们也有更长远的规划:当前通过在 RelayCraft 应用内置 MCP 服务器提供能力;在下一代引擎 relay-core 完成后,将进一步提供独立 MCP 能力,并把更多流量调试与规则控制能力以更稳定的方式开放出来。


模拟场景演示

你让 AI 写了商品详情页,页面却报错:字段不匹配。

以前流程是:打开抓包工具 → 找请求 → 复制给 AI → 改代码 → 刷新验证 → 重复。
现在可以直接在对话里完成:

你:帮我看看 /api/product/detail 返回了什么
AI:get_flow(flow_xxx) → 返回完整响应

场景演示 - 查看请求

你:把 product_name 改成 productName,并重放验证一下
AI:create_rule(rewrite_body replace ...)
AI:replay_request(flow_xxx) ...

场景演示 - 重放验证

场景演示 - 规则命中结果

场景演示 - 返回结果确认

AI 可以辅助我们创建规则,并支持禁用、删除和清理:

规则管理能力

规则管理能力补充


安全设计

  • 只读操作默认无需 Token(本地 127.0.0.1 绑定)
  • 写操作需要 Bearer Token
  • MCP 不提供越权能力(如随意修改代理端口、删除历史流量、访问数据目录外文件)
  • 写操作结果可在 UI 即时可见,便于审计与回滚

最后

MCP 的价值,不只是“让 AI 会写代码”,而是让 AI 进入完整工程工作流。\

在 HTTP 调试场景里,这个价值非常直接:过去需要人工搬运的信息流,现在 AI 可以自己读取、修改、验证并给出结论。

RelayCraft MCP 已支持 Claude Desktop、Cursor、Windsurf,以及其他支持 MCP HTTP Transport 的客户端。

如果 RelayCraft 对你有帮助,欢迎前往 GitHub 点个 Star。
如果你在使用中遇到问题,也欢迎提交 Issue,我们会持续跟进与改进。
你的反馈是推动我们持续迭代的重要动力。