Communitygithub.com

ShristiLabs/madhyamas

轻量级 HTTP 代理,带有 Web UI

madhyamas 是什么?

Madhyamas 是一个开源的 HTTP/HTTPS 调试代理,使用 Rust 构建。它能够捕获、检查并操控客户端与服务器之间的流量。统一的 `madhyamas` 二进制文件提供了代理服务器、Web UI、MCP 服务器和 CLI 接口,支持在 MCP 兼容的 AI 代理(如 Claude Desktop、Windsurf 等)、终端脚本以及 REST API 中调用。核心功能包括流量捕获与检查、响应模拟、断点调试、URL/头部/主体重写以及网络节流模拟。它支持会话管理、HAR 导出、cURL 导出以及 WebSocket 和 gRPC 的检查。Madhyamas 的 CA 证书自动生成,用于 HTTPS 拦截,所有功能都可通过 MCP 工具、CLI 或 REST API 统一访问,使其成为 AI 驱动开发工作流中强大的调试工具。

兼容平台✓Claude Code~Codex CLI✓Cursor✓OpenCode✓Windsurf
npx skills add ShristiLabs/madhyamas

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Madhyamas 代理 — AI 代理指南

Madhyamas 是一个用 Rust 构建的开源 HTTP/HTTPS 调试代理。它可以捕获、检查并操控客户端与服务器之间的流量。统一的 madhyamas 二进制文件提供了代理服务器、Web UI、MCP 服务器和 CLI。

快速开始

# 1. 安装(选择其中一种方法)
cargo install madhyamas                          # 从 crates.io 安装
cargo build --release -p madhyamas               # 从源码构建
# 或者从 GitHub Releases 下载预编译二进制文件

# 2. 启动代理服务器
madhyamas serve
# 代理监听 :8888,API/Web UI 监听 :3001

# 3. 验证
curl http://localhost:3001/api/health
# 返回:OK

配置客户端使用代理 localhost:8888。如需 HTTPS 拦截,请安装来自 ~/.madhyamas/certs/madhyamas-ca.pem 的 CA 证书(或通过 GET /api/cert/ca 下载)。

有关详细的安装、配置和 CA 证书设置,请参阅 references/setup.md。

选择接口

Madhyamas 提供三个接口。根据您所处的上下文选择可用的接口:

接口使用时机设置参考文档
MCP 工具在 MCP 兼容代理内(Claude Desktop、Windsurf 等)madhyamas mcp(stdio 传输)references/mcp-tools.md
CLI 命令Shell 访问、脚本、基于终端的代理madhyamas <命令> <子命令>references/cli-commands.md
REST API精细控制、自定义脚本、直接 HTTP 请求curl http://localhost:3001/api/...references/rest-api.md

所有三个接口都提供相同的基础功能。MCP 工具和 CLI 命令是 REST API 的封装。

核心概念

  • 代理端口:代理监听 :8888(HTTP/HTTPS 流量),API/UI 监听 :3001
  • CA 证书:自动生成在 ~/.madhyamas/certs/ 目录下。安装到系统信任存储中以进行 HTTPS 拦截
  • 会话:将流量组织到命名的会话中。默认会话自动创建
  • 捕获模式:录制(默认)捕获流量;透传模式则转发而不录制
  • 拦截管道顺序:重写(优先级 10)→ 模拟(20)→ 断点(30)→ 节流(40)
  • 数据目录:~/.madhyamas/ 包含 certs/、logs/、traffic.db(SQLite)
  • MCP 服务器:运行 madhyamas mcp 以使用基于 stdio 的 MCP 传输。设置 MADHYAMAS_API_URL 以连接到正在运行的代理实例

核心工作流

工作流描述参考文档
设置安装、配置、连接客户端、安装 CA 证书setup.md
检查流量列出、过滤、搜索、分析捕获的 HTTP/HTTPS 流量traffic-inspection.md
模拟响应创建模拟规则以拦截并返回伪造的响应mocking.md
断点暂停请求/响应以进行检查和修改breakpoints.md
重写修改匹配流量的 URL、头部、主体rewrites.md
节流模拟慢速/不稳定的网络条件throttling.md
重放使用修改后的参数重新执行捕获的请求replay.md
会话创建、切换、导出、导入调试会话sessions.md
gRPC 检查检查 gRPC 连接、流、帧(实验性)grpc.md
脚本使用 JS/TS 脚本自动进行流量操控(实验性)scripting.md
插件管理 Rust 插件以扩展功能(实验性)plugins.md
WebSocket检查 WebSocket 连接流量和消息websockets.md
导出/导入HAR 导出、cURL 导出、规则持久化export-import.md
故障排除证书错误、端口冲突、数据库锁定、TLS 失败troubleshooting.md
工具设置为 Claude、Windsurf、Cursor 等配置 MCPharness-setup.md

参考索引

文件何时阅读
references/setup.md首次设置、安装、CA 证书、客户端配置
references/mcp-tools.md所有 67 个 MCP 工具的完整参考,包括参数
references/cli-commands.md所有 58 个 CLI 子命令的完整参考,包括标志
references/rest-api.md所有 130+ REST API 端点的完整参考
references/traffic-inspection.md过滤、搜索、分析捕获的流量
references/mocking.md创建和管理模拟响应
references/breakpoints.md暂停和修改流量
references/rewrites.mdURL/头部/主体重写规则
references/throttling.md网络条件模拟
references/replay.md重放和保存请求
references/sessions.md会话管理
references/grpc.mdgRPC 流量检查
references/scripting.mdJavaScript/TypeScript 脚本
references/plugins.md插件管理
references/websockets.mdWebSocket 流量检查
references/export-import.mdHAR/cURL 导出、持久化
references/troubleshooting.md常见问题与解决方案
references/harness-setup.md按工具的 MCP 配置

MCP 服务器设置

运行 MCP 服务器以集成 AI 代理:

madhyamas mcp                    # stdio 传输,连接到 localhost:3001
MADHYAMAS_API_URL=http://host:3001 madhyamas mcp  # 自定义 API URL

添加到代理的 MCP 配置:

{
  "mcpServers": {
    "madhyamas": {
      "command": "/path/to/madhyamas",
      "args": ["mcp"],
      "env": { "MADHYAMAS_API_URL": "http://127.0.0.1:3001" }
    }
  }
}

有关特定工具的配置(Claude Desktop、Windsurf、Cursor、OpenCode、CommandCode、Devin),请参阅 references/harness-setup.md。

常用模式

调试失败的 API 调用:

  1. 启动代理:madhyamas serve
  2. 配置客户端使用代理
  3. 重现问题
  4. 检查流量:madhyamas traffic list --status 500 或 MCP madhyamas_get_traffic 并指定 status=500
  5. 获取详情:madhyamas traffic get <id> 或 MCP madhyamas_get_traffic_entry

模拟一个 API 端点:

  1. 创建模拟:madhyamas mocks create --url-pattern "*/api/auth*" --status-code 200 --body '{"token":"fake"}'
  2. 或使用 MCP:madhyamas_create_mock,参数为 url_pattern="*/api/auth*"、status_code=200、body='{"token":"fake"}'
  3. 从客户端测试模拟的端点

在慢速网络下测试:

  1. 启用节流:madhyamas throttle set --download-bps 50000 --delay-ms 200 && madhyamas throttle enable
  2. 或使用 MCP:madhyamas_set_throttle,参数为 download_bps=50000, delay_ms=200, enabled=true
  3. 重现您的工作流,以观察在慢速条件下的行为

相关技能