MCP 服务器
MCP 能力由独立适配器 relay-core-probe(npm 包 @relay-core/mcp)提供。它内置代理进程并通过 MCP 向 AI Agent 暴露工具,不是 relay-core-cli run --mcp。
前置条件
npx @relay-core/cli ca generate
npx @relay-core/cli ca install # macOS 可自动安装;其他平台见 ca status 提示 配置 MCP 客户端
在 Cursor、Claude Desktop 等 MCP 客户端中:
{
"mcpServers": {
"relay-core": {
"command": "npx",
"args": ["-y", "@relay-core/mcp"]
}
}
} @relay-core/mcp 会启动 relay-core-probe:默认 stdio 传输,同时在本机 127.0.0.1:8080 运行代理。请将浏览器/系统代理指向该地址。
probe CLI 参数
probe 二进制支持以下参数与环境变量:
| 参数 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
--port <P> | RELAY_PORT | 8080 | 内嵌代理监听端口 |
--ca-cert <PATH> | RELAY_CA_CERT | 数据目录 | HTTPS 拦截 CA 证书 |
--ca-key <PATH> | RELAY_CA_KEY | 数据目录 | CA 私钥 |
--transport <MODE> | RELAY_PROBE_TRANSPORT | stdio | stdio 或 sse |
--probe-port <P> | RELAY_PROBE_PORT | 3000 | SSE 监听端口(仅 transport=sse) |
--probe-bind <ADDR> | RELAY_PROBE_BIND | 127.0.0.1 | SSE 绑定地址 |
工具
观察
search_flows
搜索和过滤捕获的流量。
{
"filter": "method:GET host:*.example.com",
"limit": 10
} get_flow
获取详细的流量信息。
{
"flow_id": "fld_01HX5K9P3Q8Y2Z7"
} get_metrics
获取当前代理指标。
控制
set_intercept
创建拦截断点。
{
"filter": {
"method": "POST",
"host": "api.example.com"
},
"pause_at": "request"
} get_pending_intercepts
列出当前待处理的拦截(HTTP 与 WebSocket)。
resume_flow
恢复暂停的流量。
{
"flow_id": "fld_01HX5K9P3Q8Y2Z7",
"action": "resume", // 或 "drop"
"modifications": {
"status_code": 418,
"response_body": "I'm a teapot"
}
} 规则
set_rule
创建或更新规则。
{
"name": "Log API requests",
"filter": { "path": "/api/*" },
"action": { "type": "log" }
} delete_rule
删除规则。
{
"rule_id": "rul_01HX5K9P3Q8Y2Z7"
} mock_url
创建一次性 MockResponse 规则。
{
"url_pattern": "api.example.com/v1/health",
"status": 200,
"body": "{\"ok\":true}",
"content_type": "application/json"
} 脚本
set_script
热加载 Deno 脚本到运行中的引擎。
{
"script": "// deno-fmt-ignore\nexport default { onRequest(ctx) { /* ... */ } }"
} 分析
export_har
以 HAR 格式导出流量。
{
"filter": "host:example.com",
"format": "har"
} replay_flow
重放捕获的流量。
{
"flow_id": "fld_01HX5K9P3Q8Y2Z7",
"modifications": {
"headers": { "x-test": "value" }
}
} 策略
get_policy
获取当前拦截策略,包含 redaction 块。
update_policy
完整替换策略。
patch_policy
局部更新策略——只修改提供的字段。Body 形态与 REST API 一致:{ redaction?, upstream? }。
{
"redaction": {
"enabled": true,
"redact_bodies": true
}
} 资源
MCP 还暴露只读资源:
flows://— 最近流量列表rules://— 当前规则proxy://status— 代理状态与指标audit://recent— 最近审计事件ca://install— CA 安装指引(含默认路径)
使用场景
- AI 驱动的 API 测试和调试
- 自动化流量分析
- 基于流量模式的动态规则生成
- 与 CI/CD 管道集成