Quantos MCPs deixar ligados no Claude Code? O custo de contexto das ferramentas conectadas

gráfico do custo de contexto MCP com ferramentas conectadas no Claude Code
Resposta rápida

O custo de contexto MCP é o que suas ferramentas conectadas ocupam antes de você escrever a primeira frase: nomes de ferramentas MCP, descrições de skills, CLAUDE.md e memória automática já entram na sessão. No Claude Code o tool search vem ligado por padrão, então as definições ficam adiadas e só os nomes e as instruções do servidor carregam de cara. Para decidir quantos MCPs deixar ligados, rode /context para ver a quebra por categoria, /mcp e claude mcp list para ver o que está conectado, e /usage para ver a fatia de cada servidor

Fala aí, beleza? A tua sessão do Claude Code já começa com a janela de contexto parcialmente ocupada, mesmo que tu não tenha digitado uma única letra ainda

Antes da primeira frase já carregaram o CLAUDE.md, a memória automática, os nomes das ferramentas MCP e as descrições das skills

Aí a pergunta do título deixa de ser gosto pessoal e vira orçamento: quantos MCPs cabem ligados sem comer o espaço que a tarefa de verdade precisa?

Se liga que a resposta não é um número mágico, é uma leitura de dois comandos que tu já tem na mão

O que ocupa a janela de contexto antes de você escrever a primeira frase

O comando /context mostra tudo que ocupa a janela da sessão, quebrado por categoria: system prompt, ferramentas do sistema, ferramentas MCP, subagents customizados, arquivos de memória, skills e conversa

Ele ainda traz sugestões de otimização e diz quais arquivos CLAUDE.md e de memória automática foram carregados

E por que isso importa tanto? Porque cada token gasto com definição de ferramenta é um token que não vai pro teu código, pro erro que tu colou ou pro arquivo que o agente precisa ler

Formação Claude Code
Formação Recomendada

Formação Claude Code

Domine Claude Code do absoluto zero até o avançado

  • 116 aulas
  • 4 projetos
  • 9h 23min

Quanto isso pesa quando nada é adiado

O post de engenharia da Anthropic sobre executar código com MCP dá a régua

Um setup de cinco servidores MCP com 58 ferramentas consome cerca de 55 mil tokens antes de a conversa começar

Acrescenta o servidor do Jira (que sozinho usa cerca de 17 mil tokens) e mais uns amigos, e o overhead passa de 100 mil tokens

Na própria Anthropic, as definições de ferramentas chegaram a consumir 134 mil tokens antes da otimização

Esse é o custo de contexto MCP que ninguém vê na tela: ele não aparece como mensagem, aparece como "por que essa sessão encheu tão rápido?"

O alívio: o prefixo estável é cacheado

Calma que nem tudo é tragédia

Conteúdo que se mantém igual entre turnos (system prompt, definições de ferramentas, CLAUDE.md) recebe prompt cache automático, o que reduz custo e latência dos prefixos repetidos

Ou seja: o peso continua ocupando espaço na janela, mas tu não paga o preço cheio de reprocessar aquilo a cada turno

Espaço na janela e custo por turno são duas contas diferentes, vale não misturar as duas 🙂

Como auditar o peso dos seus servidores MCP

Bora ver na prática? O roteiro abaixo usa só o que já vem no Claude Code

  1. Rode /context dentro da sessão e leia a quebra por categoria

É aqui que tu descobre quanto as ferramentas MCP estão pesando perto do resto (memória, skills, subagents)

O erro comum deste passo: rodar o /context no meio de uma conversa longa e culpar os MCPs pelo que na verdade é histórico de conversa. Olhe a categoria, não só o total

  1. Rode /mcp para listar os servidores configurados
/mcp

Ele mostra todos os servidores configurados, o status de conexão e se você aprovou o servidor para o projeto atual

O erro comum deste passo: confundir servidor conectado com servidor usado. Conectado só quer dizer que ele subiu, não que alguma tarefa tua encostou nele nas últimas duas semanas

  1. No terminal, cheque a saúde de cada um
