Esses dois termos aparecem juntos com frequência e acabam tratados como sinônimos. Não são, e confundir os dois leva a decisões de arquitetura erradas.

Function calling: um recurso do modelo

Function calling é a capacidade do modelo de retornar, em vez de texto livre, uma chamada estruturada a uma função que você definiu. Em vez de dizer "você deveria consultar o banco", ele retorna algo como uma chamada com nome de função e argumentos.

É um recurso do lado do modelo. Depende do provedor suportar e exige que você registre as funções disponíveis na chamada da API.

MCP: um protocolo de comunicação

O MCP não é um recurso de modelo — é um protocolo entre duas aplicações. Ele padroniza como um cliente descobre quais ferramentas um servidor expõe e como chamá-las.

A diferença crucial é o desacoplamento. Com function calling puro, você registra as funções na sua aplicação. Com MCP, as ferramentas vêm de um servidor independente que qualquer cliente compatível pode usar.

Function callingMCP
O que éRecurso do modeloProtocolo de comunicação
Quem define as ferramentasVocê, na chamada da APIUm servidor independente
ReaproveitamentoPor aplicaçãoQualquer cliente compatível
DescobertaManual, no códigoAutomática, pelo protocolo
Depende deSuporte do provedor do modeloSuporte do cliente MCP

Como eles se combinam

Na prática, os dois trabalham juntos. O MCP fornece as ferramentas; o function calling é o mecanismo pelo qual o modelo as aciona.

Fluxo combinado
text
1. Cliente MCP conecta ao servidor e descobre as ferramentas
2. Cliente registra essas ferramentas como funções para o modelo
3. Modelo decide chamar uma ferramenta (function calling)
4. Cliente executa a chamada via protocolo MCP
5. Resultado volta ao modelo como contexto
6. Modelo continua o raciocínio com o dado real

Entender esse fluxo ajuda a diagnosticar problemas. Quando "a ferramenta não é usada", o problema pode estar em qualquer um dos estágios: a descrição pode estar vaga (estágio 1), o modelo pode não ter entendido a tarefa (estágio 3) ou a chamada pode ter falhado silenciosamente (estágio 4).

Por que o MCP foi necessário

Se function calling já resolve o problema de o modelo chamar código, por que existe o MCP?

Porque function calling resolve o problema dentro de uma aplicação. Ele não resolve o problema entre aplicações. Cada produto de IA precisava da sua própria versão de cada integração — o mesmo código, reescrito para cada cliente, com pequenas incompatibilidades.

Quando isso importa para você

  • Se você escreve código que usa um modelo de IA, provavelmente usa function calling diretamente.
  • Se você quer que suas ferramentas funcionem em vários assistentes, escreva um servidor MCP.
  • Se você apenas usa assistentes, esse detalhe é invisível: o MCP é o que faz a ferramenta aparecer para você.