
Mantendo um Grande Registro de Ferramentas MCP Disponível Sem Carregá-lo Todo no Contexto
Plataforma: DEV.to
Idioma: pt
URL publicada:
Alvo de retorno canônico: https://formlova.com/en/blog/mcp-tool-context-allocation-en
Alvo UTM: https://formlova.com/en/blog/mcp-tool-context-allocation-en?utm_source=devto&utm_medium=external_article&utm_campaign=mcp_context_allocation_202608
Canônico do documento: omitir
Decisão de roteamento: apenas canônico
Palavra-chave principal: contexto da ferramenta MCP
Banco de fontes: topics/blog/interviews/83-mcp-context-allocation-external-pack.md
Fonte de evidência: topics/blog/article/104-mcp-tool-context-allocation-en.md, docs/reports/2026-07-29-mcp-progressive-discovery-goal-contract.md
Público: engenheiros de servidor MCP e plataforma de agentes que trabalham com grandes registros de ferramentas
Ângulo: Um padrão de arquitetura medido que separa a disponibilidade do registro, a descoberta de protocolos e a injeção de contexto do lado do host, incluindo a regressão de latência que impede uma reivindicação de sucesso simplista
Título sugerido: Mantendo um Grande Registro de Ferramentas MCP Disponível Sem Carregá-lo Todo no Contexto
Ativo de capa sugerido: topics/blog/external/assets/257-dev-mcp-context-progressive-discovery.webp
Um servidor MCP pode expor uma grande e útil superfície de ferramentas e ainda assim tornar um agente pior na tarefa à sua frente.
A falha não está necessariamente nas ferramentas. Pode acontecer antes da primeira chamada de ferramenta, quando cada nome, descrição e esquema de entrada competem com o pedido do usuário pelo mesmo contexto de modelo.
Encontrei isso enquanto trabalhava na FORMLOVA, um servidor MCP de operações de formulários. O experimento usou um instantâneo de registro de 142 ferramentas. O registro público atual da FORMLOVA contém 138 ferramentas a partir de 13 de agosto de 2026, então as medições abaixo devem ser lidas como resultados para aquele instantâneo histórico de 142 ferramentas. Eu não queria remover capacidades apenas para tornar o prompt inicial menor. Eu queria que o host mantivesse o mesmo registro disponível enquanto carregava definições apenas quando um pedido precisava delas.
Isso soa como um recurso simples de busca de ferramentas. Não é.
A implementação tem três camadas separadas, e o resultado tem pelo menos quatro coisas a verificar:
- o registro completo permanece disponível;
- o modelo pode descobrir as definições relevantes;
- a descoberta leva às chamadas de ferramentas exatamente pretendidas;
- a redução de tokens não oculta uma regressão de latência ou confiabilidade.
Aqui está a arquitetura e a medição que mudaram como eu penso sobre grandes servidores MCP.
Primeiro, meça a superfície que você já possui
Comecei com um inventário em nível de fonte em vez de uma fatura de modelo.
As instruções MCP compartilhadas, descrições de ferramentas públicas e descrições de parâmetros na fonte da FORMLOVA totalizaram 107.476 caracteres. Dividindo por quatro, temos uma estimativa aproximada de 26.869 tokens.
Esse número é intencionalmente impreciso.
Não é uma medição de token ao vivo. Exclui parte do custo estrutural do JSON Schema gerado. Diferentes hosts serializam definições de maneira diferente. O cache de prompt pode mudar a entrada faturada. O valor é útil como um sinal de engenharia de limite inferior, não como uma reivindicação de custo.
A pergunta importante não era se a estimativa era exata. A pergunta importante era se esse tanto de material de ferramenta precisava entrar na entrada inicial do modelo para cada pedido.
Considere três pedidos:
- listar dois formulários e inspecionar um deles;
- encontrar uma operação de fluxo de trabalho incomum;
- explicar um conceito sem chamar nenhuma ferramenta.
O primeiro pedido provavelmente precisa de duas definições familiares. O segundo precisa de descoberta. O terceiro não precisa de nenhuma. Um prompt estático de todas as ferramentas trata os três como se exigissem todo o registro.
Esse é o problema de alocação.
Não colapse três camadas de descoberta em uma só
A maior confusão nesta área vem do uso de “descoberta de ferramentas” para descrever diferentes operações.
Camada 1: o registro do servidor
O servidor possui os contratos de ferramentas. Ele define nomes, descrições, esquemas de entrada, anotações e comportamento de execução.
A FORMLOVA ainda tinha 142 ferramentas em ambos os lados do experimento. A descoberta progressiva não significou excluir 140 ferramentas e fingir que o sistema havia melhorado.
Camada 2: descoberta de protocolo MCP
Os clientes MCP usam tools/list para recuperar definições de ferramentas de um servidor. O protocolo define como o registro é exposto. Não prova, por si só, como um host específico coloca essas definições em um prompt de modelo.
Essa distinção é importante porque uma resposta bem-sucedida de tools/list informa que o cliente recebeu definições. Não diz que todos os esquemas entraram no contexto do modelo, ou que nenhum deles entrou.
Camada 3: exposição do modelo do lado do host
O host decide o que o modelo vê e quando.
Um host pode registrar um grande conjunto de ferramentas enquanto expõe inicialmente apenas uma superfície de descoberta. O modelo busca definições relevantes, o host retorna referências ou esquemas selecionados, e o modelo então chama as ferramentas-alvo.
Essa é a camada onde o contexto inicial pode realmente mudar.
Um helper do lado do servidor, como search_tools, ainda pode ser útil. Ele pode dar ao modelo navegação semântica dentro de uma grande superfície de produto. Mas não prova que o host adiou as outras definições. Se todos os esquemas já foram carregados, a busca do lado do servidor é navegação após a alocação, não alocação em si.
O fluxo de candidatos
O fluxo de candidatos que testei parecia assim:
Pedido do usuário
-> host expõe ToolSearch
-> modelo busca o conjunto de ferramentas registradas
-> host retorna referências às ferramentas relevantes
-> modelo recebe definições selecionadas
-> modelo chama a sequência exata de destino
Para um fixture comum somente leitura, a sequência nativa esperada era:
ToolSearch
-> list_forms
-> get_form
A validação não parou em "a resposta final parecia certa." O sistema verificou se a descoberta aconteceu, se as referências incluíam os alvos, se as chamadas nativas ocorreram na ordem exigida e se ferramentas não aprovadas não foram usadas.
Isso é importante para qualquer avaliação de busca de ferramentas. Um modelo pode produzir uma frase plausível sem executar a operação que você pretendia. Ele também pode encontrar uma ferramenta semântica próxima que retorna dados semelhantes. A saída funcional sozinha é um contrato muito fraco.
Mantenha o registro base e o registro de candidatos idênticos
Se a linha de base tem 142 ferramentas e o candidato tem 12, você está testando a remoção de capacidade tanto quanto a descoberta progressiva.
Mantive o mesmo registro em ambas as condições e verifiquei os nomes das ferramentas e os resumos das definições antes e depois da execução. A variável era como o host expôs definições ao modelo.
A porta formal da Fase 1 cobriu três tipos de prompt:
| Tipo de prompt | Por que existe |
|---|---|
| Ferramenta comum | Testa uma operação óbvia cuja de |
Empresas brasileiras que utilizam servidores MCP podem otimizar a eficiência de suas ferramentas, evitando a sobrecarga de contexto em solicitações. Isso pode resultar em respostas mais rápidas e precisas, melhorando a experiência do usuário e a eficácia operacional.
