Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Proxies COMUNICACIÓN STDIN/STDOUT/STDERR con ejecutables locales. Este comando es especialmente útil para probar y depurar servidores del Protocolo de contexto de modelo (MCP) y otras aplicaciones basadas en STDIO.
Sinopsis
devproxy stdio [options] <command> [args...]
Description
El stdio comando inicia un proceso secundario y proxies toda la comunicación STDIN/STDOUT/STDERR. Esto le permite:
- Inspección de mensajes que fluyen entre clientes (como VS Code) y servidores MCP
- Respuestas ficticias para probar el comportamiento del cliente sin ejecutar lógica de servidor real
- Depuración de problemas de comunicación mediante Chrome DevTools
- Control de errores de prueba mediante la inserción de respuestas simuladas o solicitudes de bloqueo
- Simulación de latencia en la comunicación STDIO
Usage
devproxy stdio npx -y @modelcontextprotocol/server-filesystem
Arguments
| Nombre | Description | Obligatorio |
|---|---|---|
<command> |
Comando que se va a ejecutar | Sí |
[args...] |
Argumentos que se pasan al comando | no |
Options
| Nombre | Description | Valores permitidos | Predeterminado |
|---|---|---|---|
-c, --config-file <configFile> |
La ruta de acceso al archivo de configuración | Ruta de acceso de archivo local | devproxyrc.json |
--no-stdio-mocks |
Deshabilitar la carga de respuestas ficticias de STDIO | n/a | n/a |
--stdio-mocks-file <file> |
Ruta de acceso al archivo que contiene respuestas ficticias STDIO | Ruta de acceso de archivo local | - |
--log-level <loglevel> |
Nivel de mensajes que se van a registrar |
trace, debug, information, , warning, error |
information |
-?, -h, --help |
Mostrar información de ayuda y uso | n/a | n/a |
Examples
Inicio de un servidor MCP con proxy de desarrollo
devproxy stdio npx -y @modelcontextprotocol/server-filesystem
Especificar un archivo de configuración personalizado
devproxy stdio --config-file ./my-config.json npx my-server
Especificar un archivo ficticio personalizado
devproxy stdio --stdio-mocks-file ./my-mocks.json npx my-server
Deshabilitación de stdio mocks
devproxy stdio --no-stdio-mocks npx my-server
Ejemplo de configuración
Para usar el stdio comando con complementos, cree un archivo de configuración:
Archivo: 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"
}
}
Complementos admitidos
Los complementos siguientes admiten la interceptación STDIO:
| Complemento | Description |
|---|---|
| MockStdioResponsePlugin | Simulación de respuestas STDIN/STDOUT/STDERR |
| DevToolsPlugin | Inspección del tráfico STDIO en Chrome DevTools |
| LatencyPlugin | Adición de latencia artificial a la comunicación STDIO |
Architecture
Cuando se usa el comando , dev stdio Proxy actúa como intermediario entre el proceso primario (como VS Code) y el proceso secundario (como un servidor MCP):
┌─────────────────┐ STDIN ┌──────────────────┐ STDIN ┌─────────────────┐
│ Parent Process │ ─────────────▶ │ Dev Proxy │ ─────────────▶ │ Child Process │
│ (VS Code) │ │ │ │ (MCP Server) │
│ │ ◀───────────── │ ┌────────────┐ │ ◀───────────── │ │
└─────────────────┘ STDOUT │ │ Plugins │ │ STDOUT └─────────────────┘
│ └────────────┘ │
└──────────────────┘
Los complementos se invocan en orden:
-
BeforeStdinAsync- Antes de reenviar stdin a child -
AfterStdoutAsync- Después de recibir stdout del niño -
AfterStderrAsync- Después de recibir stderr del niño
Integración de DevTools
Al habilitar DevToolsPlugin, puede inspeccionar el tráfico STDIO en Chrome DevTools:
- Los mensajes aparecen con
stdio://command-namedirecciones URL - Las solicitudes se muestran como
STDINmétodo - Las respuestas se muestran como
STDOUT(estado 200) oSTDERR(estado 500) - Los cuerpos del mensaje tienen el formato JSON cuando corresponda.