30초 요약: 기본값에서는 공짜에 가깝습니다
1. MCP 서버를 0개에서 3개로 늘려도 Free space는 950.5k로 동일했습니다. 늘어난 건 ‘MCP tools (deferred)’라는 별도 줄뿐이고, 이 값은 실제 사용량에 포함되지 않습니다.
2. ENABLE_TOOL_SEARCH=false로 도구 검색을 끄자 같은 구성에서 Free space가 950.5k → 926.2k로 떨어졌습니다. 24.3k가 선불로 나갔습니다.
3. 스코프가 중요합니다. --scope user로 등록한 서버는 바로 연결되지만, 프로젝트 .mcp.json은 승인 전까지 아예 로드되지 않습니다.
결론부터 말하면 요즘 Claude Code에서 MCP 서버 개수는 컨텍스트 걱정거리가 아닙니다. 걱정할 것은 도구 검색이 꺼지는 상황이고, 그건 내가 끄지 않아도 환경에 따라 자동으로 꺼질 수 있습니다.
측정 방법
개인 설정이 섞이면 값이 오염되므로, 임시 폴더에 CLAUDE_CONFIG_DIR을 따로 지정해 격리했습니다. CLAUDE.md는 두 줄짜리 최소본만 뒀습니다.
mkdir mcp-lab && cd mcp-lab
export CLAUDE_CONFIG_DIR=$PWD/.cfg
claude -p "/context" ← 기준선 측정
claude mcp add --scope user fs -- npx -y @modelcontextprotocol/server-filesystem /tmp
claude -p "/context" ← 서버 추가 후 다시 측정
붙인 서버는 공식 레퍼런스 구현 세 개입니다. server-filesystem(파일 읽기·쓰기), server-memory(지식 그래프), server-sequential-thinking(단계적 사고). 셋 다 claude mcp list에서 ✔ Connected를 확인한 뒤 측정했습니다.
서버를 늘려 본 결과
같은 프로젝트에서 서버만 하나씩 추가하며 찍은 값입니다. 단위는 토큰, 창은 1M입니다.
| 구성 | System tools | MCP tools (deferred) | Free space |
|---|---|---|---|
| MCP 없음 | 11.6k | — | 950.5k |
| filesystem 1개 | 11.6k | — | 950.5k |
| + memory (2개) | 11.6k | 6.2k | 950.5k |
| + sequential-thinking (3개) | 11.6k | 7.8k | 950.5k |
오른쪽 끝 열이 핵심입니다. 서버가 0개일 때와 3개일 때의 Free space가 완전히 같습니다. ‘MCP tools (deferred)’가 7.8k로 잡히지만 그건 “나중에 필요하면 이만큼 불러올 수 있다”는 표시일 뿐, 지금 차지하고 있는 자리가 아닙니다.
표에서 하나 더 읽을 것이 있습니다. 서버 1개일 때는 MCP 줄이 아예 안 나왔습니다. npx로 받아 실행하는 서버라 첫 측정 시점에 아직 연결이 끝나지 않았기 때문으로 보입니다. 서버를 막 추가한 직후라면 claude mcp list로 ✔ Connected를 먼저 확인하는 편이 정확합니다.

왜 안 늘어나나: 도구 검색(tool search)
이유는 공식 문서에 명확히 적혀 있습니다. Claude Code 문서의 “Scale with MCP tool search” 절이 이렇게 설명합니다.
“도구 검색은 Claude가 필요로 할 때까지 도구 정의를 지연시켜 MCP 컨텍스트 사용량을 낮게 유지한다. 세션 시작 시에는 도구 이름과 서버 지침만 로드되므로, MCP 서버를 더 추가해도 컨텍스트 창에 미치는 영향이 최소화된다.”
그리고 한 줄 더 붙습니다. “Claude Code는 서버당 고정된 도구 개수 상한을 두지 않는다. 실질적인 한계는 컨텍스트 창 예산이다.” 즉 “서버 N개까지” 같은 제한은 없습니다.

