Sdílet prostřednictvím


stdio

Proxy servery STDIN/STDOUT/STDERR komunikují s místními spustitelnými soubory. Tento příkaz je zvlášť užitečný pro testování a ladění serverů PROTOKOLU MCP (Model Context Protocol) a dalších aplikací založených na STDIO.

Přehled

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

Description

Příkaz stdio spustí podřízený proces a proxy server všechny komunikace STDIN/STDOUT/STDERR. To vám umožní:

  • Kontrola toků zpráv mezi klienty (jako je VS Code) a servery MCP
  • Napodobení odpovědí na testování chování klienta bez spuštění skutečné logiky serveru
  • Ladění problémů s komunikací pomocí nástrojů Pro vývojáře v Chromu
  • Zpracování chyb testů vložením napodobených odpovědí nebo blokováním požadavků
  • Simulace latence komunikace STDIO

Usage

devproxy stdio npx -y @modelcontextprotocol/server-filesystem

Arguments

Název Description Povinné
<command> Příkaz, který se má provést yes
[args...] Argumenty pro předání příkazu no

Možnosti

Název Description Povolené hodnoty Výchozí
-c, --config-file <configFile> Cesta ke konfiguračnímu souboru Cesta k lokálnímu souboru devproxyrc.json
--no-stdio-mocks Zákaz načítání napodobených odpovědí STDIO není k dispozici není k dispozici
--stdio-mocks-file <file> Cesta k souboru obsahujícímu odpovědi napodobení STDIO Cesta k lokálnímu souboru -
--log-level <loglevel> Úroveň zpráv, které se mají protokolovat trace, debug, information, , warningerror information
-?, -h, --help Zobrazení informací o nápovědě a využití není k dispozici není k dispozici

Examples

Spuštění serveru MCP pomocí dev proxy serveru

devproxy stdio npx -y @modelcontextprotocol/server-filesystem

Zadání vlastního konfiguračního souboru

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

Zadání vlastního souboru napodobení

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

Zakázání výsměchů stdio

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

Příklad konfigurace

Pokud chcete použít stdio příkaz s moduly plug-in, vytvořte konfigurační soubor:

Soubor: 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"
  }
}

Podporované pluginy

Následující moduly plug-in podporují průsečík STDIO:

Plugin Description
MockStdioResponsePlugin Napodobení odpovědí STDIN/STDOUT/STDERR
DevToolsPlugin Kontrola provozu STDIO v Chrome DevTools
LatencyPlugin Přidání umělé latence do komunikace STDIO

Architecture

Při použití stdio příkazu funguje dev proxy jako prostředník mezi nadřazeným procesem (například VS Code) a podřízeným procesem (například serverEM MCP):

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

Moduly plug-in jsou vyvolány v pořadí:

  1. BeforeStdinAsync - Před předáním stdin do dítěte
  2. AfterStdoutAsync - Po přijetí stdoutu od dítěte
  3. AfterStderrAsync - Po přijetí stderru od dítěte

Integrace DevTools

Když povolíte DevToolsPlugin, můžete zkontrolovat provoz STDIO v Chrome DevTools:

  • Zprávy se zobrazují s adresami stdio://command-name URL
  • Žádosti se zobrazují jako STDIN metoda
  • Odpovědi se zobrazují jako STDOUT (stav 200) nebo STDERR (500)
  • Texty zpráv se formátují jako JSON, pokud je to možné.

Další krok