구성과 플래그
구성과 플래그 (Configuration and flags)
카탈로그 대 구성 파일, 각 클라이언트가 소유한 플래그, 그리고 모든 환경 변수를 다루는 문서예요. mcp-inspector 바이너리는 런처로, 자신의 플래그 두 개를 읽고 다른 모든 인수를 세 클라이언트(web, CLI, TUI) 중 하나에 전달합니다.
출처: 문서
본문
mcp-inspector 바이너리는 런처예요. 두 개의 자체 플래그를 읽고 나머지 모든 인수를 세 클라이언트(web, 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를 같은 공유 코드로 처리해서, 각 플래그는 web 앱, CLI, TUI에서 동일하게 동작해요. 둘이 서로 다른 점은 아래 표와 같습니다.
--catalog <path> |
--config <path> |
|
|---|---|---|
| 쓰기 가능? | 예, Inspector의 자체 서버 목록. | 아니요. 있는 그대로 서빙하고, 절대 쓰지 않고 시드하지 않으며 마이그레이션하지 않음. |
| 파일 없음? | 생성되고 시드됨(아래 참고). | 오류. |
| 기본값 | ~/.mcp-inspector/mcp.json, 또는 MCP_CATALOG_PATH 환경 변수. |
없음. 직접 전달해야 함. |
| Web UI에서 편집? | 예. | 아니요. |
| 용도 | 나만의 작업 서버 집합. | 다른 사람의 구성 파일에 대한 읽기 전용 세션. |
둘은 상호 배타적이며, 어느 것도 임시 대상과 결합되지 않아요. 둘 다 전달하면 세 클라이언트 모두 동일하게 거부합니다.
갓 시드된 카탈로그의 내용은 클라이언트에 따라 달라요. Web 백엔드는 두 개의 샘플 서버를 시드해서 첫 실행에 연결할 것이 즉시 있게 합니다.
{ "mcpServers": { "filesystem-server-default": { "type": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] }, "everything-server-default": { "type": "stdio", "command": "npx", "args": ["-y", "@modelcontextprotocol/server-everything"] } } }CLI와 TUI는 대신 빈
{ "mcpServers": {} }를 시드해요. 이들은 비상호작용적이거나 목록 기반이라서, 샘플 항목은 출발점이 아니라 잡음이 되기 때문이죠.어느 쪽이든 시드는 파일이 아직 없을 때만 일어나며, 읽기 전용
--config는 절대 시드되지 않아요.
--config는 Inspector가 쓰지 않은 구성 파일(동료의 것, 클라이언트 애플리케이션의 것, 저장소에 체크인된 것)을 가리킬 때 사용하면 돼요. Inspector가 그 파일을 건드리지 않음을 보장합니다.
임시 대상 (Ad-hoc targets)
파일 대신 서버 하나를 직접, 위치 인수 명령(stdio) 또는 URL로 이름 붙일 수 있어요.
mcp-inspector node build/index.js # stdio, positional
mcp-inspector --server-url https://api.example.com/mcp --transport http
공유 서버 선택 플래그
web, CLI, TUI 각각이 개별적으로 정의하므로 세 곳 모두에서 사용 가능하며, 차이는 아래에 명시했습니다.
| 플래그 | 의미 | 차이 |
|---|---|---|
--catalog <path> |
쓰기 가능한 카탈로그 파일. | 없음 |
--config <path> |
읽기 전용 세션 파일. | 없음 |
--server <name> |
파일에서 이름 붙은 서버 하나를 선택. | Web과 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 헤더. 반복 가능. | web 클라이언트에서 임시 HTTP/SSE 서버가 필요. |
[target...] |
임시 서버 하나의 위치 인수 명령/URL. | 없음 |
-- 구분자
web과 CLI 클라이언트는 맨 --에서 인수를 분리해 그 뒤의 모든 것을 대상 명령에 자체 인수로 전달해요. 이렇게 하면 Inspector가 삼켜버릴 플래그를 전달할 수 있습니다.
mcp-inspector node build/index.js -- --config /etc/myserver.conf --verbose
구분자가 없으면 --config가 Inspector 자신의 읽기 전용 세션 플래그로 읽힐 거예요.
Web 전용 플래그
| 플래그 | 의미 |
|---|---|
--dev |
사전 빌드된 번들 대신 Vite 개발 서버 실행. Inspector 자체를 작업할 때 유용. |
CLI와 TUI: OAuth 클라이언트 플래그
이 다섯 개는 CLI와 TUI만 정의해요. Web 클라이언트는 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 또는 web 백엔드에 속합니다.
런처가 읽음
| 변수 | 효과 |
|---|---|
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에서만 열기. |
Web 백엔드 환경 변수
| 변수 | 효과 |
|---|---|
MCP_INSPECTOR_API_TOKEN |
실행마다 임의 토큰을 생성하는 대신 세션 토큰을 고정. |
DANGEROUSLY_OMIT_AUTH |
/api/* 토큰 검사를 완전히 끔. |
HOST |
바인딩 호스트. 기본 localhost. |
CLIENT_PORT |
Web UI 포트. 기본 6274. |
DANGEROUSLY_BIND_ALL_INTERFACES |
와일드카드 호스트(0.0.0.0, :: 또는 동등한 표기)에 바인딩하는 데 필요한 옵트인. |
ALLOWED_ORIGINS |
쉼표로 구분된 오리진 허용 목록. 기본 목록을 병합하지 않고 교체. |
MCP_SANDBOX_PORT |
기본적으로 동적인 MCP Apps 샌드박스 포트 고정. |
HTTPS_PROXY / HTTP_PROXY / NO_PROXY |
나가는 MCP 연결의 표준 프록시 라우팅. |
DANGEROUSLY_OMIT_AUTH와DANGEROUSLY_BIND_ALL_INTERFACES를 절대 결합하지 마세요. web 백엔드는 프로세스를 실행하고 OAuth 토큰을 보유하므로, 접근할 수 있는 사람은 그것을 조종할 수 있어요.
카탈로그 파일 형식
카탈로그나 구성 파일은 친숙한 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입니다.
이것을 손으로 쓸 필요는 없어요. Web 클라이언트는 Claude Desktop, Cursor, Cline, VS Code 또는 레지스트리 server.json에서 기존 클라이언트 구성을 가져올 수 있습니다.