API 쪽 문서에는 구체적인 수치가 있습니다. GitHub·Slack·Sentry·Grafana·Splunk를 쓰는 전형적인 멀티서버 구성은 정의만으로 약 55k 토큰을 먹고, 도구 검색이 이를 85% 넘게 줄여 요청당 실제로 필요한 3~5개만 로드한다고 설명합니다.
두 번째 이유도 함께 적혀 있습니다. 도구가 30~50개를 넘어가면 Claude가 맞는 도구를 고르는 정확도 자체가 떨어진다는 것입니다. 도구 검색은 비용만이 아니라 정확도 문제이기도 합니다.
설정을 끄면 24.3k가 사라집니다
그럼 도구 검색이 꺼지면 어떻게 되는지 같은 환경에서 재봤습니다. 서버 3개 구성 그대로입니다.
| ENABLE_TOOL_SEARCH | System tools | MCP tools | Free space | 차이 |
|---|---|---|---|---|
| 기본값 (지연) | 11.6k | 7.8k (deferred) | 950.5k | 기준 |
| auto | 28.8k | 7.8k (로드됨) | 925.5k | -25.0k |
| false | 28.1k | 7.8k (로드됨) | 926.2k | -24.3k |
주목할 점은 줄어든 폭이 MCP 도구 7.8k보다 훨씬 크다는 것입니다. System tools도 11.6k에서 28k대로 함께 뜁니다. 도구 검색이 꺼지면 MCP 도구만이 아니라 지연 상태였던 내장 도구 정의까지 전부 선불로 실리기 때문입니다.
공식 문서가 도구 검색이 자동으로 꺼지는 조건을 몇 가지 적어 두었습니다.
· ANTHROPIC_BASE_URL이 1차 제공자가 아닌 호스트를 가리킬 때. 대부분의 프록시가 tool_reference 블록을 전달하지 않기 때문입니다.
· CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS가 설정된 경우. 이때는 ENABLE_TOOL_SEARCH로 되돌릴 수 없습니다.
· Azure에 호스팅된 Microsoft Foundry 배포. 서버 쪽에서 거부하므로 역시 덮어쓸 수 없습니다.
· 모델 요건도 있습니다. tool_reference 블록을 지원하는 Sonnet 4.5·Haiku 4.5·Opus 4.5 이상이어야 합니다.
사내 게이트웨이나 프록시를 통해 Claude Code를 쓰는 환경이라면 이 조건에 걸릴 가능성이 높습니다. 그 경우 MCP 서버 개수가 실제로 컨텍스트 비용이 되므로, 위 표의 두 번째·세 번째 줄이 내 상황이 됩니다.
스코프에 따라 로드 여부가 갈립니다
측정 중에 예상 밖으로 걸린 지점이 있습니다. 프로젝트 루트에 .mcp.json을 두는 방식으로 먼저 시도했는데, /context에 MCP 줄이 전혀 나타나지 않았습니다. claude mcp list로 확인하니 이유가 나왔습니다.
filesystem: npx -y @modelcontextprotocol/server-filesystem /tmp - ⏸ Pending approval (run `claude` to approve)
프로젝트 스코프 서버는 대화형으로 한 번 승인하기 전까지 연결되지 않습니다. 저장소를 받아 온 팀원이 .mcp.json만 보고 “MCP가 붙어 있다”고 생각해도 실제로는 안 붙어 있을 수 있다는 뜻입니다. 반면 --scope user로 등록하면 승인 절차 없이 바로 ✔ Connected가 됩니다.
| 등록 방식 | 승인 필요 | 적용 범위 | 측정 시 관찰 |
|---|---|---|---|
| 프로젝트 .mcp.json | 예 | 해당 저장소. 팀 공유에 적합 | ⏸ Pending approval, /context에 미표시 |
| claude mcp add --scope user | 아니요 | 내 계정의 모든 프로젝트 | ✔ Connected, deferred로 표시 |
보안 관점에서는 이 동작이 맞습니다. 남이 만든 저장소를 열자마자 임의의 명령이 실행되면 곤란하니까요. 다만 “왜 MCP가 안 먹지” 하고 헤맬 때 가장 먼저 확인할 지점이기도 합니다.
그래서 어떻게 쓰나
일반적인 개인 환경이라면서버 개수를 줄이려고 애쓸 필요가 없습니다. 기본값에서 지연 로드되므로 Free space에 영향이 없습니다. 필요한 서버는 붙여 두세요.
사내 프록시·게이트웨이를 통해 쓴다면/context를 한 번 찍어 ‘MCP tools’ 줄에 (deferred)가 붙어 있는지 확인하세요. 괄호가 없으면 도구 검색이 꺼진 상태이고, 그때는 안 쓰는 서버를 정리하는 것이 실제로 효과가 있습니다.
MCP가 안 붙는 것 같다면claude mcp list로 상태부터 봅니다. ⏸ Pending approval이면 대화형으로 한 번 승인해야 합니다.
CLI 도구로 대체할 수 있다면공식 비용 문서는 gh·aws·gcloud 같은 CLI가 도구별 목록을 컨텍스트에 추가하지 않아 MCP 서버보다 효율적이라고 안내합니다. 도구 검색이 꺼진 환경에서는 이 차이가 커집니다.
MCP 서버를 직접 만든다면도구 검색이 켜진 환경에서는 서버 지침(server instructions)이 중요해집니다. Claude가 언제 내 도구를 검색할지 판단하는 근거이기 때문입니다. 문서는 도구 설명과 서버 지침을 각각 2KB에서 잘라낸다고 밝히므로, 핵심을 앞쪽에 두고 짧게 쓰는 편이 안전합니다.
자주 묻는 질문
그럼 MCP 서버는 몇 개까지 붙여도 되나요?
공식 문서는 서버당 고정 상한이 없고 “실질적인 한계는 컨텍스트 창 예산”이라고 답합니다. 도구 검색이 켜져 있으면 이름값만 들어가므로 개수보다 도구 검색 작동 여부가 중요합니다.
deferred 7.8k는 언제 실제 비용이 되나요?
Claude가 그 도구를 실제로 쓰기로 판단해 스키마를 불러올 때입니다. 요청마다 필요한 몇 개만 로드되므로 7.8k 전체가 한꺼번에 들어오지는 않습니다.
도구 검색이 켜져 있는지 어떻게 확인하나요?
/context 출력에서 MCP 줄을 보면 됩니다. MCP tools (deferred)면 켜진 것이고, 괄호 없이 MCP tools이고 System tools가 크게 잡혀 있으면 꺼진 상태입니다.
이 측정에 한계는 없나요?
있습니다. 레퍼런스 서버 세 개로만 쟀고, 도구를 많이 노출하는 대형 서버는 값이 다를 수 있습니다. 그리고 /context가 내놓는 값은 문서 표기대로 추정치입니다. 실제로 도구를 호출해 스키마가 로드된 뒤의 변화는 이번에 측정하지 않았습니다.
측정은 2026년 9월 15일 macOS에서 Claude Code v2.1.271로 실행했습니다. 임시 프로젝트에 CLAUDE_CONFIG_DIR을 지정해 개인 설정을 격리하고, 공식 레퍼런스 MCP 서버 세 개(filesystem·memory·sequential-thinking)를 user 스코프로 하나씩 추가하며 claude -p "/context"를 반복 실행했습니다. 도구 검색 동작과 자동 비활성화 조건, 2KB 절단, 55k·85% 수치는 Claude Code MCP 문서와 Anthropic Tool search tool 문서에서 확인했습니다.
Claude Code MCP 문서 ↗ · Tool search tool ↗ · Manage costs effectively ↗