Communitygithub.com

ShristiLabs/madhyamas

Proxy HTTP ligero con interfaz web

¿Qué es madhyamas?

Madhyamas es un proxy de depuración HTTP/HTTPS de código abierto construido en Rust, diseñado para capturar, inspeccionar y manipular el tráfico entre clientes y servidores. Es especialmente útil para desarrolladores y agentes de IA que necesitan depurar interacciones de red, simular condiciones adversas o modificar respuestas en tiempo real. Soporta múltiples interfaces: un servidor proxy, una interfaz web, un servidor MCP (Model Context Protocol) y una CLI completa. Puedes inspeccionar el tráfico, crear respuestas simuladas (mocks), establecer puntos de interrupción (breakpoints), reescribir URLs y cabeceras, simular redes lentas o inestables, y hasta inspeccionar tráfico gRPC y WebSocket. Se integra fácilmente con agentes compatibles con MCP como Claude Desktop, Windsurf, Cursor, entre otros, permitiendo que los propios agentes gestionen el tráfico de depuración de forma programática.

Compatible con✓Claude Code~Codex CLI✓Cursor✓OpenCode✓Windsurf
npx skills add ShristiLabs/madhyamas

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Madhyamas Proxy — Guía para Agentes IA

Madhyamas es un proxy de depuración HTTP/HTTPS de código abierto construido en Rust. Captura, inspecciona y manipula el tráfico entre clientes y servidores. El binario unificado madhyamas proporciona un servidor proxy, interfaz web, servidor MCP y CLI.

Inicio Rápido

# 1. Instalar (elige una opción)
cargo install madhyamas                          # desde crates.io
cargo build --release -p madhyamas               # desde el código fuente
# O descarga el binario precompilado desde GitHub Releases

# 2. Iniciar el servidor proxy
madhyamas serve
# Proxy escucha en :8888, API/Interfaz Web en :3001

# 3. Verificar
curl http://localhost:3001/api/health
# Devuelve: OK

Configura los clientes para que usen el proxy localhost:8888. Para la interceptación HTTPS, instala el certificado CA desde ~/.madhyamas/certs/madhyamas-ca.pem (o descárgalo mediante GET /api/cert/ca).

Consulta references/setup.md para obtener instrucciones detalladas de instalación, configuración y certificado CA.

Elegir una Interfaz

Madhyamas expone tres interfaces. Usa la que esté disponible en tu contexto:

InterfazCuándo UsarlaConfiguraciónReferencia
Herramientas MCPDentro de agentes compatibles con MCP (Claude Desktop, Windsurf, etc.)madhyamas mcp (transporte stdio)references/mcp-tools.md
Comandos CLIAcceso a shell, scripts, agentes basados en terminalmadhyamas <comando> <subcomando>references/cli-commands.md
API RESTControl detallado, scripts personalizados, HTTP directocurl http://localhost:3001/api/...references/rest-api.md

Las tres interfaces exponen la misma funcionalidad subyacente. Las herramientas MCP y los comandos CLI son envoltorios de la API REST.

Conceptos Clave

  • Puertos del proxy: Proxy en :8888 (tráfico HTTP/HTTPS), API/UI en :3001
  • Certificado CA: Generado automáticamente en ~/.madhyamas/certs/. Instálalo en el almacén de confianza del sistema para la interceptación HTTPS
  • Sesiones: Organiza el tráfico en sesiones con nombre. Se crea una sesión por defecto automáticamente
  • Modo de captura: Grabación (por defecto) captura el tráfico; Paso directo reenvía sin grabar
  • Orden del pipeline de interceptación: Reescrituras (prioridad 10) → Simulaciones (20) → Puntos de interrupción (30) → Limitación (40)
  • Directorio de datos: ~/.madhyamas/ contiene certs/, logs/, traffic.db (SQLite)
  • Servidor MCP: Ejecuta madhyamas mcp para transporte MCP basado en stdio. Establece MADHYAMAS_API_URL para conectar a una instancia de proxy en ejecución

Flujos de Trabajo Principales

