Saiba quando utilizar MCP e quando utilizar somente Tool Use na sua aplicação
Entenda o papel do MCP e do Tool Use e como escolher a abordagem mais simples para integrar ferramentas à sua aplicação de IA.
Já sabemos que o MCP (Model Context Protocol) é um protocolo aberto que permite conectar aplicações de IA a ferramentas e fontes de dados. Em vez de cada aplicação implementar suas próprias integrações, você pode desenvolver ou utilizar servidores MCP de terceiros. Dessa forma, diferentes aplicações compatíveis com o protocolo podem reutilizar as mesmas integrações.
Uma aplicação que utiliza a API da Anthropic, por exemplo, pode integrar servidores MCP por meio de um cliente MCP. A arquitetura segue o modelo padrão do protocolo:
- Host: aplicação de IA utilizada pelo usuário, como Claude Desktop, Claude Code ou sua própria aplicação.
- Client: componente dentro do Host responsável por estabelecer e manter a comunicação com um servidor MCP.
- Server: aplicação que disponibiliza ferramentas e outros recursos por meio do protocolo MCP.
Um servidor MCP pode disponibilizar três tipos de primitivos:
- Tools: ações que o modelo pode solicitar. Por exemplo, criar, consultar, atualizar ou listar registros.
- Resources: dados que a aplicação pode disponibilizar ao modelo como contexto, como arquivos, registros e esquemas.
- Prompts: modelos de instruções predefinidos, normalmente selecionados pelo usuário por meio da aplicação.
É importante destacar que um servidor MCP não precisa implementar obrigatoriamente os três primitivos. Isso depende da finalidade da integração.
Mas será que você realmente precisa de um servidor MCP?
Nem sempre. Em alguns cenários, utilizar diretamente o Tool Use disponibilizado pela API pode ser muito mais simples. Na API da Anthropic, você pode informar, durante uma requisição, a lista de ferramentas disponíveis para o modelo. Cada ferramenta possui um nome, uma descrição e uma definição dos parâmetros esperados.
Se o modelo identificar que precisa executar uma dessas ferramentas, poderá retornar um bloco tool_use, acompanhado do stop_reason com o valor tool_use. A partir daí, sua aplicação identifica essa solicitação, executa o método correspondente dentro do próprio código e devolve o resultado à API em um bloco tool_result, para que o modelo continue o processamento.
Ou seja, você não precisa necessariamente criar um servidor MCP para disponibilizar ferramentas ao modelo. Nesse cenário, o Tool Use permite implementar uma integração diretamente na sua aplicação, sem adicionar a complexidade de manter um servidor e uma comunicação via MCP.
Quando escolher cada abordagem?
A escolha depende principalmente do contexto e da necessidade de reutilização. Se você possui uma aplicação que utiliza ferramentas exclusivamente dentro do próprio sistema, implementar o Tool Use diretamente pode ser a alternativa mais simples.
Por outro lado, se deseja disponibilizar a mesma integração para diferentes aplicações, linguagens ou clientes compatíveis com MCP, criar um servidor MCP pode ser uma escolha mais interessante. O MCP permite desacoplar a integração da aplicação que a consome, favorecendo a reutilização e a interoperabilidade.
Um detalhe interessante sobre essa arquitetura
Mesmo quando você utiliza MCP, o modelo precisa ter acesso às definições das ferramentas para solicitar sua execução. Por exemplo, quando a própria aplicação utiliza um cliente MCP e gerencia as chamadas à API, o fluxo funciona assim:
- O cliente MCP solicita ao servidor a lista de ferramentas disponíveis.
- O cliente obtém as definições dessas ferramentas.
- A aplicação disponibiliza essas definições ao modelo na requisição à API.
- Se o modelo decidir utilizar uma ferramenta, retorna um bloco
tool_use. - A aplicação identifica a solicitação e utiliza o cliente MCP para encaminhar a execução ao servidor e receber o resultado.
- O resultado é enviado novamente ao modelo, que pode continuar o processamento ou finalizar a resposta.
A Anthropic também oferece um conector MCP gerenciado, que conecta a Messages API a servidores MCP remotos sem exigir que você implemente esse cliente na sua aplicação. Nesse caso, a plataforma gerencia a comunicação com o servidor, e o formato dos blocos de chamada e resultado é específico dessa integração.
Perceba que o MCP não substitui o mecanismo de Tool Use. Ele padroniza a comunicação entre aplicações e ferramentas, enquanto o Tool Use continua sendo o mecanismo pelo qual o modelo solicita a execução de uma ferramenta.
Bem interessante, não é? Quando entendemos o papel de cada componente, fica muito mais fácil decidir qual arquitetura utilizar e evitar complexidade desnecessária nos nossos projetos.