Claude Code는 AI 도구 통합을 위한 오픈 소스 표준인 Model Context Protocol (MCP)를 통해 수백 개의 외부 도구 및 데이터 소스에 연결할 수 있습니다. MCP 서버는 Claude Code에 도구, 데이터베이스 및 API에 대한 액세스를 제공합니다.
다른 도구(예: 이슈 추적기 또는 모니터링 대시보드)에서 채팅으로 데이터를 복사하는 자신을 발견할 때 서버를 연결하세요. 연결되면 Claude는 붙여넣은 내용에서 작업하는 대신 해당 시스템을 직접 읽고 작동할 수 있습니다.
MCP로 할 수 있는 것
MCP 서버가 연결되면 Claude Code에 다음을 요청할 수 있습니다:
이슈 추적기에서 기능 구현: "JIRA 이슈 ENG-4521에 설명된 기능을 추가하고 GitHub에서 PR을 생성하세요."
모니터링 데이터 분석: "Sentry와 Statsig을 확인하여 ENG-4521에 설명된 기능의 사용량을 확인하세요."
데이터베이스 쿼리: "PostgreSQL 데이터베이스를 기반으로 기능 ENG-4521을 사용한 무작위 사용자 10명의 이메일을 찾으세요."
디자인 통합: "Slack에 게시된 새로운 Figma 디자인을 기반으로 표준 이메일 템플릿을 업데이트하세요."
워크플로우 자동화: "이 10명의 사용자를 새로운 기능에 대한 피드백 세션에 초대하는 Gmail 초안을 생성하세요."
외부 이벤트에 반응: MCP 서버는 채널로도 작동할 수 있으며, 세션에 메시지를 푸시하므로 Claude는 자리를 비운 동안 Telegram 메시지, Discord 채팅 또는 webhook 이벤트에 반응할 수 있습니다.
인기 있는 MCP 서버
Claude Code에 연결할 수 있는 일반적으로 사용되는 MCP 서버는 다음과 같습니다:
MCP 서버 설치
MCP 서버는 필요에 따라 세 가지 방식으로 구성할 수 있습니다:
옵션 1: 원격 HTTP 서버 추가
HTTP 서버는 원격 MCP 서버에 연결하기 위한 권장 옵션입니다. 이는 클라우드 기반 서비스에 가장 널리 지원되는 전송 방식입니다.
# 기본 구문
claude mcp add --transport http <name><url># 실제 예: Notion에 연결
claude mcp add --transport http notion https://mcp.notion.com/mcp
# Bearer 토큰을 사용한 예
claude mcp add --transport http secure-api https://api.example.com/mcp \
--header"Authorization: Bearer your-token"
옵션 2: 원격 SSE 서버 추가
# 기본 구문
claude mcp add --transport sse <name><url># 실제 예: Asana에 연결
claude mcp add --transport sse asana https://mcp.asana.com/sse
# 인증 헤더를 사용한 예
claude mcp add --transport sse private-api https://api.company.com/sse \
--header"X-API-Key: your-key-here"
옵션 3: 로컬 stdio 서버 추가
Stdio 서버는 컴퓨터에서 로컬 프로세스로 실행됩니다. 시스템에 직접 액세스하거나 사용자 정의 스크립트가 필요한 도구에 이상적입니다.
# 기본 구문
claude mcp add [options] <name> -- <command> [args...]
# 실제 예: Airtable 서버 추가
claude mcp add --transport stdio --env AIRTABLE_API_KEY=YOUR_KEY airtable \
-- npx -y airtable-mcp-server
서버 관리
구성한 후에는 다음 명령으로 MCP 서버를 관리할 수 있습니다:
# 구성된 모든 서버 나열
claude mcp list
# 특정 서버의 세부 정보 가져오기
claude mcp get github
# 서버 제거
claude mcp remove github
# (Claude Code 내에서) 서버 상태 확인
/mcp
/mcp 패널은 각 연결된 서버 옆에 도구 개수를 표시하고 도구 기능을 광고하지만 도구를 노출하지 않는 서버에 플래그를 지정합니다.
서버 이름 workspace는 내부 사용을 위해 예약되어 있습니다. 구성에서 해당 이름의 서버를 정의하면 Claude Code는 로드 시 이를 건너뛰고 이름을 바꾸도록 요청하는 경고를 표시합니다.
동적 도구 업데이트
Claude Code는 MCP list_changed 알림을 지원하므로 MCP 서버가 연결을 끊었다가 다시 연결할 필요 없이 사용 가능한 도구, 프롬프트 및 리소스를 동적으로 업데이트할 수 있습니다. MCP 서버가 list_changed 알림을 보내면 Claude Code는 해당 서버에서 사용 가능한 기능을 자동으로 새로 고칩니다.
자동 재연결
HTTP 또는 SSE 서버가 세션 중에 연결이 끊어지면 Claude Code는 지수 백오프를 사용하여 자동으로 재연결합니다: 최대 5번의 시도, 1초 지연으로 시작하여 매번 두 배씩 증가합니다. 서버는 재연결이 진행 중인 동안 /mcp에서 보류 중으로 나타납니다. 5번의 실패 시도 후 서버는 실패로 표시되며 /mcp에서 수동으로 다시 시도할 수 있습니다. Stdio 서버는 로컬 프로세스이며 자동으로 재연결되지 않습니다.
HTTP 또는 SSE 서버가 시작 시 초기 연결에 실패할 때도 동일한 백오프가 적용됩니다. v2.1.121부터 Claude Code는 5xx 응답, 연결 거부 또는 시간 초과와 같은 일시적 오류에 대해 초기 연결을 최대 3번 재시도한 후, 여전히 연결할 수 없으면 서버를 실패로 표시합니다. 인증 및 찾을 수 없음 오류는 해결하기 위해 구성 변경이 필요하므로 재시도되지 않습니다.
채널을 사용한 메시지 푸시
MCP 서버는 또한 메시지를 세션에 직접 푸시할 수 있으므로 Claude는 CI 결과, 모니터링 경고 또는 채팅 메시지와 같은 외부 이벤트에 반응할 수 있습니다. 이를 활성화하려면 서버가 claude/channel 기능을 선언하고 시작 시 --channels 플래그로 옵트인합니다. 공식적으로 지원되는 채널을 사용하려면 채널을 참조하거나, 자신만의 채널을 구축하려면 채널 참조를 참조하세요.
플러그인 제공 MCP 서버
플러그인은 MCP 서버를 번들로 제공할 수 있으며, 플러그인이 활성화되면 도구 및 통합을 자동으로 제공합니다. 플러그인 MCP 서버는 사용자 구성 서버와 동일하게 작동합니다.
플러그인 MCP 서버의 작동 방식:
플러그인은 플러그인 루트의 .mcp.json 또는 plugin.json에 인라인으로 MCP 서버를 정의합니다
로컬 범위는 기본값입니다. 로컬 범위 서버는 추가한 프로젝트에서만 로드되며 사용자에게만 비공개입니다. Claude Code는 해당 프로젝트의 경로 아래 ~/.claude.json에 저장하므로 다른 프로젝트에는 동일한 서버가 나타나지 않습니다. 개인 개발 서버, 실험적 구성 또는 버전 제어에 포함하고 싶지 않은 자격 증명이 있는 서버에 로컬 범위를 사용하세요.
# 로컬 범위 서버 추가 (기본값)
claude mcp add --transport http stripe https://mcp.stripe.com
# 명시적으로 로컬 범위 지정
claude mcp add --transport http stripe --scopelocal https://mcp.stripe.com
/path/to/your/project에서 실행할 때 명령은 ~/.claude.json 내의 현재 프로젝트 항목에 서버를 작성합니다. 아래 예는 결과를 보여줍니다:
프로젝트 범위 서버는 프로젝트 루트 디렉토리의 .mcp.json 파일에 구성을 저장하여 팀 협업을 가능하게 합니다. 이 파일은 버전 제어에 체크인되도록 설계되어 모든 팀 멤버가 동일한 MCP 도구 및 서비스에 액세스할 수 있도록 합니다. 프로젝트 범위 서버를 추가하면 Claude Code는 자동으로 이 파일을 생성하거나 적절한 구성 구조로 업데이트합니다.
# 프로젝트 범위 서버 추가
claude mcp add --transport http paypal --scope project https://mcp.paypal.com/mcp
보안상의 이유로 Claude Code는 .mcp.json 파일의 프로젝트 범위 서버를 사용하기 전에 승인을 요청합니다. 이러한 승인 선택을 재설정해야 하는 경우 claude mcp reset-project-choices 명령을 사용하세요.
사용자 범위
사용자 범위 서버는 ~/.claude.json에 저장되며 교차 프로젝트 접근성을 제공하므로 컴퓨터의 모든 프로젝트에서 사용할 수 있으면서 사용자 계정에만 비공개입니다. 이 범위는 개인 유틸리티 서버, 개발 도구 또는 다양한 프로젝트에서 자주 사용하는 서비스에 적합합니다.
# 사용자 서버 추가
claude mcp add --transport http hubspot --scope user https://mcp.hubspot.com/anthropic
범위 계층 및 우선순위
동일한 서버가 둘 이상의 위치에 정의되면 Claude Code는 가장 높은 우선순위 소스의 정의를 사용하여 한 번 연결합니다:
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
--dsn"postgresql://readonly:pass@prod.db.com:5432/analytics"
그런 다음 자연스럽게 데이터베이스를 쿼리합니다:
이번 달 총 수익은 얼마입니까?
주문 테이블의 스키마를 보여주세요
지난 90일 동안 구매하지 않은 고객을 찾으세요
원격 MCP 서버로 인증
많은 클라우드 기반 MCP 서버는 인증이 필요합니다. Claude Code는 보안 연결을 위해 OAuth 2.0을 지원합니다.
1
인증이 필요한 서버 추가
예를 들어:
claude mcp add --transport http sentry https://mcp.sentry.dev/mcp
2
Claude Code 내에서 /mcp 명령 사용
Claude Code에서 다음 명령을 사용합니다:
/mcp
그런 다음 브라우저에서 로그인 단계를 따릅니다.
고정 OAuth 콜백 포트 사용
일부 MCP 서버는 미리 등록된 특정 리디렉션 URI가 필요합니다. 기본적으로 Claude Code는 OAuth 콜백을 위해 무작위로 사용 가능한 포트를 선택합니다. --callback-port를 사용하여 포트를 고정하여 http://localhost:PORT/callback 형식의 사전 등록된 리디렉션 URI와 일치하도록 합니다.
--callback-port를 단독으로 사용할 수 있습니다 (동적 클라이언트 등록 포함) 또는 --client-id와 함께 사용할 수 있습니다 (사전 구성된 자격 증명 포함).
# 동적 클라이언트 등록을 사용한 고정 콜백 포트
claude mcp add --transport http \
--callback-port8080 \
my-server https://mcp.example.com/mcp
사전 구성된 OAuth 자격 증명 사용
일부 MCP 서버는 자동 OAuth 설정을 지원하지 않습니다. "Incompatible auth server: does not support dynamic client registration"과 같은 오류가 표시되면 서버에 사전 구성된 자격 증명이 필요합니다. Claude Code는 또한 동적 클라이언트 등록 대신 클라이언트 ID 메타데이터 문서 (CIMD)를 사용하는 서버를 지원하며 자동으로 검색합니다. 자동 검색이 실패하면 먼저 서버의 개발자 포털을 통해 OAuth 앱을 등록한 다음 서버를 추가할 때 자격 증명을 제공합니다.
특정 OAuth 인증 서버 메타데이터 URL을 가리켜 기본 검색 체인을 우회하도록 Claude Code를 설정합니다. MCP 서버의 표준 엔드포인트가 오류를 반환하거나 내부 프록시를 통해 검색을 라우팅하려는 경우에 설정합니다. 기본적으로 Claude Code는 먼저 /.well-known/oauth-protected-resource에서 RFC 9728 보호된 리소스 메타데이터를 확인한 다음 /.well-known/oauth-authorization-server에서 RFC 8414 인증 서버 메타데이터로 돌아갑니다.
.mcp.json의 서버 구성의 oauth 객체에 authServerMetadataUrl을 설정합니다:
URL은 https://를 사용해야 합니다. authServerMetadataUrl은 Claude Code v2.1.64 이상이 필요합니다. 메타데이터 URL의 scopes_supported는 업스트림 서버가 광고하는 범위를 재정의합니다.
OAuth 범위 제한
oauth.scopes를 설정하여 인증 흐름 중에 Claude Code가 요청하는 범위를 고정합니다. 이는 업스트림 인증 서버가 광고하는 것보다 더 많은 범위를 부여하고 싶지 않을 때 MCP 서버를 보안 팀이 승인한 부분 집합으로 제한하는 지원되는 방법입니다. 값은 RFC 6749 §3.3의 scope 매개변수 형식과 일치하는 단일 공백으로 구분된 문자열입니다.
헬퍼는 각 연결 (세션 시작 및 재연결 시)에서 새로 실행됩니다. 캐싱이 없으므로 스크립트는 토큰 재사용을 담당합니다.
Claude Code는 헬퍼를 실행할 때 다음 환경 변수를 설정합니다:
변수
값
CLAUDE_CODE_MCP_SERVER_NAME
MCP 서버의 이름
CLAUDE_CODE_MCP_SERVER_URL
MCP 서버의 URL
이를 사용하여 여러 MCP 서버를 제공하는 단일 헬퍼 스크립트를 작성합니다.
JSON 구성에서 MCP 서버 추가
MCP 서버에 대한 JSON 구성이 있는 경우 직접 추가할 수 있습니다:
1
JSON에서 MCP 서버 추가
# 기본 구문
claude mcp add-json<name>'<json>'# 예: JSON 구성으로 HTTP 서버 추가
claude mcp add-json weather-api'{"type":"http","url":"https://api.weather.com/mcp","headers":{"Authorization":"Bearer token"}}'# 예: JSON 구성으로 stdio 서버 추가
claude mcp add-jsonlocal-weather'{"type":"stdio","command":"/path/to/weather-cli","args":["--api-key","abc123"],"env":{"CACHE_DIR":"/tmp"}}'# 예: 사전 구성된 OAuth 자격 증명으로 HTTP 서버 추가
claude mcp add-json my-server'{"type":"http","url":"https://mcp.example.com/mcp","oauth":{"clientId":"your-client-id","callbackPort":8080}}'--client-secret
2
서버가 추가되었는지 확인
claude mcp get weather-api
Claude Desktop에서 MCP 서버 가져오기
Claude Desktop에서 MCP 서버를 이미 구성한 경우 가져올 수 있습니다:
1
Claude Desktop에서 서버 가져오기
# 기본 구문
claude mcp add-from-claude-desktop
2
가져올 서버 선택
명령을 실행한 후 가져올 서버를 선택할 수 있는 대화형 대화 상자가 표시됩니다.
3
서버가 가져와졌는지 확인
claude mcp list
Claude.ai에서 MCP 서버 사용
Claude.ai 계정으로 Claude Code에 로그인한 경우 Claude.ai에서 추가한 MCP 서버는 Claude Code에서 자동으로 사용 가능합니다:
MCP 도구가 큰 출력을 생성할 때 Claude Code는 토큰 사용량을 관리하여 대화 컨텍스트가 압도되지 않도록 합니다:
출력 경고 임계값: Claude Code는 MCP 도구 출력이 10,000 토큰을 초과할 때 경고를 표시합니다
구성 가능한 제한: MAX_MCP_OUTPUT_TOKENS 환경 변수를 사용하여 최대 허용 MCP 출력 토큰을 조정할 수 있습니다
기본 제한: 기본 최대값은 25,000 토큰입니다
범위: 환경 변수는 자신의 제한을 선언하지 않는 도구에 적용됩니다. anthropic/maxResultSizeChars를 설정하는 도구는 MAX_MCP_OUTPUT_TOKENS이 설정된 것과 관계없이 텍스트 콘텐츠에 대해 해당 값을 사용합니다. 이미지 데이터를 반환하는 도구는 여전히 MAX_MCP_OUTPUT_TOKENS의 영향을 받습니다
큰 출력을 생성하는 도구의 제한을 늘리려면:
export MAX_MCP_OUTPUT_TOKENS=50000
claude
이는 다음을 수행하는 MCP 서버로 작업할 때 특히 유용합니다:
대규모 데이터 세트 또는 데이터베이스 쿼리
상세한 보고서 또는 문서 생성
광범위한 로그 파일 또는 디버깅 정보 처리
특정 도구의 제한 늘리기
MCP 서버를 구축하는 경우 도구의 tools/list 응답 항목에서 _meta["anthropic/maxResultSizeChars"]를 설정하여 개별 도구가 기본 디스크 유지 임계값보다 큰 결과를 반환할 수 있습니다. Claude Code는 해당 도구의 임계값을 주석 처리된 값으로 올립니다 (최대 500,000자의 하드 상한까지).
이는 데이터베이스 스키마 또는 전체 파일 트리와 같이 본질적으로 크지만 필요한 출력을 반환하는 도구에 유용합니다. 주석 처리 없이 기본 임계값을 초과하는 결과는 디스크에 유지되고 대화에서 파일 참조로 대체됩니다.
{"name": "get_schema",
"description": "Returns the full database schema",
"_meta": {"anthropic/maxResultSizeChars": 200000
}}
주석 처리는 텍스트 콘텐츠에 대해 MAX_MCP_OUTPUT_TOKENS과 독립적으로 적용되므로 사용자는 도구가 선언하는 도구에 대해 환경 변수를 올릴 필요가 없습니다. 이미지 데이터를 반환하는 도구는 여전히 토큰 제한의 영향을 받습니다.
MCP 리소스 요청에 응답
MCP 서버는 작업 중에 구조화된 입력을 요청할 수 있습니다. 서버가 자체적으로 얻을 수 없는 정보가 필요할 때 Claude Code는 대화형 대화 상자를 표시하고 응답을 서버에 다시 전달합니다. 사용자 측에서 구성이 필요하지 않습니다: 서버가 요청할 때 리소스 요청 대화 상자가 자동으로 나타납니다.
서버는 두 가지 방식으로 입력을 요청할 수 있습니다:
양식 모드: Claude Code는 서버에서 정의한 양식 필드가 있는 대화 상자를 표시합니다 (예: 사용자 이름 및 암호 프롬프트). 필드를 입력하고 제출합니다.
URL 모드: Claude Code는 인증 또는 승인을 위해 브라우저 URL을 엽니다. 브라우저에서 흐름을 완료한 다음 CLI에서 확인합니다.
Tool Search는 MCP 컨텍스트 사용량을 낮게 유지하여 도구 정의를 Claude가 필요할 때까지 연기합니다. 세션 시작 시 도구 이름만 로드되므로 더 많은 MCP 서버를 추가해도 컨텍스트 윈도우에 미치는 영향이 최소화됩니다.
작동 방식
Tool Search는 기본적으로 활성화됩니다. MCP 도구는 미리 로드되지 않고 연기되며, Claude는 검색 도구를 사용하여 작업에 필요할 때 관련 도구를 검색합니다. Claude가 실제로 사용하는 도구만 컨텍스트에 들어갑니다. 사용자 관점에서 MCP 도구는 이전과 정확히 동일하게 작동합니다.
임계값 기반 로딩을 선호하는 경우 ENABLE_TOOL_SEARCH=auto를 설정하여 컨텍스트 윈도우의 10% 이내에 맞을 때 스키마를 미리 로드하고 오버플로우만 연기합니다. 모든 옵션은 Tool Search 구성을 참조하세요.
MCP 서버 작성자용
MCP 서버를 구축하는 경우 Tool Search가 활성화되면 서버 지침 필드가 더 유용해집니다. 서버 지침은 Claude가 skills의 작동 방식과 유사하게 도구를 검색할 시기를 이해하는 데 도움이 됩니다.
다음을 설명하는 명확하고 설명적인 서버 지침을 추가합니다:
도구가 처리하는 작업의 범주
Claude가 도구를 검색해야 할 때
서버가 제공하는 주요 기능
Claude Code는 도구 설명 및 서버 지침을 각각 2KB에서 자릅니다. 자르기를 피하려면 간결하게 유지하고 중요한 세부 정보를 시작 부분에 배치합니다.
Tool Search 구성
Tool Search는 기본적으로 활성화됩니다: MCP 도구는 연기되고 필요에 따라 검색됩니다. Vertex AI에서는 기본적으로 비활성화되어 있습니다(도구 검색 베타 헤더를 허용하지 않음). ANTHROPIC_BASE_URL이 비 자사 호스트를 가리킬 때도 비활성화됩니다(대부분의 프록시가 tool_reference 블록을 전달하지 않기 때문). 명시적으로 ENABLE_TOOL_SEARCH를 설정하여 옵트인합니다. 이 기능은 tool_reference 블록을 지원하는 모델이 필요합니다: Sonnet 4 이상 또는 Opus 4 이상. Haiku 모델은 Tool Search를 지원하지 않습니다.
ENABLE_TOOL_SEARCH 환경 변수로 Tool Search 동작을 제어합니다:
값
동작
(설정되지 않음)
모든 MCP 도구 연기되고 필요에 따라 로드됨. Vertex AI 또는 ANTHROPIC_BASE_URL이 비 자사 호스트일 때 미리 로드로 돌아감
true
모든 MCP 도구 연기, Vertex AI 및 비 자사 ANTHROPIC_BASE_URL 포함
auto
임계값 모드: 도구가 컨텍스트 윈도우의 10% 이내에 맞으면 미리 로드, 그렇지 않으면 연기
auto:<N>
사용자 정의 백분율을 사용한 임계값 모드, <N>은 0-100 (예: auto:5는 5%)
false
모든 MCP 도구 미리 로드, 연기 없음
# 사용자 정의 5% 임계값 사용
ENABLE_TOOL_SEARCH=auto:5 claude
# Tool Search 완전히 비활성화
ENABLE_TOOL_SEARCH=false claude
서버의 도구가 검색 단계 없이 항상 Claude에게 표시되어야 하는 경우 해당 서버의 구성에서 alwaysLoad를 true로 설정합니다. 그러면 ENABLE_TOOL_SEARCH 설정에 관계없이 해당 서버의 모든 도구가 세션 시작 시 컨텍스트에 로드됩니다. 매 턴마다 Claude가 필요로 하는 소수의 도구에 이를 사용합니다. 각 미리 로드된 도구는 대화에 사용할 수 있는 컨텍스트를 소비하기 때문입니다.
다음 .mcp.json 항목은 한 HTTP 서버를 제외하면서 다른 서버는 연기된 상태로 유지합니다:
alwaysLoad 필드는 모든 서버 유형에서 사용 가능하며 Claude Code v2.1.121 이상이 필요합니다. MCP 서버는 도구의 _meta 객체에 "anthropic/alwaysLoad": true를 포함하여 개별 도구를 항상 로드되도록 표시할 수도 있으며, 이는 해당 도구에만 동일한 효과를 갖습니다.
alwaysLoad: true를 설정하면 서버가 연결될 때까지 시작이 차단되며, 표준 5초 연결 타임아웃으로 제한됩니다. 이는 MCP_CONNECTION_NONBLOCKING=1이 설정된 경우에도 적용됩니다. 첫 번째 프롬프트가 빌드될 때 도구가 있어야 하기 때문입니다. 비차단이 활성화된 경우 다른 서버는 여전히 백그라운드에서 연결됩니다.
MCP 프롬프트를 명령으로 사용
MCP 서버는 Claude Code에서 명령으로 사용 가능하게 되는 프롬프트를 노출할 수 있습니다.
MCP 프롬프트 실행
1
사용 가능한 프롬프트 검색
/를 입력하여 MCP 서버의 프롬프트를 포함한 모든 사용 가능한 명령을 확인합니다. MCP 프롬프트는 /mcp__servername__promptname 형식으로 나타납니다.
2
인수 없이 프롬프트 실행
/mcp__github__list_prs
3
인수를 사용하여 프롬프트 실행
많은 프롬프트는 인수를 허용합니다. 명령 뒤에 공백으로 구분하여 전달합니다:
/mcp__github__pr_review 456
/mcp__jira__create_issue "로그인 흐름의 버그" high
관리되는 MCP 구성
MCP 서버에 대한 중앙 집중식 제어가 필요한 조직의 경우 Claude Code는 두 가지 구성 옵션을 지원합니다:
managed-mcp.json을 사용한 독점 제어: 사용자가 수정하거나 확장할 수 없는 고정된 MCP 서버 세트 배포
허용 목록/거부 목록을 사용한 정책 기반 제어: 사용자가 자신의 서버를 추가할 수 있지만 허용되는 서버를 제한
이러한 옵션을 통해 IT 관리자는 다음을 수행할 수 있습니다:
직원이 액세스할 수 있는 MCP 서버 제어: 조직 전체에 표준화된 승인된 MCP 서버 세트 배포
승인되지 않은 MCP 서버 방지: 사용자가 승인되지 않은 MCP 서버를 추가하지 못하도록 제한
MCP 완전히 비활성화: 필요한 경우 MCP 기능을 완전히 제거
옵션 1: managed-mcp.json을 사용한 독점 제어
managed-mcp.json 파일을 배포하면 모든 MCP 서버에 대한 독점 제어를 갖습니다. 사용자는 이 파일에 정의된 서버 이외의 MCP 서버를 추가, 수정 또는 사용할 수 없습니다. 이는 완전한 제어를 원하는 조직에 가장 간단한 방법입니다.
허용 목록에 모든serverCommand 항목이 포함되면 stdio 서버는 해당 명령 중 하나와 일치해야 합니다
Stdio 서버는 명령 제한이 있을 때 이름만으로는 통과할 수 없습니다
이는 관리자가 실행할 수 있는 명령을 적용할 수 있도록 합니다
비 stdio 서버 동작:
원격 서버 (HTTP, SSE, WebSocket)는 허용 목록에 serverUrl 항목이 있을 때 URL 기반 일치를 사용합니다
URL 항목이 없으면 원격 서버는 이름 기반 일치로 돌아갑니다
명령 제한은 원격 서버에 적용되지 않습니다
URL 기반 제한의 작동 방식
URL 패턴은 *를 사용하여 와일드카드를 지원하여 모든 문자 시퀀스와 일치합니다. 이는 전체 도메인 또는 하위 도메인을 허용하는 데 유용합니다.
와일드카드 예:
https://mcp.company.com/* - 특정 도메인의 모든 경로 허용
https://*.example.com/* - example.com의 모든 하위 도메인 허용
http://localhost:*/* - localhost의 모든 포트 허용
호스트명 일치는 대소문자를 구분하지 않으며 후행 FQDN 점을 무시하여 DNS 의미론을 따릅니다. *://Mcp.Example.com/*와 같은 패턴은 https://mcp.example.com/api와 일치하며, https://mcp.example.com.은 https://mcp.example.com과 동일하게 처리됩니다. 스킴과 경로는 대소문자를 구분합니다.
원격 서버 동작:
허용 목록에 모든serverUrl 항목이 포함되면 원격 서버는 해당 URL 패턴 중 하나와 일치해야 합니다
모든 명령을 사용한 "internal-tool"이라는 Stdio 서버: ✅ 허용됨 (명령 제한 없음)
"github"라는 이름의 HTTP 서버: ✅ 허용됨 (이름과 일치)
"other"라는 이름의 모든 서버: ❌ 차단됨 (이름과 일치하지 않음)
허용 목록 동작 (allowedMcpServers)
undefined (기본값): 제한 없음 - 사용자는 모든 MCP 서버를 구성할 수 있습니다
빈 배열 []: 완전한 잠금 - 사용자는 MCP 서버를 구성할 수 없습니다
항목 목록: 사용자는 이름, 명령 또는 URL 패턴과 일치하는 서버만 구성할 수 있습니다
거부 목록 동작 (deniedMcpServers)
undefined (기본값): 차단된 서버 없음
빈 배열 []: 차단된 서버 없음
항목 목록: 지정된 서버는 모든 범위에서 명시적으로 차단됩니다
중요한 참고 사항
옵션 1과 옵션 2를 결합할 수 있습니다: managed-mcp.json이 존재하면 독점 제어를 가지며 사용자는 서버를 추가할 수 없습니다. 허용 목록/거부 목록은 여전히 관리되는 서버 자체에 적용됩니다.
거부 목록이 절대 우선순위를 갖습니다: 서버가 거부 목록 항목과 일치하면 (이름, 명령 또는 URL로) 허용 목록에 있어도 차단됩니다
이름 기반, 명령 기반 및 URL 기반 제한이 함께 작동합니다: 서버는 이름 항목, 명령 항목 또는 URL 패턴과 일치하면 통과합니다 (거부 목록으로 차단되지 않는 한)
mcp.md+12−2
325/mcp325/mcp
326```326```
327327
328`/mcp` 패널은 각 연결된 서버 옆에 도구 개수를 표시하고 도구 기능을 광고하지만 도구를 노출하지 않는 서버에 플래그를 지정합니다.
329
330서버 이름 `workspace`는 내부 사용을 위해 예약되어 있습니다. 구성에서 해당 이름의 서버를 정의하면 Claude Code는 로드 시 이를 건너뛰고 이름을 바꾸도록 요청하는 경고를 표시합니다.
331
328### 동적 도구 업데이트332### 동적 도구 업데이트
329333
330Claude Code는 MCP `list_changed` 알림을 지원하므로 MCP 서버가 연결을 끊었다가 다시 연결할 필요 없이 사용 가능한 도구, 프롬프트 및 리소스를 동적으로 업데이트할 수 있습니다. MCP 서버가 `list_changed` 알림을 보내면 Claude Code는 해당 서버에서 사용 가능한 기능을 자동으로 새로 고칩니다.334Claude Code는 MCP `list_changed` 알림을 지원하므로 MCP 서버가 연결을 끊었다가 다시 연결할 필요 없이 사용 가능한 도구, 프롬프트 및 리소스를 동적으로 업데이트할 수 있습니다. MCP 서버가 `list_changed` 알림을 보내면 Claude Code는 해당 서버에서 사용 가능한 기능을 자동으로 새로 고칩니다.
421425
422## MCP 설치 범위426## MCP 설치 범위
423427
424MCP 서버는 세 가지 범위에서 구성할 수 있습니다. 선택한 범위는 서버가 로드되는 프로젝트와 구성이 팀과 공유되는지 여부를 제어합니다.428MCP 서버는 세 가지 범위에서 구성할 수 있습니다. 선택한 범위는 서버가 로드되는 프로젝트와 구성이 팀과 공유되는지 여부를 제어합니다. 관리자는 [관리형 구성](#managed-mcp-configuration)을 통해 엔터프라이즈 수준에서 서버를 배포할 수도 있습니다.
425429
426| 범위 | 로드 위치 | 팀과 공유 | 저장 위치 |430| 범위 | 로드 위치 | 팀과 공유 | 저장 위치 |
501동일한 이름의 서버가 둘 이상의 위치에 정의되면 Claude Code는 가장 높은 우선순위 소스의 정의를 사용하여 한 번 연결합니다:505동일한 서버가 둘 이상의 위치에 정의되면 Claude Code는 가장 높은 우선순위 소스의 정의를 사용하여 한 번 연결합니다:
502506
5031. 로컬 범위5071. 로컬 범위
5042. 프로젝트 범위5082. 프로젝트 범위
942 </Step>946 </Step>
943</Steps>947</Steps>
944948
949Claude Code에서 추가한 서버는 동일한 URL을 가리키는 claude.ai 커넥터보다 [우선순위](#scope-hierarchy-and-precedence)를 갖습니다. 이 경우 `/mcp`는 커넥터를 숨김으로 표시하고 커넥터를 사용하려는 경우 중복을 제거하는 방법을 표시합니다.
1182`alwaysLoad` 필드는 모든 서버 유형에서 사용 가능하며 Claude Code v2.1.121 이상이 필요합니다. MCP 서버는 도구의 `_meta` 객체에 `"anthropic/alwaysLoad": true`를 포함하여 개별 도구를 항상 로드되도록 표시할 수도 있으며, 이는 해당 도구에만 동일한 효과를 갖습니다.1188`alwaysLoad` 필드는 모든 서버 유형에서 사용 가능하며 Claude Code v2.1.121 이상이 필요합니다. MCP 서버는 도구의 `_meta` 객체에 `"anthropic/alwaysLoad": true`를 포함하여 개별 도구를 항상 로드되도록 표시할 수도 있으며, 이는 해당 도구에만 동일한 효과를 갖습니다.
11831189
1190`alwaysLoad: true`를 설정하면 서버가 연결될 때까지 시작이 차단되며, 표준 5초 연결 타임아웃으로 제한됩니다. 이는 [`MCP_CONNECTION_NONBLOCKING=1`](/ko/env-vars)이 설정된 경우에도 적용됩니다. 첫 번째 프롬프트가 빌드될 때 도구가 있어야 하기 때문입니다. 비차단이 활성화된 경우 다른 서버는 여전히 백그라운드에서 연결됩니다.
1191
1184## MCP 프롬프트를 명령으로 사용1192## MCP 프롬프트를 명령으로 사용
11851193
1186MCP 서버는 Claude Code에서 명령으로 사용 가능하게 되는 프롬프트를 노출할 수 있습니다.1194MCP 서버는 Claude Code에서 명령으로 사용 가능하게 되는 프롬프트를 노출할 수 있습니다.
1349* `https://*.example.com/*` - example.com의 모든 하위 도메인 허용1357* `https://*.example.com/*` - example.com의 모든 하위 도메인 허용
1350* `http://localhost:*/*` - localhost의 모든 포트 허용1358* `http://localhost:*/*` - localhost의 모든 포트 허용
13511359
1360호스트명 일치는 대소문자를 구분하지 않으며 후행 FQDN 점을 무시하여 DNS 의미론을 따릅니다. `*://Mcp.Example.com/*`와 같은 패턴은 `https://mcp.example.com/api`와 일치하며, `https://mcp.example.com.`은 `https://mcp.example.com`과 동일하게 처리됩니다. 스킴과 경로는 대소문자를 구분합니다.
1361
1352**원격 서버 동작**:1362**원격 서버 동작**:
13531363
1354* 허용 목록에 **모든** `serverUrl` 항목이 포함되면 원격 서버는 해당 URL 패턴 중 하나와 일치해야 합니다1364* 허용 목록에 **모든** `serverUrl` 항목이 포함되면 원격 서버는 해당 URL 패턴 중 하나와 일치해야 합니다