次の方法で共有


stdio

ローカル実行可能ファイルとの STDIN/STDOUT/STDERR 通信をプロキシします。 このコマンドは、モデル コンテキスト プロトコル (MCP) サーバーやその他の STDIO ベースのアプリケーションのテストとデバッグに特に役立ちます。

概要

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

Description

stdio コマンドは、子プロセスを開始し、すべての STDIN/STDOUT/STDERR 通信をプロキシ処理します。 こうすることで以下の操作が可能になります。

  • クライアント (VS Code など) と MCP サーバー間で送信されるメッセージを検査する
  • 実際のサーバー ロジックを実行せずにクライアントの動作をテストするためのモック応答
  • Chrome DevTools を使用して通信に関する問題をデバッグする
  • モック応答を挿入するか、要求をブロックしてエラー処理をテストする
  • STDIO 通信の待機時間をシミュレートする

Usage

devproxy stdio npx -y @modelcontextprotocol/server-filesystem

論争

名前 Description 必須
<command> 実行するコマンド yes
[args...] コマンドに渡す引数 no

オプション

名前 Description 使用できる値 既定値
-c, --config-file <configFile> 設定ファイルへのパス ローカル ファイル パス devproxyrc.json
--no-stdio-mocks STDIO モック応答の読み込みを無効にする n/a n/a
--stdio-mocks-file <file> STDIO モック応答を含むファイルへのパス ローカル ファイル パス -
--log-level <loglevel> ログに記録するメッセージのレベル tracedebuginformationwarningerror information
-?, -h, --help ヘルプと使用状況の情報を表示する n/a n/a

例示

開発プロキシを使用して MCP サーバーを起動する

devproxy stdio npx -y @modelcontextprotocol/server-filesystem

カスタム構成ファイルを指定する

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

カスタム モック ファイルを指定する

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

stdio モックを無効にする

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

構成の例

プラグインで stdio コマンドを使用するには、構成ファイルを作成します。

ファイル: 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"
  }
}

サポートされているプラグイン

次のプラグインは、STDIO インターセプトをサポートしています。

プラグイン Description
MockStdioResponsePlugin STDIN/STDOUT/STDERR 応答をモックする
DevToolsPlugin Chrome DevTools で STDIO トラフィックを検査する
LatencyPlugin STDIO 通信に人工待機時間を追加する

Architecture

stdio コマンドを使用する場合、開発プロキシは、親プロセス (VS Code など) と子プロセス (MCP サーバーなど) の間の仲介者として機能します。

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

プラグインは次の順序で呼び出されます。

  1. BeforeStdinAsync - stdin を子に転送する前
  2. AfterStdoutAsync - 子から stdout を受信した後
  3. AfterStderrAsync - 子から stderr を受信した後

DevTools の統合

DevToolsPlugin を有効にすると、Chrome DevTools で STDIO トラフィックを検査できます。

  • stdio://command-name URL と共にメッセージが表示される
  • 要求は STDIN メソッドとして表示されます
  • 応答は、 STDOUT (200 状態) または STDERR (500 状態) として表示されます
  • メッセージ本文は、必要に応じて JSON として書式設定されます

次のステップ