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 calling | MCP | |
|---|---|---|
| O que é | Recurso do modelo | Protocolo de comunicação |
| Quem define as ferramentas | Você, na chamada da API | Um servidor independente |
| Reaproveitamento | Por aplicação | Qualquer cliente compatível |
| Descoberta | Manual, no código | Automática, pelo protocolo |
| Depende de | Suporte do provedor do modelo | Suporte 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.
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 realEntender 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ê.