claude mcp list
claude mcp get <nome>

O claude mcp list lista os servidores com status de saúde (Connected, Needs authentication ou Failed to connect) e o claude mcp get <nome> mostra os detalhes de um servidor específico

O erro comum deste passo: deixar um servidor em Needs authentication parado no setup por meses. Ele continua na tua configuração e continua sendo apresentado ao modelo, mesmo sem tu conseguir usar

  1. Rode /usage para ver quem realmente consome

Nos planos Pro, Max, Team e Enterprise, o /usage mostra a quebra do que conta contra os limites do plano, atribuindo o uso recente a skills, subagents, plugins e servidores MCP individuais, cada um como percentual do total

As teclas d e w alternam entre 24 horas e 7 dias, o que é ótimo pra separar o que tu usa todo dia do que tu usou uma vez

O erro comum deste passo: ler número de versão antiga como se fosse a fatia real. A fatia de um servidor MCP conta só as requisições que consumiram um resultado de ferramenta dele, e essa atribuição foi corrigida a partir da versão 2.1.222. Antes disso, o Claude Code atribuía toda requisição seguinte ao servidor e superestimava a fatia

Com esses quatro números na mesa (peso na janela, lista de conectados, saúde e fatia de uso), a decisão de podar deixa de ser chute

Tool search ligado, por limiar ou desligado: o que muda

Aqui tem uma boa notícia que muita gente ainda não atualizou na cabeça: no Claude Code, o tool search vem ligado por padrão

Na prática, as definições das ferramentas MCP são adiadas em vez de carregadas de cara, e só os nomes das ferramentas e as instruções do servidor entram no início da sessão

Com o adiamento ativo, adicionar mais servidores MCP tem impacto mínimo na janela de contexto

Que adiamento? O agente recebe um resumo das ferramentas disponíveis e vai buscar as relevantes quando a tarefa exige uma capacidade que ainda não foi carregada. Em vez do catálogo inteiro, entram no contexto até cinco das ferramentas mais relevantes de cada busca, e elas ficam disponíveis nos turnos seguintes

Modo O que acontece Quando faz sentido
Padrão do Claude Code (tool search ligado) Definições adiadas, agente recebe um resumo das ferramentas e busca sob demanda; carrega até cinco das ferramentas mais relevantes por busca, que ficam disponíveis nos turnos seguintes Conjunto grande de ferramentas, vários servidores ligados, sessão longa
ENABLE_TOOL_SEARCH=auto Carregamento por limiar: carrega todos os schemas enquanto as definições adiáveis somarem menos de 10% da janela de contexto e adia todas assim que atingem 10% Setup enxuto, quando tu quer schema completo enquanto o peso for pequeno
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS Mantém o tool search desligado Quando tu precisa de comportamento previsível sem beta ligado
alwaysLoad: true na config do servidor As ferramentas daquele servidor ficam disponíveis com o schema completo já no primeiro turno, isentas do adiamento O servidor que tu usa em praticamente toda tarefa do projeto

O preço do adiamento existe e é honesto dizer qual é: o tool search adiciona um round-trip extra na primeira vez que o Claude descobre uma ferramenta (a etapa de busca)

Esse custo é compensado pelo contexto menor a cada turno em conjuntos grandes de ferramentas

E os ganhos, dá pra medir?

Dá, e os números da documentação de tool search e do material de engenharia ajudam a dimensionar

Na Claude Developer Platform, o Tool Search Tool preserva 191.300 tokens de contexto contra 122.800 da abordagem tradicional, mantendo acesso à biblioteca completa de ferramentas

E não é só espaço: em testes internos da Anthropic com bibliotecas grandes de ferramentas, a acurácia em avaliações MCP subiu de 49% para 74% no Opus 4, e de 79,5% para 88,1% no Opus 4.5, com o Tool Search Tool ligado