Flujo de TrabajoDescripciónReferencia
ConfiguraciónInstalación, configuración, conexión de clientes, instalación del certificado CAsetup.md
Inspeccionar tráficoListar, filtrar, buscar, analizar el tráfico HTTP/HTTPS capturadotraffic-inspection.md
Simular respuestasCrear reglas de simulación para interceptar y devolver respuestas falsasmocking.md
Puntos de interrupciónPausar solicitudes/respuestas para inspección y modificaciónbreakpoints.md
ReescriturasModificar URLs, cabeceras, cuerpos del tráfico coincidenterewrites.md
LimitaciónSimular condiciones de red lentas o inestablesthrottling.md
ReproducciónRe-ejecutar solicitudes capturadas con modificacionesreplay.md
SesionesCrear, cambiar, exportar, importar sesiones de depuraciónsessions.md
Inspección gRPCInspeccionar conexiones, streams y tramas gRPC (experimental)grpc.md
ScriptingAutomatizar la manipulación del tráfico con scripts JS/TS (experimental)scripting.md
PluginsGestionar plugins de Rust para funcionalidad extendida (experimental)plugins.md
WebSocketsInspeccionar el tráfico y mensajes de conexiones WebSocketwebsockets.md
Exportar/ImportarExportación HAR, exportación cURL, persistencia de reglasexport-import.md
Solución de problemasErrores de certificado, conflictos de puerto, bloqueos de base de datos, fallos TLStroubleshooting.md
Configuración del harnessConfigurar MCP para Claude, Windsurf, Cursor, etc.harness-setup.md

Índice de Referencias

ArchivoCuándo Leerlo
references/setup.mdConfiguración inicial, instalación, certificado CA, configuración del cliente
references/mcp-tools.mdReferencia completa de las 67 herramientas MCP con parámetros
references/cli-commands.mdReferencia completa de los 58 subcomandos CLI con indicadores
references/rest-api.mdReferencia completa de los más de 130 endpoints de la API REST
references/traffic-inspection.mdFiltrado, búsqueda y análisis del tráfico capturado
references/mocking.mdCreación y gestión de respuestas simuladas
references/breakpoints.mdPausa y modificación del tráfico
references/rewrites.mdReglas de reescritura de URL/cabecera/cuerpo
references/throttling.mdSimulación de condiciones de red
references/replay.mdReproducción y guardado de solicitudes
references/sessions.mdGestión de sesiones
references/grpc.mdInspección de tráfico gRPC
references/scripting.mdScripting en JavaScript/TypeScript
references/plugins.mdGestión de plugins
references/websockets.mdInspección de tráfico WebSocket
references/export-import.mdExportación HAR/cURL, persistencia
references/troubleshooting.mdProblemas comunes y soluciones
references/harness-setup.mdConfiguración MCP por harness

Configuración del Servidor MCP

Ejecuta el servidor MCP para la integración con agentes IA:

madhyamas mcp                    # transporte stdio, conecta a localhost:3001
MADHYAMAS_API_URL=http://host:3001 madhyamas mcp  # URL de API personalizada

Añádelo a la configuración MCP de tu agente:

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

Consulta references/harness-setup.md para la configuración específica de cada harness (Claude Desktop, Windsurf, Cursor, OpenCode, CommandCode, Devin).

Patrones Comunes

Depurar llamadas API fallidas:

  1. Iniciar el proxy: madhyamas serve
  2. Configurar el cliente para que use el proxy
  3. Reproducir el problema
  4. Inspeccionar el tráfico: madhyamas traffic list --status 500 o MCP madhyamas_get_traffic con status=500
  5. Obtener detalles: madhyamas traffic get <id> o MCP madhyamas_get_traffic_entry

Simular un endpoint API:

  1. Crear la simulación: madhyamas mocks create --url-pattern "*/api/auth*" --status-code 200 --body '{"token":"fake"}'
  2. O MCP: madhyamas_create_mock con url_pattern="*/api/auth*", status_code=200, body='{"token":"fake"}'
  3. Probar el endpoint simulado desde tu cliente

Probar con red lenta:

  1. Habilitar la limitación: madhyamas throttle set --download-bps 50000 --delay-ms 200 && madhyamas throttle enable
  2. O MCP: madhyamas_set_throttle con download_bps=50000, delay_ms=200, enabled=true
  3. Reproducir tu flujo de trabajo para ver el comportamiento bajo condiciones lentas

Skills relacionados