Communitygithub.com

ShristiLabs/madhyamas

Leichter HTTP-Proxy mit Weboberfläche

Was ist madhyamas?

Madhyamas ist ein in Rust geschriebener, quelloffener HTTP/HTTPS-Debugging-Proxy. Er erfasst, inspiziert und manipuliert den Datenverkehr zwischen Clients und Servern. Die einheitliche `madhyamas`-Binärdatei bietet einen Proxy-Server, eine Weboberfläche (Web UI), einen MCP-Server und eine Befehlszeilenschnittstelle (CLI). Der Proxy unterstützt Entwickler und KI-Agenten über drei Schnittstellen: MCP-Tools (für kompatible Agenten wie Claude Desktop), CLI-Befehle (für Shell-Zugriff und Skripting) und eine REST-API (für feingranulare Steuerung). Zu den Kernfunktionen gehören die Inspektion von Datenverkehr, das Erstellen von Mock-Antworten, das Setzen von Haltepunkten (Breakpoints), das Umschreiben von URLs/Headern/Bodies, das Simulieren von Netzwerkbedingungen (Throttling) sowie die Wiedergabe (Replay) von Anfragen. Der Proxy läuft standardmäßig auf Port 8888 für den Proxy-Traffic und auf Port 3001 für die API und Web-UI. Für die HTTPS-Entschlüsselung wird ein CA-Zertifikat automatisch generiert und muss im Systemvertrauensspeicher installiert werden. Madhyamas speichert Daten in einem SQLite-Datenspeicher unter `~/.madhyamas/` und organisiert den Datenverkehr in Sitzungen (Sessions).

Funktioniert mit✓Claude Code~Codex CLI✓Cursor✓OpenCode✓Windsurf
npx skills add ShristiLabs/madhyamas

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Madhyamas Proxy – KI-Agenten-Anleitung

Madhyamas ist ein quelloffener HTTP/HTTPS-Debugging-Proxy, der in Rust geschrieben ist. Er erfasst, inspiziert und manipuliert den Datenverkehr zwischen Clients und Servern. Die einheitliche madhyamas-Binärdatei bietet einen Proxy-Server, eine Weboberfläche, einen MCP-Server und eine CLI.

Schnellstart

# 1. Installieren (eine Option wählen)
cargo install madhyamas                          # von crates.io
cargo build --release -p madhyamas               # aus dem Quellcode
# Oder vorgefertigtes Binary von GitHub Releases herunterladen

# 2. Proxy-Server starten
madhyamas serve
# Proxy lauscht auf :8888, API/Web UI auf :3001

# 3. Überprüfen
curl http://localhost:3001/api/health
# Antwort: OK

Konfigurieren Sie Clients, den Proxy localhost:8888 zu verwenden. Für die HTTPS-Abfangen installieren Sie das CA-Zertifikat aus ~/.madhyamas/certs/madhyamas-ca.pem (oder laden Sie es via GET /api/cert/ca herunter).

Weitere Informationen zur detaillierten Installation, Konfiguration und CA-Zertifikat-Einrichtung finden Sie in references/setup.md.

Wahl der Schnittstelle

Madhyamas bietet drei Schnittstellen an. Verwenden Sie diejenige, die in Ihrem Kontext verfügbar ist:

SchnittstelleWann verwendenEinrichtungReferenz
MCP-ToolsIn MCP-kompatiblen Agenten (Claude Desktop, Windsurf, etc.)madhyamas mcp (stdio-Transport)references/mcp-tools.md
CLI-BefehleShell-Zugriff, Skripterstellung, terminalbasierte Agentenmadhyamas <Befehl> <Unterbefehl>references/cli-commands.md
REST-APIFeingranulare Steuerung, benutzerdefinierte Skripte, direktes HTTPcurl http://localhost:3001/api/...references/rest-api.md

Alle drei Schnittstellen bieten die gleiche zugrunde liegende Funktionalität. MCP-Tools und CLI-Befehle sind Wrapper um die REST-API.

Schlüsselkonzepte

  • Proxy-Ports: Proxy auf :8888 (HTTP/HTTPS-Traffic), API/UI auf :3001
  • CA-Zertifikat: Wird automatisch unter ~/.madhyamas/certs/ generiert. Für HTTPS-Abfangen im Systemvertrauensspeicher installieren
  • Sitzungen: Organisieren Sie den Datenverkehr in benannten Sitzungen. Standardsitzung wird automatisch erstellt
  • Aufzeichnungsmodus: Aufzeichnung (Standard) erfasst Datenverkehr; Durchleitung leitet ohne Aufzeichnung weiter
  • Abfang-Pipeline-Reihenfolge: Umschreibungen (Priorität 10) → Mocks (20) → Haltepunkte (30) → Drosselung (40)
  • Datenverzeichnis: ~/.madhyamas/ enthält certs/, logs/, traffic.db (SQLite)
  • MCP-Server: Führen Sie madhyamas mcp für den stdio-basierten MCP-Transport aus. Setzen Sie MADHYAMAS_API_URL, um eine Verbindung zu einer laufenden Proxy-Instanz herzustellen

