ローカル実行可能ファイルとの 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> |
ログに記録するメッセージのレベル |
trace、 debug、 information、 warning、 error |
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 └─────────────────┘
│ └────────────┘ │
└──────────────────┘
プラグインは次の順序で呼び出されます。
-
BeforeStdinAsync- stdin を子に転送する前 -
AfterStdoutAsync- 子から stdout を受信した後 -
AfterStderrAsync- 子から stderr を受信した後
DevTools の統合
DevToolsPlugin を有効にすると、Chrome DevTools で STDIO トラフィックを検査できます。
-
stdio://command-nameURL と共にメッセージが表示される - 要求は
STDINメソッドとして表示されます - 応答は、
STDOUT(200 状態) またはSTDERR(500 状態) として表示されます - メッセージ本文は、必要に応じて JSON として書式設定されます
次のステップ
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
Dev Proxy