Megosztás:


stdio

Proxyk STDIN/STDOUT/STDERR kommunikáció helyi végrehajtható fájlokkal. Ez a parancs különösen hasznos a Model Context Protocol (MCP) kiszolgálók és más STDIO-alapú alkalmazások teszteléséhez és hibakereséséhez.

Áttekintés

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

Description

A stdio parancs elindít egy gyermekfolyamatot, és minden STDIN/STDOUT/STDERR kommunikációt proxyz. Ez lehetővé teszi a következőket:

  • Ügyfelek (például VS Code) és MCP-kiszolgálók között áramló üzenetek vizsgálata
  • Válaszok szimulálása az ügyfél viselkedésének teszteléséhez tényleges kiszolgálólogika futtatása nélkül
  • Kommunikációs problémák hibakeresése a Chrome DevTools használatával
  • Hibakezelés tesztelése példaválaszok beszúrásával vagy kérések blokkolásával
  • Késés szimulálása AZ STDIO-kommunikációban

Usage

devproxy stdio npx -y @modelcontextprotocol/server-filesystem

Arguments

Név Description Kötelező
<command> A végrehajtandó parancs yes
[args...] A parancsnak átadni kívánt argumentumok no

Beállítások

Név Description Engedélyezett értékek Alapértelmezett
-c, --config-file <configFile> A konfigurációs fájl elérési útja Helyi fájl elérési útja devproxyrc.json
--no-stdio-mocks STDIO-mintaválaszok betöltésének letiltása nincs adat nincs adat
--stdio-mocks-file <file> Az STDIO-mintaválaszokat tartalmazó fájl elérési útja Helyi fájl elérési útja -
--log-level <loglevel> Naplózandó üzenetek szintje trace, debug, information, warning, , error information
-?, -h, --help Súgó és használati adatok megjelenítése nincs adat nincs adat

Példák

MCP-kiszolgáló indítása dev proxyval

devproxy stdio npx -y @modelcontextprotocol/server-filesystem

Egyéni konfigurációs fájl megadása

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

Egyéni modellfájl megadása

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

Stdio mocks letiltása

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

Példa konfigurációra

A parancs beépülő modulokkal való használatához stdio hozzon létre egy konfigurációs fájlt:

Fájl: 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": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/devtoolsplugin.schema.json",
    "preferredBrowser": "Edge"
  },
  "mockStdioResponsePlugin": {
    "$schema": "https://raw.githubusercontent.com/dotnet/dev-proxy/main/schemas/v2.1.0/mockstdioresponseplugin.schema.json",
    "mocksFile": "stdio-mocks.json"
  }
}

Támogatott beépülő modulok

Az alábbi beépülő modulok támogatják az STDIO elfogását:

Beépülő modul Description
MockStdioResponsePlugin STDIN/STDOUT/STDERR-válaszok kipukkantatása
DevToolsPlugin STDIO-forgalom vizsgálata a Chrome DevToolsban
LatencyPlugin Mesterséges késés hozzáadása az STDIO-kommunikációhoz

Architecture

A parancs használatakor a stdio Dev Proxy közvetítőként működik a szülőfolyamat (például a VS Code) és a gyermekfolyamat (például egy MCP-kiszolgáló) között:

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

A beépülő modulok a következő sorrendben hívhatók meg:

  1. BeforeStdinAsync - A stdin gyermeknek való továbbítása előtt
  2. AfterStdoutAsync - A gyermektől kapott stdout után
  3. AfterStderrAsync - A stderr gyermektől való fogadása után

DevTools-integráció

A DevToolsPlugin engedélyezésekor megvizsgálhatja az STDIO-forgalmat a Chrome DevToolsban:

  • Az üzenetek URL-címekkel stdio://command-name jelennek meg
  • A kérések metódusként STDIN jelennek meg
  • A válaszok a következőként STDOUT jelennek meg: (200 állapot) vagy STDERR (500 állapot)
  • Az üzenettörzsek adott esetben JSON-ként vannak formázva

Következő lépés