Freigeben über


stdio

Proxys STDIN/STDOUT/STDERR-Kommunikation mit lokalen ausführbaren Dateien. Dieser Befehl eignet sich besonders zum Testen und Debuggen von MCP-Servern (Model Context Protocol) und anderen STDIO-basierten Anwendungen.

Zusammenfassung

devproxy stdio [options] <command> [args...]

Description

Der stdio Befehl startet einen untergeordneten Prozess und proxys alle STDIN/STDOUT/STDERR-Kommunikationen. Dies ermöglicht Ihnen Folgendes:

  • Überprüfen von Nachrichten, die zwischen Clients (z. B. VS Code) und MCP-Servern fließen
  • Simulierte Antworten zum Testen des Clientverhaltens ohne Ausführung der tatsächlichen Serverlogik
  • Debuggen von Kommunikationsproblemen mithilfe von Chrome DevTools
  • Testen der Fehlerbehandlung durch Einfügen simulierter Antworten oder Blockieren von Anforderungen
  • Simulieren der Latenz bei DER STDIO-Kommunikation

Usage

devproxy stdio npx -y @modelcontextprotocol/server-filesystem

Arguments

Name Description Erforderlich
<command> Der auszuführende Befehl ja
[args...] Argumente, die an den Befehl übergeben werden sollen nein

Options

Name Description Zulässige Werte Standard
-c, --config-file <configFile> Der Pfad zur Konfigurationsdatei Lokaler Dateipfad devproxyrc.json
--no-stdio-mocks Deaktivieren des Ladens von STDIO-Pseudoantworten n/a n/a
--stdio-mocks-file <file> Pfad zur Datei mit STDIO-Mockantworten Lokaler Dateipfad -
--log-level <loglevel> Ebene der zu protokollierenden Nachrichten trace, , debuginformation, , warningerror information
-?, -h, --help Anzeigen von Hilfe- und Nutzungsinformationen n/a n/a

Examples

Starten eines MCP-Servers mit Dev Proxy

devproxy stdio npx -y @modelcontextprotocol/server-filesystem

Angeben einer benutzerdefinierten Konfigurationsdatei

devproxy stdio --config-file ./my-config.json npx my-server

Angeben einer benutzerdefinierten Mocks-Datei

devproxy stdio --stdio-mocks-file ./my-mocks.json npx my-server

Deaktivieren von Stdio-Mocks

devproxy stdio --no-stdio-mocks npx my-server

Konfigurationsbeispiel

Um den stdio Befehl mit Plug-Ins zu verwenden, erstellen Sie eine Konfigurationsdatei:

Datei: devproxyrc.json

{
  "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/rc.schema.json",
  "plugins": [
    {
      "name": "MockStdioResponsePlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "mockStdioResponsePlugin"
    },
    {
      "name": "DevToolsPlugin",
      "enabled": true,
      "pluginPath": "~appFolder/plugins/DevProxy.Plugins.dll",
      "configSection": "devTools"
    }
  ],
  "devTools": {
    "preferredBrowser": "Edge"
  },
  "mockStdioResponsePlugin": {
    "mocksFile": "stdio-mocks.json"
  }
}

Unterstützte Plug-Ins

Die folgenden Plug-Ins unterstützen STDIO Interception:

Plug-In Description
MockStdioResponsePlugin Simulierte STDIN/STDOUT/STDERR-Antworten
DevToolsPlugin Überprüfen von STDIO-Datenverkehr in Chrome DevTools
LatencyPlugin Hinzufügen einer künstlichen Latenz zur STDIO-Kommunikation

Architektur

Bei Verwendung des stdio Befehls fungiert Dev Proxy als Vermittler zwischen dem übergeordneten Prozess (z. B. VS Code) und dem untergeordneten Prozess (z. B. einem MCP-Server):

┌─────────────────┐     STDIN      ┌──────────────────┐     STDIN      ┌─────────────────┐
│  Parent Process │ ─────────────▶ │   Dev Proxy      │ ─────────────▶ │  Child Process  │
│   (VS Code)     │                │                  │                │   (MCP Server)  │
│                 │ ◀───────────── │  ┌────────────┐  │ ◀───────────── │                 │
└─────────────────┘    STDOUT      │  │  Plugins   │  │    STDOUT      └─────────────────┘
                                   │  └────────────┘  │
                                   └──────────────────┘

Plugins werden in der Reihenfolge aufgerufen:

  1. BeforeStdinAsync - Vor dem Weiterleiten von Stdin an das Kind
  2. AfterStdoutAsync - Nach Erhalt von Stdout von Kind
  3. AfterStderrAsync - Nach Erhalt von Stderr von Kind

DevTools-Integration

Wenn Sie devToolsPlugin aktivieren, können Sie DEN STDIO-Datenverkehr in Chrome DevTools überprüfen:

  • Nachrichten werden mit stdio://command-name URLs angezeigt
  • Anforderungen werden als STDIN Methode angezeigt
  • Antworten werden als STDOUT (200 Status) oder STDERR (500 Status) angezeigt.
  • Nachrichtentexte werden bei Bedarf als JSON formatiert.

Nächster Schritt