MCP tem 10.000 Servidores: Ainda Vale Usar Function Calling?
Voltar para o Blog
Artigo

MCP tem 10.000 Servidores: Ainda Vale Usar Function Calling?

Mafra
05/06/2026
6 min de leitura

Em março de 2026, o MCP atingiu 97 milhões de downloads mensais de SDK. Saiu de 100 mil no lançamento. Em 14 meses, o protocolo criado pela Anthropic virou a camada de infra padrão para agentes de IA, com mais de 10.000 servidores públicos ativos e suporte nativo em Cursor, Windsurf, Claude, GPT e Llama. Mas 97 milhões de downloads não significam que function calling morreu. Significam que você precisa saber quando um serve melhor que o outro.

O Problema com Function Calling em Escala

Function calling é elegante para sistemas pequenos. Você define um schema JSON, o modelo gera a chamada estruturada, seu código executa. Para 1 a 5 tools, funciona perfeitamente. O problema começa quando o sistema cresce.

O overhead é linear: cada request envia o schema de todas as tools disponíveis. Com 10 tools, você dobra o tamanho do contexto. Com 100 tools, a latência explode e o custo de tokens sobe proporcionalmente. Benchmarks publicados pela Portkey em 2026 mostram cold starts chegando a 2.485ms em sistemas com muitas tools. Não porque o modelo é lento: porque você está enviando um manual inteiro a cada request.

Além disso, function calling é vendor-specific. O schema da OpenAI difere do Google. O da Anthropic tem particularidades próprias. Mudar de modelo significa reescrever a camada de tools do zero.

Dado-chave: Sistemas com function calling e 100+ tools têm overhead que escala linearmente com o número de tools no contexto. O MCP carrega apenas as tools necessárias por interação (fonte: Portkey, 2026).

MCP Não Substitui Function Calling: Ele Padroniza a Execução

Aqui está o ângulo que a maioria dos tutoriais erra. MCP e function calling não são concorrentes. Function calling é a fase 1, geração de intenção: o modelo decide que quer chamar uma tool e gera o JSON. MCP é a fase 2, infra de execução: o protocolo que padroniza como essa chamada é roteada, descoberta e executada, independente de qual modelo gerou a intenção.

Você pode ter um call_mcp_tool como function call. O modelo gera qual MCP server chamar, a função roteia via protocolo. Os dois coexistem no mesmo sistema.

O que MCP resolve que function calling não resolve:

  • Descoberta dinâmica: tools são descobertas em runtime, sem modificar o código do agente
  • Portabilidade: mesmo servidor MCP funciona com Claude, GPT e Llama sem reescrever nada
  • Modularidade: adicionar ou remover uma integração não toca no core do agente
  • Escala: carrega só as tools relevantes para o contexto atual

Quando Usar MCP e Quando Function Calling Ainda Vence?

A escolha depende de três variáveis: quantidade de tools, necessidade de portabilidade entre modelos e complexidade esperada do sistema ao longo do tempo.

Cenário Recomendação Por quê
1 a 5 tools, modelo fixo, sistema simples Function calling direto Menos infra, latência mínima, zero overhead adicional
10+ tools, crescimento esperado MCP Evita contexto gigante, escala sem reescrever a camada de tools
Multi-modelo (Claude + GPT + Llama) MCP Portabilidade nativa, um servidor atende todos os modelos
Equipes separadas por domínio de integração MCP Cada time publica seu server independente, o agente consome via protocolo
Agente de voz, latência crítica (abaixo de 100ms) Function calling ou MCP local MCP via rede adiciona 30 a 50ms; MCP local (stdio) adiciona menos de 1ms

Function Calling: Implementação Direta

// Simples, sem infra extra, ideal para sistemas com poucas tools
const tools = [
  {
    name: "buscar_pedido",
    description: "Busca status de pedido pelo ID",
    input_schema: {
      type: "object",
      properties: {
        pedido_id: { type: "string", description: "ID do pedido" }
      },
      required: ["pedido_id"]
    }
  }
];

const response = await anthropic.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  tools,
  messages: [{ role: "user", content: "Status do pedido #12345?" }]
});

MCP: Descoberta Dinâmica de Tools

// O agente descobre tools do servidor MCP dinamicamente em runtime
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";

const client = new Client({ name: "meu-agente", version: "1.0.0" });
await client.connect(new StdioClientTransport({
  command: "node",
  args: ["./servidor-pedidos.js"]
}));

// Tools descobertas em runtime, não hardcoded no agente
const { tools } = await client.listTools();

const response = await anthropic.messages.create({
  model: "claude-sonnet-4-6",
  max_tokens: 1024,
  tools: tools.map(t => ({
    name: t.name,
    description: t.description,
    input_schema: t.inputSchema
  })),
  messages: [{ role: "user", content: "Status do pedido #12345?" }]
});

A diferença é sutil no código, mas estrutural na arquitetura: no segundo exemplo, um novo servidor MCP publicado pela equipe de CRM fica disponível no agente automaticamente. Sem pull request no repositório do agente.

O Que os Números de 2026 Dizem Sobre Performance

O argumento mais comum contra MCP é overhead de latência. Os dados colocam isso em perspectiva:

  • MCP local (stdio transport): menos de 1ms de overhead. Invisível para o usuário.
  • MCP via rede (SSE/HTTP): 30 a 50ms em média. Para chatbots de texto, imperceptível.
  • MCP enterprise gateway: sub-3ms a 5.000 requisições por segundo com gateway otimizado.
  • Cache de tool calls: cold start de 2.485ms vira 0,01ms no hit de cache. Redução de 41x.

Para a maioria dos casos de uso de negócio, o overhead do MCP some na latência de rede e de processamento do modelo. Para agentes de voz, onde cada 50ms é perceptível pelo usuário, function calling com modelo único ainda é a escolha mais segura.

MCP na Verboo: Sem Gerenciar Servidor

A Verboo suporta MCP Servers nativamente. Você aponta o servidor MCP existente (GitHub, Notion, seu próprio CRM, qualquer serviço com server publicado) e o Assistente descobre as tools automaticamente. Sem escrever schemas manualmente. Sem manter lista de tools no código. A configuração fica na aba Integrações do seu Assistente em verboo.ai/lab.

Com mais de 390 empresas na plataforma e 27 milhões de mensagens processadas, a Verboo já roda essa arquitetura em produção com latência abaixo de 500ms de ponta a ponta. A maioria dos sistemas que chegam na Verboo vêm de implementações com function calling ad hoc, schemas duplicados e integrações frágeis. MCP nativo significa que cada nova integração não exige modificar o código do Assistente.

Segundo o relatório State of MCP da Zuplo (2026), 41% das organizações de software já estão em alguma etapa de produção com MCP. O ecossistema tem mais de 10.000 servidores públicos. A curva de adoção passou do ponto de inflexão.

Se você está começando um projeto de agente agora, a pergunta não é "devo usar MCP?". É "quantas tools tenho hoje e quantas terei em 6 meses?". Se a resposta for mais de 5, a decisão já está tomada.

A Verboo já opera nesse modelo. Conheça a plataforma.

Gostou deste artigo?
Compartilhe conhecimento com sua rede.
Leia também

Artigos relacionados