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_PORT8080内嵌代理监听端口
--ca-cert <PATH>RELAY_CA_CERT数据目录HTTPS 拦截 CA 证书
--ca-key <PATH>RELAY_CA_KEY数据目录CA 私钥
--transport <MODE>RELAY_PROBE_TRANSPORTstdiostdiosse
--probe-port <P>RELAY_PROBE_PORT3000SSE 监听端口(仅 transport=sse)
--probe-bind <ADDR>RELAY_PROBE_BIND127.0.0.1SSE 绑定地址

工具

观察

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 管道集成