Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Proxy di comunicazione STDIN/STDOUT/STDERR con eseguibili locali. Questo comando è particolarmente utile per testare e eseguire il debug di server MCP (Model Context Protocol) e altre applicazioni basate su STDIO.
Synopsis
devproxy stdio [options] <command> [args...]
Description
Il stdio comando avvia un processo figlio e proxy tutte le comunicazioni STDIN/STDOUT/STDERR. In questo modo è possibile:
- Esaminare i messaggi trasmessi tra client (ad esempio VS Code) e server MCP
- Simulare le risposte per testare il comportamento del client senza eseguire la logica effettiva del server
- Eseguire il debug dei problemi di comunicazione con Chrome DevTools
- Testare la gestione degli errori inserendo risposte fittizie o bloccando le richieste
- Simulare la latenza nella comunicazione STDIO
Usage
devproxy stdio npx -y @modelcontextprotocol/server-filesystem
Arguments
| Nome | Description | Obbligatorio |
|---|---|---|
<command> |
Comando da eseguire | yes |
[args...] |
Argomenti da passare al comando | no |
Options
| Nome | Description | Valori consentiti | Impostazione predefinita |
|---|---|---|---|
-c, --config-file <configFile> |
Il percorso del file di configurazione | Percorso del file locale | devproxyrc.json |
--no-stdio-mocks |
Disabilitare il caricamento di risposte fittizie STDIO | non disponibile | non disponibile |
--stdio-mocks-file <file> |
Percorso del file contenente risposte fittizie STDIO | Percorso del file locale | - |
--log-level <loglevel> |
Livello di messaggi da registrare |
trace, debug, information, , warning, error |
information |
-?, -h, --help |
Visualizzare informazioni sulla Guida e sull'utilizzo | non disponibile | non disponibile |
Esempi
Avviare un server MCP con Dev Proxy
devproxy stdio npx -y @modelcontextprotocol/server-filesystem
Specificare un file di configurazione personalizzato
devproxy stdio --config-file ./my-config.json npx my-server
Specificare un file fittizio personalizzato
devproxy stdio --stdio-mocks-file ./my-mocks.json npx my-server
Disabilitare i mock stdio
devproxy stdio --no-stdio-mocks npx my-server
Esempio di configurazione
Per usare il stdio comando con i plug-in, creare un file di configurazione:
File: 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"
}
}
Plug-in supportati
I plug-in seguenti supportano l'intercettazione STDIO:
| Plug-in | Description |
|---|---|
| MockStdioResponsePlugin | Simulare le risposte STDIN/STDOUT/STDERR |
| DevToolsPlugin | Esaminare il traffico STDIO in Chrome DevTools |
| LatencyPlugin | Aggiungere la latenza artificiale alla comunicazione STDIO |
Architecture
Quando si usa il stdio comando, Dev Proxy funge da middleman tra il processo padre (ad esempio VS Code) e il processo figlio (ad esempio un server MCP):
┌─────────────────┐ STDIN ┌──────────────────┐ STDIN ┌─────────────────┐
│ Parent Process │ ─────────────▶ │ Dev Proxy │ ─────────────▶ │ Child Process │
│ (VS Code) │ │ │ │ (MCP Server) │
│ │ ◀───────────── │ ┌────────────┐ │ ◀───────────── │ │
└─────────────────┘ STDOUT │ │ Plugins │ │ STDOUT └─────────────────┘
│ └────────────┘ │
└──────────────────┘
I plug-in vengono richiamati in ordine:
-
BeforeStdinAsync- Prima di inoltrare stdin al figlio -
AfterStdoutAsync- Dopo aver ricevuto stdout dal figlio -
AfterStderrAsync- Dopo aver ricevuto stderr dal figlio
Integrazione di DevTools
Quando si abilita DevToolsPlugin, è possibile controllare il traffico STDIO in Chrome DevTools:
- I messaggi vengono visualizzati con
stdio://command-nameURL - Le richieste mostrano come
STDINmetodo - Le risposte mostrano come
STDOUT(200 stato) oSTDERR(500 stato) - I corpi dei messaggi vengono formattati come JSON quando applicabile