구성과 플래그
mcp-inspector 바이너리는 실행기입니다. 자체 플래그 두 개를 읽고 나머지 모든 인수를 세 클라이언트(웹, CLI, TUI) 중 하나로 전달합니다. 각 클라이언트는 자체 플래그를 정의하므로 한 클라이언트에서 동작하는 플래그를 다른 클라이언트에서는 인식하지 못할 수 있습니다(예를 들어 --method는 CLI 전용입니다). 이 페이지에서는 플래그와 환경 변수를 이를 소유하는 클라이언트별로 정리합니다.
실행기가 소유하는 것은 정확히 두 가지입니다
| 플래그 | 동작 |
|---|---|
--web / --cli / --tui | 클라이언트를 선택하며 기본값은 --web입니다. 둘 이상을 전달하면 Specify at most one of --web, --cli, or --tui. 오류가 발생합니다. 실행기 플래그는 맨 앞에 와야 합니다. 실행기가 소유하지 않은 첫 번째 인수에서 파싱을 멈추고, 그 지점부터의 모든 인수를 변경하지 않은 채 클라이언트로 전달합니다. |
-h / --help | 모드 플래그가 없으면 실행기 자체 도움말을 출력하고 종료합니다. 모드 플래그와 함께 사용하면 해당 클라이언트로 전달되므로 mcp-inspector --cli --help는 CLI 도움말을 출력합니다. |
아래의 모든 항목은 클라이언트에 속합니다.
서버 선택
--catalog와 --config
세 클라이언트 모두 동일한 공유 코드를 통해 --catalog와 --config를 해석하므로 각 플래그는 웹 앱, CLI, TUI에서 똑같이 동작합니다. 두 플래그 사이의 차이는 아래 표와 같습니다.
--catalog <path> | --config <path> | |
|---|---|---|
| 쓰기 가능 여부 | 가능합니다. Inspector 자체 서버 목록입니다. | 불가능합니다. 있는 그대로 제공하며 쓰기, 초기화, 마이그레이션을 하지 않습니다. |
| 파일이 없을 때 | 파일을 만들고 초기값을 채웁니다(아래 참고). | 오류가 발생합니다. |
| 기본값 | ~/.mcp-inspector/mcp.json 또는 MCP_CATALOG_PATH 환경 변수입니다. | 없습니다. 반드시 직접 전달해야 합니다. |
| 웹 UI에서 편집 가능 | 가능합니다. | 불가능합니다. |
| 적합한 용도 | 직접 관리하는 서버 작업 목록입니다. | 다른 사람의 구성 파일을 대상으로 하는 읽기 전용 세션입니다. |
두 플래그는 상호 배타적이며, 어느 쪽도 임시 대상과 함께 사용할 수 없습니다. 둘 다 전달하면 세 클라이언트 모두 동일하게 거부합니다.
임시 대상
파일 대신 서버 하나를 직접 지정할 수 있습니다. 위치 인수 명령(stdio)이나 URL을 사용할 수 있습니다.
mcp-inspector node build/index.js # stdio, positional
mcp-inspector --server-url https://api.example.com/mcp --transport http
공유 서버 선택 플래그
웹, CLI, TUI가 각각 별도로 정의하므로 아래 플래그는 세 클라이언트 모두에서 사용할 수 있습니다. 차이가 있는 항목은 별도로 표시했습니다.
| 플래그 | 의미 | 차이 |
|---|---|---|
--catalog <path> | 쓰기 가능한 카탈로그 파일입니다. | 없음 |
--config <path> | 읽기 전용 세션 파일입니다. | 없음 |
--server <name> | 파일에서 이름이 지정된 서버 하나를 선택합니다. | 웹과 CLI에서만 사용할 수 있습니다. TUI는 파일의 모든 서버를 불러와 대화형으로 선택하게 합니다. |
--transport <type> | stdio, sse, http 중 하나입니다. | 임시 대상에만 적용됩니다. |
--server-url <url> | SSE/HTTP 서버 URL입니다. | 임시 대상에만 적용됩니다. |
--cwd <path> | stdio 서버 프로세스의 작업 디렉터리입니다. | 없음 |
-e <KEY=VALUE> | stdio 서버의 환경 변수입니다. 반복할 수 있습니다. | 없음 |
--header "Name: Value" | HTTP/SSE 서버의 HTTP 헤더입니다. 반복할 수 있습니다. | 웹 클라이언트에서는 임시 HTTP/SSE 서버가 필요합니다. |
[target...] | 임시 서버 하나의 위치 인수 명령/URL입니다. | 없음 |
-- 구분자
웹과 CLI 클라이언트는 단독 --를 기준으로 인수를 나누고 그 뒤의 모든 값을 대상 명령 자체의 인수로 전달합니다. Inspector가 다른 용도로 처리할 플래그를 대상에 전달할 때 사용합니다.
mcp-inspector node build/index.js -- --config /etc/myserver.conf --verbose
구분자가 없으면 --config는 Inspector 자체의 읽기 전용 세션 플래그로 해석됩니다.
웹 전용 플래그
| 플래그 | 의미 |
|---|---|
--dev | 미리 빌드된 번들 대신 Vite 개발 서버를 실행합니다. Inspector 자체를 개발할 때 유용합니다. |
CLI와 TUI: OAuth 클라이언트 플래그
아래 다섯 가지는 CLI와 TUI에서만 정의됩니다. 웹 클라이언트에서는 Client Settings 대화상자에서 같은 설정을 지정합니다.
| 플래그 | 환경 변수 | 의미 |
|---|---|---|
--client-config <path> | MCP_CLIENT_CONFIG_PATH | 설치 단위 클라이언트 구성입니다. 기본값은 ~/.mcp-inspector/storage/client.json입니다. |
--client-id <id> | 없음 | 정적 클라이언트의 OAuth 클라이언트 ID입니다. client.json 값을 재정의합니다. |
--client-secret <secret> | 없음 | 기밀 클라이언트의 OAuth 클라이언트 비밀 값입니다. client.json 값을 재정의합니다. |
--client-metadata-url <url> | 없음 | CIMD 메타데이터 URL입니다. client.json 값을 재정의합니다. |
--callback-url <url> | MCP_OAUTH_CALLBACK_URL | 권한 부여 서버로 보내는 리디렉션 URI입니다. 기본값은 http://127.0.0.1:6276/oauth/callback입니다. 루프백 호스트(127.0.0.1 또는 localhost)여야 합니다. 로컬 콜백 리스너가 평문 http로 권한 부여 코드를 받기 때문에 다른 호스트는 거부되며 이 제한을 재정의하는 플래그는 없습니다. |
CLI 전용 플래그
전체 스크립팅 인터페이스는 CLI에 속합니다. 사용법은 CLI 클라이언트를 참고하세요.
| 그룹 | 플래그 |
|---|---|
| 호출할 대상 | --method, --tool-name, --tool-arg, --tool-args-json, --uri, --prompt-name, --prompt-args, --log-level, --metadata, --tool-metadata |
| 실행 방법 | --connect-timeout, --format, --app-info |
| 인증 | --use-stored-auth, --stored-auth-only, --relogin, --wait-for-auth, --list-stored-auth, --print-handoff |
환경 변수
환경 변수도 플래그와 같은 방식으로 나뉩니다. 두 개는 실행기 자체에서 읽고 나머지는 CLI와 TUI 또는 웹 백엔드에 속합니다.
실행기가 읽는 변수
| 변수 | 효과 |
|---|---|
MCP_DEBUG | 최상위 오류에 오류 스택을 덧붙입니다. 의미 있는 값으로 설정한 경우에만 활성화됩니다. 0, false, 빈 값은 비활성으로 해석합니다. |
DEBUG | 같은 의미 있는 값 규칙을 적용합니다. 따라서 우연히 설정된 DEBUG=0이 스택 추적을 켜지 않으며, DEBUG는 여전히 npm debug 패키지의 네임스페이스 필터로 사용할 수 있습니다. |
CLI와 TUI
| 변수 | 효과 |
|---|---|
MCP_CATALOG_PATH | --catalog의 대체 값입니다. 임시 대상을 지정하지 않았을 때만 적용되므로, 셸에서 이 변수를 내보낸 상태에서도 일회성 임시 호출을 실행할 수 있습니다. |
MCP_CLIENT_CONFIG_PATH | --client-config의 대체 값입니다. |
MCP_OAUTH_CALLBACK_URL | --callback-url의 대체 값입니다. |
MCP_STORAGE_DIR | OAuth 상태 파일(<dir>/oauth.json)의 디렉터리입니다. |
MCP_INSPECTOR_OAUTH_STATE_PATH | OAuth 상태 경로의 파일별 재정의 값입니다. MCP_STORAGE_DIR보다 우선합니다. |
MCP_AUTO_OPEN_ENABLED | 브라우저 자동 열기와 TTY 없이 대화형 OAuth를 실행할 수 있는지를 제어합니다. true는 자동 열기를 강제하고 TTY 없는 OAuth 프롬프트를 허용하며, false는 열지 않고, 설정하지 않으면 TTY에서만 엽니다. |
웹 백엔드 환경 변수
| 변수 | 효과 |
|---|---|
MCP_INSPECTOR_API_TOKEN | 실행할 때마다 무작위로 생성하는 대신 세션 토큰을 고정합니다. |
DANGEROUSLY_OMIT_AUTH | /api/* 토큰 검사를 완전히 비활성화합니다. |
HOST | 바인드 호스트입니다. 기본값은 localhost입니다. |
CLIENT_PORT | 웹 UI 포트입니다. 기본값은 6274입니다. |
DANGEROUSLY_BIND_ALL_INTERFACES | 와일드카드 호스트(0.0.0.0, :: 또는 이에 해당하는 표기)에 바인딩할 때 필요한 명시적 동의입니다. |
ALLOWED_ORIGINS | 쉼표로 구분한 허용 오리진 목록입니다. 기본 목록과 병합하지 않고 대체합니다. |
MCP_SANDBOX_PORT | 기본적으로 동적으로 정해지는 MCP Apps 샌드박스 포트를 고정합니다. |
HTTPS_PROXY / HTTP_PROXY / NO_PROXY | 외부 MCP 연결에 사용하는 표준 프록시 라우팅입니다. |
카탈로그 파일 형식
카탈로그 또는 구성 파일은 익숙한 MCP 클라이언트 구성 형태(mcpServers 객체)에 서버별 Inspector 설정을 더한 형식입니다.
{
"mcpServers": {
"my-stdio-server": {
"command": "node",
"args": ["build/index.js"],
"env": { "API_KEY": "..." }
},
"my-modern-server": {
"type": "http",
"url": "https://api.example.com/mcp",
"protocolEra": "modern",
"modernLogLevel": "info",
"headers": { "X-Tenant": "acme" },
"roots": [{ "uri": "file:///Users/me/project", "name": "project" }]
}
}
}
Inspector가 파일을 다시 쓸 때는 기본값과 같은 필드를 생략하여 diff를 최소화합니다. protocolEra(자세한 내용은 프로토콜 시대 참고)의 기본값은 legacy이고 modernLogLevel의 기본값은 debug입니다.
이 파일을 직접 작성할 필요는 없습니다. 웹 클라이언트에서 Claude Desktop, Cursor, Cline, VS Code 또는 레지스트리 server.json의 기존 클라이언트 구성을 가져올 수 있습니다.