.mcp.json 서버가 「Pending approval」 일 때
claude mcp list 에 ⏸ Pending approval 로 뜨는 .mcp.json 서버를 승인하거나 거부하는 방법과, local·project·user 범위의 저장 위치·우선순위를 정리합니다.
claude mcp list 에서 서버가 「⏸ Pending approval (run claude to approve)」 로 나오고 연결되지 않으면 고장이 아니라 승인 대기입니다.
[1] 상태를 재현합니다. 프로젝트 폴더에서 --scope project 로 서버를 등록합니다.
$ claude mcp add --scope project hello -- node /srv/app/server.mjsAdded stdio MCP server hello with command: node /srv/app/server.mjs to project configFile modified: /srv/app/.mcp.json.mcp.json 은 이런 모양으로 만들어집니다. HTTP 서버는 --transport http 를 붙이면 "type": "http" 와 url 로 들어갑니다.
{ "mcpServers": { "hello": { "type": "stdio", "command": "node", "args": [ "/srv/app/server.mjs" ], "env": {} } }}[2] 목록과 상세를 봅니다. 승인 전 서버에는 연결을 시도하지 않습니다.
$ claude mcp listChecking MCP server health… hello: node /srv/app/server.mjs - ⏸ Pending approval (run `claude` to approve)$ claude mcp get hellohello: Scope: Project config (shared via .mcp.json) Status: ⏸ Pending approval (run `claude` to approve) Type: stdio Command: node Args: /srv/app/server.mjs Environment: To remove this server, run: claude mcp remove hello -s project[3] 가장 흔한 해결: 그 폴더에서 claude 를 대화형으로 열고, 서버 승인 창에서 허용을 고릅니다. 승인한 뒤에야 claude mcp list 가 서버를 실제로 연결해 봅니다.
[4] 창 없이 미리 정하려면 설정 파일에 서버 이름을 적습니다. 공식 문서의 세 키입니다.
| 키 | 뜻 |
|---|---|
enabledMcpjsonServers | 이름을 적은 서버만 승인 |
enableAllProjectMcpServers | .mcp.json 의 서버를 모두 승인 |
disabledMcpjsonServers | 이름을 적은 서버를 거부 |
{ "enabledMcpjsonServers": ["hello"], "disabledMcpjsonServers": ["docs"]}세 키는 사용자·프로젝트·로컬·관리 설정 어느 파일에든 쓸 수 있습니다. 팀 저장소에 커밋하는 .claude/settings.json 보다 개인 settings.local.json 에 두는 쪽이 낫습니다.
[5] 잘못 눌렀거나 승인을 다시 받고 싶으면 이 프로젝트의 승인·거부 기록을 지웁니다.
$ claude mcp reset-project-choicesProject-scoped (.mcp.json) server approvals and rejections stored for this project have been reset.You will be prompted for approval next time you start Claude Code.[6] 대화형 승인이 없는 claude -p·Agent SDK·클라우드 세션은 창을 띄울 수 없어서 프로젝트 서버를 묻지 않고 불러옵니다. 막으려면 disabledMcpjsonServers 에 넣습니다. 이 방식으로 붙는 동작은 MCP 서버 연결 진단 글에서 다룹니다.
[7] 같은 이름이 여러 범위에 있으면 하나만 쓰입니다. 항목 전체가 우선순위 높은 쪽 것으로 대체되며 필드는 합쳐지지 않습니다.
| 범위 | 적용 | 팀 공유 | 저장 위치 | 우선순위 |
|---|---|---|---|---|
| local(기본) | 이 프로젝트만 | 아니오 | ~/.claude.json | 1 |
| project | 이 프로젝트만 | 예(버전 관리) | 프로젝트 루트 .mcp.json | 2 |
| user | 내 모든 프로젝트 | 아니오 | ~/.claude.json | 3 |