如果你还不了解 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 + Bodyget_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”,系统就会自动生成并执行对应规则,无需手写配置。
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 的客户端。
- GitHub: github.com/relaycraft/…
- MCP 规范: modelcontextprotocol.io
如果 RelayCraft 对你有帮助,欢迎前往 GitHub 点个 Star。
如果你在使用中遇到问题,也欢迎提交 Issue,我们会持续跟进与改进。
你的反馈是推动我们持续迭代的重要动力。