Kern-Workflows

WorkflowBeschreibungReferenz
EinrichtungInstallieren, konfigurieren, Clients verbinden, CA-Zertifikat installierensetup.md
Datenverkehr inspizierenErfassten HTTP/HTTPS-Traffic auflisten, filtern, durchsuchen, analysierentraffic-inspection.md
Mock-AntwortenMock-Regeln erstellen, um Anfragen abzufangen und simulierte Antworten zurückzugebenmocking.md
HaltepunkteAnfragen/Antworten anhalten, um sie zu inspizieren und zu modifizierenbreakpoints.md
UmschreibungenURLs, Header, Bodies von passendem Datenverkehr modifizierenrewrites.md
DrosselungLangsame/unzuverlässige Netzwerkbedingungen simulierenthrottling.md
WiedergabeErfasste Anfragen mit Änderungen erneut ausführenreplay.md
SitzungenDebugging-Sitzungen erstellen, wechseln, exportieren, importierensessions.md
gRPC-InspektiongRPC-Verbindungen, Streams, Frames inspizieren (experimentell)grpc.md
SkripterstellungDatenverkehrsmanipulation mit JS/TS-Skripten automatisieren (experimentell)scripting.md
PluginsRust-Plugins für erweiterte Funktionalität verwalten (experimentell)plugins.md
WebSocketsWebSocket-Verbindungsdatenverkehr und -Nachrichten inspizierenwebsockets.md
Export/ImportHAR-Export, cURL-Export, Regel-Persistenzexport-import.md
FehlerbehebungZertifikatsfehler, Portkonflikte, DB-Sperren, TLS-Fehlertroubleshooting.md
Harness-EinrichtungMCP für Claude, Windsurf, Cursor, etc. konfigurierenharness-setup.md

Referenzindex

DateiWann lesen
references/setup.mdErsteinrichtung, Installation, CA-Zertifikat, Client-Konfiguration
references/mcp-tools.mdVollständige Referenz aller 67 MCP-Tools mit Parametern
references/cli-commands.mdVollständige Referenz aller 58 CLI-Unterbefehle mit Flags
references/rest-api.mdVollständige Referenz aller 130+ REST-API-Endpunkte
references/traffic-inspection.mdFiltern, Durchsuchen, Analysieren von erfasstem Datenverkehr
references/mocking.mdErstellen und Verwalten von Mock-Antworten
references/breakpoints.mdAnhalten und Modifizieren von Datenverkehr
references/rewrites.mdURL/Header/Body-Umschreibungsregeln
references/throttling.mdNetzwerkbedingungen simulieren
references/replay.mdAnfragen wiedergeben und speichern
references/sessions.mdSitzungsverwaltung
references/grpc.mdgRPC-Datenverkehrsinspektion
references/scripting.mdJavaScript/TypeScript-Skripterstellung
references/plugins.mdPlugin-Verwaltung
references/websockets.mdWebSocket-Datenverkehrsinspektion
references/export-import.mdHAR/cURL-Export, Persistenz
references/troubleshooting.mdHäufige Probleme und Lösungen
references/harness-setup.mdMCP-Konfiguration pro Umgebung

MCP-Server Einrichtung

Führen Sie den MCP-Server für die KI-Agenten-Integration aus:

madhyamas mcp                    # stdio-Transport, verbindet sich mit localhost:3001
MADHYAMAS_API_URL=http://host:3001 madhyamas mcp  # benutzerdefinierte API-URL

Fügen Sie Folgendes zur MCP-Konfiguration Ihres Agenten hinzu:

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

Siehe references/harness-setup.md für umgebungsspezifische Konfigurationen (Claude Desktop, Windsurf, Cursor, OpenCode, CommandCode, Devin).

Häufige Muster

Fehlgeschlagene API-Aufrufe debuggen:

  1. Proxy starten: madhyamas serve
  2. Client für die Verwendung des Proxys konfigurieren
  3. Problem reproduzieren
  4. Datenverkehr inspizieren: madhyamas traffic list --status 500 oder MCP madhyamas_get_traffic mit status=500
  5. Details abrufen: madhyamas traffic get <id> oder MCP madhyamas_get_traffic_entry

Einen API-Endpunkt mocken:

  1. Mock erstellen: madhyamas mocks create --url-pattern "*/api/auth*" --status-code 200 --body '{"token":"fake"}'
  2. Oder MCP: madhyamas_create_mock mit url_pattern="*/api/auth*", status_code=200, body='{"token":"fake"}'
  3. Den gemockten Endpunkt von Ihrem Client aus testen

Unter langsamen Netzwerkbedingungen testen:

  1. Drosselung aktivieren: madhyamas throttle set --download-bps 50000 --delay-ms 200 && madhyamas throttle enable
  2. Oder MCP: madhyamas_set_throttle mit download_bps=50000, delay_ms=200, enabled=true
  3. Reproduzieren Sie Ihren Workflow, um das Verhalten unter langsamen Bedingungen zu sehen

Verwandte Skills