Menos ferramenta empilhada na frente do modelo também significa menos chance de ele escolher a errada, sacou?

E tem um caminho ainda mais agressivo: executar código com MCP, apresentando os servidores como APIs de código em vez de chamadas diretas de ferramenta, reduz o overhead de contexto em até 98,7%

Um detalhe pra não confundir produto: na Claude Developer Platform, quem constrói envia todas as definições pra API e marca ferramentas com defer_loading: true pra deixá-las descobríveis sob demanda, enquanto o Claude só enxerga o Tool Search Tool e as ferramentas com defer_loading: false

Isso é configuração de API, não de Claude Code. No CLI, o teu botão é o tool search e o alwaysLoad

Quais conexões valem estar ligadas por padrão e quais ligar sob demanda

Nenhuma fonte oficial define um teto de servidores, então não vou inventar número mágico aqui (essas coisas toscas ficam pra outro blog)

O critério que dá pra defender é de frequência: o que aparece em quase toda tarefa fica sempre carregado, o que aparece de vez em quando fica adiado ou fora

Servidor de toda tarefa

Se é o servidor que tu usa em praticamente todo trabalho daquele repositório, ele é candidato a alwaysLoad: true e a escopo de projeto

Servidores MCP são registrados por padrão no escopo local (privado pra você, ativo só no projeto atual)

claude mcp add <nome> --scope user
claude mcp add <nome> --scope project

O --scope user registra pra todos os seus projetos e o --scope project compartilha com o time

Tome cuidado com o --scope user: é ali que a bola de neve se forma, porque um servidor que servia pra um projeto passa a ocupar espaço em TODOS

Servidor de uma vez por semana

Esse fica no adiamento (o padrão já resolve) ou sai de vez

claude mcp remove <nome>
claude mcp remove <nome> --scope user

A flag --scope também vale no claude mcp remove, então preste atenção em qual escopo tu está removendo, senão parece que não removeu nada

As configurações de escopo user e local ficam em ~/.claude.json, e as de escopo project ficam em .mcp.json

Quando tu não quer remover, só barrar

Tem dois desligamentos por configuração que resolvem casos diferentes

A entrada disabledMcpjsonServers rejeita um servidor do .mcp.json pelo nome em todo tipo de sessão

deniedMcpServers é uma denylist que vale pra todos os escopos e tem precedência sobre a allowlist

Ou seja: dá pra manter o .mcp.json do time intacto e ainda assim não carregar aquele servidor que tu nunca usa

É o mesmo tipo de decisão de quando tu resolve se vale deixar o agente commitar por você: não é sobre a ferramenta ser boa, é sobre ela precisar estar ligada por padrão

Sinais de que suas ferramentas estão comendo contexto (e o que fazer)

Sintoma: apareceu aviso de saída gigante de ferramenta MCP

O Claude Code exibe um aviso quando a saída de uma ferramenta MCP passa de 10.000 tokens, e limita a saída a 25.000 tokens por padrão

A causa costuma ser consulta ampla demais (listar tudo em vez de filtrar)

A solução: ou aperta a consulta, ou ajusta o limite com MAX_MCP_OUTPUT_TOKENS

Só não espere o aviso sumir: o limiar do aviso é fixo, mesmo que tu aumente o limite

E se a ferramenta declara anthropic/maxResultSizeChars, é esse valor que vale pro conteúdo de texto, independentemente do MAX_MCP_OUTPUT_TOKENS

Sintoma: a janela enche cedo demais

A causa quase sempre é acúmulo: servidor que entrou pra um teste, ficou no escopo user e nunca mais saiu

A solução é a sequência de sempre: /context pra ver a quebra, deixar o adiamento fazer o trabalho dele e podar o que não aparece no /usage da semana

E nada de pânico: quando a janela de contexto enche, o Claude Code compacta automaticamente conforme se aproxima do limite, então contexto cheio não encerra a sessão

A compactação equivale ao passo /compact, e ela salva a sessão, mas não devolve o espaço que tu queimou em definição de ferramenta que nunca foi usada

