로컬 실행 파일과 STDIN/STDOUT/STDERR 통신을 프록시합니다. 이 명령은 MCP(모델 컨텍스트 프로토콜) 서버 및 기타 STDIO 기반 애플리케이션을 테스트하고 디버깅하는 데 특히 유용합니다.
개요
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 | 허용되는 값 | Default |
|---|---|---|---|
-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 | Chrome DevTools에서 STDIO 트래픽 검사 |
| LatencyPlugin | STDIO 통신에 인공 대기 시간 추가 |
아키텍처
명령을 사용하는 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을 사용하도록 설정하면 Chrome DevTools에서 STDIO 트래픽을 검사할 수 있습니다.
- URL이 포함된
stdio://command-name메시지 표시 - 요청이 메서드로 표시됨
STDIN - 응답이 (200 상태) 또는
STDERR(500 상태)로STDOUT표시됨 - 메시지 본문은 해당하는 경우 JSON으로 형식이 지정됩니다.
다음 단계
GitHub에서 Microsoft와 공동 작업
이 콘텐츠의 원본은 GitHub에서 찾을 수 있으며, 여기서 문제와 끌어오기 요청을 만들고 검토할 수도 있습니다. 자세한 내용은 참여자 가이드를 참조하세요.
Dev Proxy