관리형 구성 파일, 허용 목록 및 거부 목록을 사용하여 사용자가 추가하거나 연결할 수 있는 MCP 서버를 제한합니다.
기본적으로 Claude Code를 실행하는 모든 사용자는 선택한 모든 MCP 서버에 연결할 수 있습니다. Anthropic은 Anthropic Directory에 추가하기 전에 커넥터를 나열 기준에 따라 검토하지만, MCP 서버에 대한 보안 감사나 관리를 수행하지 않습니다. 관리자는 조직에서 실행되는 서버를 제한할 수 있으며, 승인된 고정 집합을 배포하는 것부터 MCP를 완전히 비활성화하는 것까지 가능합니다.이 페이지에서는 다음을 다룹니다:
Claude Code는 다양한 제한 수준을 지원합니다. 각 패턴은 아래에서 다루는 메커니즘 중 하나 또는 둘 다를 사용합니다: 고정 집합을 배포하기 위한 managed-mcp.json과 사용자가 구성하는 항목을 필터링하기 위한 allowedMcpServers/deniedMcpServers.
Claude Code에는 사용자가 검색하고 설치할 수 있는 기본 제공 MCP 서버 레지스트리가 없습니다. 승인된 카탈로그 패턴의 경우, 승인된 목록과 해당 claude mcp add 명령을 사용자가 찾을 수 있는 위치(예: 내부 wiki)에서 공유하거나, 관리형 플러그인 마켓플레이스를 통해 플러그인으로 서버를 배포하여 사용자가 /plugin에서 검색하고 설치할 수 있도록 합니다.
managed-mcp.json 파일을 배포하면 Claude Code는 해당 파일이 정의하는 서버만 로드합니다. 사용자는 플러그인 제공 서버를 포함한 다른 MCP 서버를 추가, 수정 또는 사용할 수 없습니다. 이 파일은 관리형 집합과 함께 허용하지 않는 한 claude.ai 커넥터도 억제합니다.두 가지 다른 설정이 관리형 집합을 추가로 필터링할 수 있습니다:
allowedMcpServers 및 deniedMcpServers는 관리형 서버에도 적용되므로, 이를 통과하지 못하는 관리형 서버는 로드되지 않습니다.
사용자의 자신의 deniedMcpServers는 설정에서 병합되므로, 사용자는 자신을 위해 관리형 서버를 차단할 수 있습니다.
전체 확인 순서는 서버 평가 방법을 참조하십시오.managed-mcp.json은 독립 실행형 파일이므로 서버 관리 설정을 통해 전달될 수 없습니다. 관리자 권한으로 시스템 경로에 쓸 수 있는 모든 프로세스가 배포할 수 있습니다. 규모가 큰 경우, 일반적으로 Jamf 또는 macOS의 구성 프로필, Windows의 그룹 정책 또는 Intune, Linux의 플릿 관리 등의 장치 관리 도구를 통합니다. Claude Code는 다음 경로 중 하나에서 파일을 찾습니다:
claude mcp list는 managed-mcp.json의 서버만 표시합니다. 사용자의 자신의 서버가 여전히 나타나면, 파일이 읽혀지지 않습니다. 경로와 권한을 확인합니다.
claude mcp add --transport http test https://example.com/mcp는 Cannot add MCP server: enterprise MCP configuration is active and has exclusive control over MCP servers로 실패합니다. URL이 실제 서버일 필요는 없습니다. 정책 확인이 무엇이든 연결되기 전에 명령을 거부하기 때문입니다.
managed-mcp.json을 배포하면 기본적으로 조직의 claude.ai 관리 콘솔에서 관리자가 구성한 커넥터를 포함하여 claude.ai 커넥터를 억제합니다. 이러한 커넥터를 managed-mcp.json의 서버와 함께 로드하려면, 관리형 설정 소스에서 "allowAllClaudeAiMcps": true를 설정합니다. Claude Code v2.1.149 이상이 필요합니다.설정이 활성화되면, Claude Code는 managed-mcp.json이 배포되지 않은 경우 로드할 것과 동일한 claude.ai 커넥터를 로드합니다. 허용 목록 및 거부 목록은 여전히 이러한 커넥터에 적용되므로, deniedMcpServers로 특정 커넥터를 차단할 수 있습니다. 이 설정은 claude.ai 커넥터에만 영향을 미치며, 플러그인 제공 서버는 억제된 상태로 유지됩니다.Claude Code는 이 설정을 관리자 제어 정책 계층에서만 읽습니다: 서버 관리 설정, MDM 배포 plist 또는 HKLM 레지스트리 키, 또는 시스템 managed-settings.json 파일입니다. 사용자 또는 프로젝트 설정에 배치하면 효과가 없으므로, 사용자는 독점 제어가 억제한 커넥터를 다시 활성화할 수 없습니다.
허용 목록 및 거부 목록은 구성된 서버 중 로드할 수 있는 서버를 필터링합니다. 이는 레지스트리가 아닙니다: 허용 목록 또는 거부 목록이 적용되기 전에 사용자, 플러그인 또는 managed-mcp.json에 의해 서버를 추가해야 합니다. 사용자에게 서버를 배포하려면 managed-mcp.json을 사용합니다.허용 목록을 권위 있게 만들려면, 관리형 설정 소스(예: 서버 관리 설정 또는 배포된 managed-settings.json 파일)에서 allowedMcpServers 및 allowManagedMcpServersOnly: true를 함께 설정합니다. 허용 목록을 관리형 설정만으로 제한은 구성을 보여줍니다. allowManagedMcpServersOnly 없이, 모든 설정 소스의 허용 목록이 병합되며, 사용자의 자신의 ~/.claude/settings.json을 포함하므로, 사용자는 허용 목록이 허용하는 항목을 확대할 수 있습니다. 거부 목록은 소스에 관계없이 병합됩니다.
allowManagedMcpServersOnly는 allowManagedPermissionRulesOnly와 별개이며, 이는 권한 규칙만 잠급니다. 해당 플래그를 설정해도 MCP 허용 목록을 적용하지 않습니다.
allowedMcpServers 및 deniedMcpServers는 항목 목록입니다. 각 항목은 URL, 명령 또는 이름으로 서버를 식별하는 단일 키가 있는 객체입니다:
키
일치
사용 대상
serverUrl
원격 서버 URL, 정확하거나 * 와일드카드 포함
HTTP 및 SSE 서버
serverCommand
stdio 서버를 시작하는 정확한 명령 및 인수
Stdio 서버
serverName
사용자 할당 레이블. 정확한 일치만, 와일드카드는 확장되지 않음
둘 다, 하지만 아래 경고 참조
allowedMcpServers를 설정하지 않는 것은 빈 배열로 설정하는 것과 다릅니다:
설정
설정하지 않음 (기본값)
빈 배열 []
채워짐
allowedMcpServers
모든 서버 허용
서버 없음 허용
일치하는 서버만 허용
deniedMcpServers
서버 없음 차단
서버 없음 차단
일치하는 서버 차단
serverName 항목은 두 목록 중 하나에서 보안 제어가 아닙니다. 이름은 claude mcp add를 실행하거나 구성 파일을 편집할 때 사용자가 할당하는 레이블이며, 기본 서버가 아니므로, 사용자는 모든 서버를 github라고 부를 수 있습니다. claude.ai 커넥터의 경우 이름은 claude.ai에서 반환하는 표시 이름이며, 이는 변경될 수 있습니다. 실제로 실행되는 서버를 적용하려면, serverCommand 또는 serverUrl 항목을 추가합니다.
serverName 검증은 두 목록 간에 다릅니다:
deniedMcpServers에서, serverName은 모든 비어있지 않은 문자열을 허용하므로, 표시 이름으로 claude.ai 커넥터를 차단할 수 있습니다. 예를 들어, { "serverName": "claude.ai Slack" }은 Slack 커넥터를 차단합니다. 거부가 이름 변경에 강력해야 할 때 또는 커넥터 이름이 충돌하고 (N) 접미사를 얻을 때 serverUrl 항목을 선호합니다.
allowedMcpServers에서, serverName은 문자, 숫자, 하이픈 및 밑줄로 제한됩니다. claude.ai 커넥터를 허용 목록에 추가하려면 serverUrl을 사용합니다.
OpenTelemetry 내보내기가 구성되면, Claude Code는 사용자가 호출하는 MCP 서버 및 도구를 기록할 수 있습니다. OTEL_LOG_TOOL_DETAILS=1을 설정하여 도구 이벤트에 MCP 서버 및 도구 이름을 포함한 다음, 수집기에서 집계하여 사용자가 실제로 연결하는 서버를 확인합니다. 내보내기를 설정하고 전체 이벤트 스키마는 모니터링을 참조하십시오.