Como prevenir

Revisar a lista de servidores por projeto, em vez de acumular tudo no escopo user

Cada repositório tem uma cara: o que é essencial num não é nem lembrado no outro

Conclusão

A régua é simples: o número certo de MCPs ligados é o que sobrevive a uma leitura do /context e do /usage

Com o tool search ligado por padrão no Claude Code, ter servidor a mais dói bem menos do que doía, porque as definições ficam adiadas e só entram quando a tarefa pede

Mas isso não é desculpa pra virar depósito de conexão, beleza?

Próximo passo bem concreto pra hoje: roda /context agora, compara com a fatia por servidor no /usage em 7 dias (tecla w) e remove ou deixa adiado tudo que não apareceu na semana

Se sobrar dois servidores no fim, tá ótimo. Se sobrar oito e o /context continuar folgado, também tá 😀

até o próximo post!

Perguntas frequentes

Quantos servidores MCP dá pra deixar conectados no Claude Code sem estourar o contexto?

Não tem um número fixo, porque o tool search vem ligado por padrão e adia as definições das ferramentas MCP em vez de carregar tudo de cara. Com o adiamento ativo, adicionar mais servidores tem impacto mínimo na janela de contexto. O que decide de verdade é rodar /context pra ver o peso atual e /usage pra ver quem realmente é usado.

O que muda ao usar ENABLE_TOOL_SEARCH=auto em vez do padrão do Claude Code?

Essa variável troca pra um carregamento por limiar: o Claude Code carrega todos os schemas enquanto as definições adiáveis somarem menos de 10% da janela de contexto. Assim que esse conjunto atinge os 10%, tudo passa a ser adiado. Faz sentido pra setup enxuto, quando tu quer schema completo enquanto o peso ainda for pequeno.

Como descobrir qual servidor MCP está pesando mais na sessão do Claude Code?

O /context mostra a categoria ‘ferramentas MCP’ separada do resto (system prompt, skills, subagents, memória). Já o /usage, disponível nos planos Pro, Max, Team e Enterprise, atribui o uso recente a cada servidor MCP em percentual do total. Vale lembrar que essa atribuição só ficou precisa a partir da versão 2.1.222; antes disso o Claude Code superestimava a fatia de cada servidor.

Vale a pena usar alwaysLoad: true num servidor MCP?

Definir alwaysLoad: true na configuração do servidor deixa as ferramentas dele disponíveis com o schema completo já no primeiro turno, isentas do adiamento do tool search. Faz sentido pra um servidor que tu usa em praticamente toda tarefa, onde o round-trip extra da busca não compensa. Pra servidor de uso ocasional, deixar o tool search cuidar do adiamento tende a poupar mais espaço.

Por que aparece um aviso quando uma ferramenta MCP retorna muito conteúdo?

O Claude Code exibe um aviso quando a saída de uma ferramenta MCP passa de 10.000 tokens, e por padrão limita essa saída a 25.000 tokens. A variável MAX_MCP_OUTPUT_TOKENS ajusta esse limite, mas o limiar do aviso continua fixo em 10.000. Se a ferramenta declarar anthropic/maxResultSizeChars, esse valor tem precedência sobre o MAX_MCP_OUTPUT_TOKENS pra conteúdo de texto.



Escrito por | Matheus Battisti

Matheus Battisti
Fundador da Hora de Codar

Programador apaixonado pelo mundo das tecnologias, sempre buscando em aprender e se aprofundar em linguagens, frameworks e o que mais for necessário para executar um bom trabalho. Agora tem uma nova missão que é de passar seu conhecimento adiante para formar novos programadores e especializar mais os que já são.

Subscribe
Notify of
guest

0 Comentários
Oldest
Newest Most Voted

Formações

Formação Vibe Coding

Formação Vibe Coding

Do Prompt ao Produto: Crie Software Real com IA

  • 474 aulas
  • 20 projetos
  • 39h 27min

Blog | Mais populares