Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Serwery proxy STDIN/STDOUT/STDERR komunikacji z lokalnymi plikami wykonywalnymi. To polecenie jest szczególnie przydatne do testowania i debugowania serwerów protokołu MCP (Model Context Protocol) i innych aplikacji opartych na programie STDIO.
Streszczenie
devproxy stdio [options] <command> [args...]
Description
Polecenie stdio uruchamia proces podrzędny i serwer proxy wszystkich komunikacji STDIN/STDOUT/STDERR. Umożliwia to:
- Inspekcja komunikatów przepływających między klientami (takimi jak PROGRAM VS Code) i serwerami MCP
- Pozorowanie odpowiedzi na testowanie zachowania klienta bez uruchamiania rzeczywistej logiki serwera
- Debugowanie problemów z komunikacją przy użyciu narzędzia Chrome DevTools
- Testowanie obsługi błędów przez wstrzyknięcie pozornych odpowiedzi lub blokowanie żądań
- Symulowanie opóźnienia komunikacji STDIO
Usage
devproxy stdio npx -y @modelcontextprotocol/server-filesystem
Arguments
| Name | Description | Wymagane |
|---|---|---|
<command> |
Polecenie do wykonania | yes |
[args...] |
Argumenty do przekazania do polecenia | no |
Opcje
| Name | Description | Dozwolone wartości | Default |
|---|---|---|---|
-c, --config-file <configFile> |
Ścieżka do pliku konfiguracyjnego | Ścieżka do pliku lokalnego | devproxyrc.json |
--no-stdio-mocks |
Wyłączanie ładowania odpowiedzi pozornych STDIO | n/a | n/a |
--stdio-mocks-file <file> |
Ścieżka do pliku zawierającego odpowiedzi pozorne STDIO | Ścieżka do pliku lokalnego | - |
--log-level <loglevel> |
Poziom komunikatów do rejestrowania |
trace, , debug, information, , warningerror |
information |
-?, -h, --help |
Pokaż informacje pomocy i użycia | n/a | n/a |
Przykłady
Uruchamianie serwera MCP za pomocą serwera proxy deweloperskiego
devproxy stdio npx -y @modelcontextprotocol/server-filesystem
Określanie niestandardowego pliku konfiguracji
devproxy stdio --config-file ./my-config.json npx my-server
Określanie niestandardowego pliku makiety
devproxy stdio --stdio-mocks-file ./my-mocks.json npx my-server
Wyłączanie makiety stdio
devproxy stdio --no-stdio-mocks npx my-server
Przykład konfiguracji
Aby użyć stdio polecenia z wtyczkami, utwórz plik konfiguracji:
Plik: 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"
}
}
Obsługiwane wtyczki
Następujące wtyczki obsługują przechwytywanie STDIO:
| Wtyczka | Description |
|---|---|
| MockStdioResponsePlugin | Pozorowanie odpowiedzi STDIN/STDOUT/STDERR |
| DevToolsPlugin | Inspekcja ruchu STDIO w narzędziu Chrome DevTools |
| OpóźnieniePlugin | Dodawanie sztucznego opóźnienia do komunikacji STDIO |
Architecture
W przypadku korzystania z stdio polecenia serwer proxy deweloperów działa jako środek pośredniczący między procesem nadrzędnym (takim jak program VS Code) i procesem podrzędnym (takim jak serwer MCP):
┌─────────────────┐ STDIN ┌──────────────────┐ STDIN ┌─────────────────┐
│ Parent Process │ ─────────────▶ │ Dev Proxy │ ─────────────▶ │ Child Process │
│ (VS Code) │ │ │ │ (MCP Server) │
│ │ ◀───────────── │ ┌────────────┐ │ ◀───────────── │ │
└─────────────────┘ STDOUT │ │ Plugins │ │ STDOUT └─────────────────┘
│ └────────────┘ │
└──────────────────┘
Wtyczki są wywoływane w kolejności:
-
BeforeStdinAsync- Przed przekazaniem stdin do dziecka -
AfterStdoutAsync- Po otrzymaniu stdout od dziecka -
AfterStderrAsync- Po otrzymaniu stderr od dziecka
Integracja narzędzia DevTools
Po włączeniu narzędzia DevToolsPlugin możesz sprawdzić ruch STDIO w narzędziu Chrome DevTools:
- Komunikaty są wyświetlane z adresami
stdio://command-nameURL - Żądania są wyświetlane jako
STDINmetoda - Odpowiedzi są wyświetlane jako
STDOUT(stan 200) lubSTDERR(stan 500) - Treści komunikatów są formatowane w formacie JSON, jeśli ma to zastosowanie