Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Communication entre proxys STDIN/STDOUT/STDERR avec des exécutables locaux. Cette commande est particulièrement utile pour tester et déboguer des serveurs MCP (Model Context Protocol) et d’autres applications STDIO.
Synopsis
devproxy stdio [options] <command> [args...]
Descriptif
La stdio commande démarre un processus enfant et proxies toutes les communications STDIN/STDOUT/STDERR. Vous pouvez ainsi :
- Inspecter les messages qui circulent entre les clients (comme VS Code) et les serveurs MCP
- Simuler des réponses pour tester le comportement du client sans exécuter une logique serveur réelle
- Déboguer les problèmes de communication à l’aide de Chrome DevTools
- Tester la gestion des erreurs en injectant des réponses fictives ou en bloquant des demandes
- Simuler la latence sur la communication STDIO
Usage
devproxy stdio npx -y @modelcontextprotocol/server-filesystem
Arguments
| Nom | Descriptif | Obligatoire |
|---|---|---|
<command> |
Commande à exécuter | oui |
[args...] |
Arguments à passer à la commande | Non |
Options
| Nom | Descriptif | Valeurs autorisées | Par défaut |
|---|---|---|---|
-c, --config-file <configFile> |
Le chemin d’accès au fichier de configuration | Chemin de fichier local | devproxyrc.json |
--no-stdio-mocks |
Désactiver le chargement des réponses fictives STDIO | n/a | n/a |
--stdio-mocks-file <file> |
Chemin d’accès au fichier contenant des réponses fictives STDIO | Chemin de fichier local | - |
--log-level <loglevel> |
Niveau de messages à journaliser |
trace, debug, , information, warning, error |
information |
-?, -h, --help |
Afficher les informations d’aide et d’utilisation | n/a | n/a |
Examples
Démarrer un serveur MCP avec le proxy de développement
devproxy stdio npx -y @modelcontextprotocol/server-filesystem
Spécifier un fichier de configuration personnalisé
devproxy stdio --config-file ./my-config.json npx my-server
Spécifier un fichier fictif personnalisé
devproxy stdio --stdio-mocks-file ./my-mocks.json npx my-server
Désactiver les fictives stdio
devproxy stdio --no-stdio-mocks npx my-server
Exemple de configuration
Pour utiliser la stdio commande avec des plug-ins, créez un fichier de configuration :
Fichier : 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-ins pris en charge
Les plug-ins suivants prennent en charge l’interception STDIO :
| Plug-in | Descriptif |
|---|---|
| MockStdioResponsePlugin | Simuler les réponses STDIN/STDOUT/STDERR |
| DevToolsPlugin | Inspecter le trafic STDIO dans Chrome DevTools |
| LatencePlugin | Ajouter une latence artificielle à la communication STDIO |
Architecture
Lorsque vous utilisez la stdio commande, le proxy de développement agit comme intermédiaire entre le processus parent (tel que VS Code) et le processus enfant (tel qu’un serveur MCP) :
┌─────────────────┐ STDIN ┌──────────────────┐ STDIN ┌─────────────────┐
│ Parent Process │ ─────────────▶ │ Dev Proxy │ ─────────────▶ │ Child Process │
│ (VS Code) │ │ │ │ (MCP Server) │
│ │ ◀───────────── │ ┌────────────┐ │ ◀───────────── │ │
└─────────────────┘ STDOUT │ │ Plugins │ │ STDOUT └─────────────────┘
│ └────────────┘ │
└──────────────────┘
Les plug-ins sont appelés dans l’ordre :
-
BeforeStdinAsync- Avant de transférer la stdin à l’enfant -
AfterStdoutAsync- Après avoir reçu stdout de l’enfant -
AfterStderrAsync- Après avoir reçu stderr de l’enfant
Intégration de DevTools
Lorsque vous activez DevToolsPlugin, vous pouvez inspecter le trafic STDIO dans Chrome DevTools :
- Les messages s’affichent avec
stdio://command-namedes URL - Les requêtes s’affichent en tant que
STDINméthode - Les réponses s’affichent en tant que
STDOUT(état 200) ouSTDERR(état 500) - Les corps de message sont mis en forme au format JSON le cas échéant