Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Прокси-серверы STDIN/STDOUT/STDERR обмен данными с локальными исполняемыми файлами. Эта команда особенно полезна для тестирования и отладки серверов протокола контекста модели (MCP) и других приложений на основе STDIO.
Synopsis
devproxy stdio [options] <command> [args...]
Description
Команда stdio запускает дочерний процесс и прокси-серверы всех подключений STDIN/STDOUT/STDERR. Это позволяет:
- Проверка сообщений между клиентами (например, VS Code) и серверами MCP
- Макет ответов на тестирование поведения клиента без выполнения фактической логики сервера
- Отладка проблем с взаимодействием с помощью Chrome DevTools
- Тестирование обработки ошибок путем внедрения макетных ответов или блокирования запросов
- Имитация задержки при обмене данными STDIO
Usage
devproxy stdio npx -y @modelcontextprotocol/server-filesystem
Arguments
| Имя | Description | Обязательно |
|---|---|---|
<command> |
Команда для выполнения | yes |
[args...] |
Аргументы для передачи команде | no |
Options
| Имя | 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, warningerror |
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 | Ответы Mock STDIN/STDOUT/STDERR |
| DevToolsPlugin | Проверка трафика STDIO в Chrome DevTools |
| Плагин задержки | Добавление искусственной задержки в связь 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, вы можете проверить трафик STDIO в Chrome DevTools:
- Сообщения отображаются с
stdio://command-nameURL-адресами - Запросы отображаются как
STDINметод - Ответы отображаются как
STDOUT(состояние 200) илиSTDERR(500 состояний) - Тела сообщений форматируются в формате JSON при необходимости