Um mergulho profundo nos MCPs, Parte 1: Afinal, o que é MCP?

Se você acompanha IA, é quase certo que já ouviu falar do protocolo de contexto de modelo (MCP). Desde que a Anthropic anunciou esse novo padrão em novembro de 2024, sua popularidade explodiu. Há MCPs para enviar e-mails, MCPs para pesquisar na Web, MCPs que executam outros MCPs. Os MCPs estão permitindo que os humildes LLMs façam solicitações de pull e reservas de avião. Em maio, a Microsoft até anunciou um Registro MCP para Windows que permite que os aplicativos exponham funcionalidades aos agentes de IA

Excelente! Mas como? O que é MCP? Como você o utiliza? Por que ele se tornou tão mais popular do que os esforços anteriores? Como ele permite que os chatbots façam coisas no mundo real? E como você pode construir o seu próprio?

Quando decidimos criar nosso próprio servidor MCP para a API do DeepLparecia intimidador. Mas, quando você realmente entende como os MCPs funcionam, como os MCPs permitem que os agentes descubram e usem ferramentas e como você pode criar um servidor MCP básico com 10 linhas de código, isso não é tão assustador. Nesta série de postagens, tentaremos desmistificar esse tópico. Vamos explorar:

  • o que é MCP
  • Como usar o MCP em um cliente IA
  • Como criar um servidor MCP

Veja como

O que significa MCP?

MCP significa Model Context Protocol (Protocolo de contexto de modelo).

O "modelo" é um modelo de IA. Você pode usar qualquer tipo de superfície de IA, mas, normalmente, ela é construída com base em um LLM. Aqui, vamos nos referir a isso como agente de IA ou assistente de IA.

"Contexto" refere-se ao contexto em que o agente de IA opera. Em IA, costumamos falar sobre uma "janela de contexto", que se refere a todo o contexto que um LLM incorpora quando gera sua resposta a um prompt - o histórico de conversas, o prompt do sistema e muito mais. Para que o MCP funcione, uma superfície de IA fornece ao LLM subjacente um prompt adicional especificando quais ferramentas ele pode usar e como usá-las.

"Protocolo" é um conjunto de regras que descreve a maneira como duas entidades se comunicam em uma rede. Um protocolo que você usa todos os dias é o HTTP - HyperText Transfer Protocol (Protocolo de Transferência de Hipertexto) - que rege como um servidor web e um cliente web se comunicam.

Juntando tudo isso: O "Model Context Protocol" é um protocolo que fornece o contexto que permite que os modelos de IA usem ferramentas e recursos externos.

O MCP é um padrão aberto inventado por dois engenheiros da Anthropic. Ele usa JSON-RPCum protocolo popular para definir chamadas de função. E é inspirado em Protocolo do servidor de idiomasque a Microsoft criou para separar a lógica por trás do manuseio de idiomas de codificação dos IDEs.

A MCP não é um software, um aplicativo ou uma API. Mas isso dá aos agentes de IA acesso a tudo isso!

O que a MCP faz?

Os LLMs podem dar respostas inteligentes e úteis à entrada do usuário. Mas eles não têm acesso a Serviços externos, nenhuma maneira de se comunicar com outro software, nenhum meio de obter informações atualizadas. Com o MCP, qualquer superfície de IA pode enviar solicitações a qualquer serviço de software e obter uma resposta. Ele fornece a um agente de IA um meio padrão para acessar ferramentas, recursos e dados externos.

Sem o MCP, um cliente de IA é apenas um cérebro sem corpo, sem nenhuma maneira de acessar o mundo exterior. Com o MCP, um cliente de IA pode ser um agente!

Quem pode usar o MCP?

Como o MCP é um padrão aberto, qualquer pessoa pode implementar um cliente MCP ou um servidor MCP.

O cliente pode ser qualquer aplicativo baseado em um LLM. Você pode usar MCPs em aplicativos como Claude Desktop, VSCode, Windsurf e Cursor. Ou você pode usar MCPs com um agente de IA que você criou com uma estrutura como LangChain ou CrewAI.

Por que a MCP se tornou tão popular?

Um dos motivos é que se trata de um padrão aberto. Qualquer agente de IA pode implementar o MCP, assim como qualquer ferramenta. Isso lhe dá um apelo mais amplo do que as soluções para um produto de uma empresa específica, como a da OpenAI. Chamada de função.

Ao criar essa solução universal, os criadores do MCP se inspiraram no Language Server Protocol (LSP). Antes do LSP, quando um IDE queria implementar funcionalidades como autocompletar ou realce de sintaxe para um determinado idioma de codificação, ele precisava fazer sua própria integração. O resultado foi o que os criadores chamaram recentemente de um problema m × nno qual as pessoas precisavam implementar os Serviços de idiomas separadamente para cada combinação possível de IDE/idioma. Com o LSP, cada idioma de codificação precisa de apenas uma biblioteca de integração. E um IDE compatível com LSP pode ser compatível com qualquer idioma desse tipo. Da mesma forma, uma vez que um serviço implemente um servidor MCP, qualquer cliente IA que seja compatível com MCP poderá usá-lo. Você pode usar o servidor MCP se o serviço for compatível com MCP. O cliente só precisa ser compatível com o MCP.

A MCP é flexível em outros aspectos. Você pode executá-lo localmente ou em uma rede. E ele vem da Anthropic, que é muito respeitada e que compartilharia os benefícios de um padrão aberto.

Por que os agentes de IA precisam de um protocolo padrão?

Já que os LLMs são tão bons em compreender e aplicar informações, eles não podem usar qualquer serviço de software cuja descrição inclua seus dados de treinamento? Afinal de contas, os LLMs já sabem como usar muitas APIs populares, como você descobrirá se pedir ajuda a um assistente de codificação como o Copilot ou o Sourcegraph.

Mas se você desse a um LLM acesso a cada API em seus dados de treinamento, o caos se instalaria. Como você saberia quais APIs chamar e quando? Como você obteria a chave de API e as credenciais e como usaria serviços que precisam de outros tipos de acesso? E se você quisesse saber a distância de carro de Kansas City a Des Moines - ou a temperatura atual em Bangkok? Há muitas maneiras de você encontrar essas informações. Como usuário, você deseja ter controle sobre as ações que o LLM escolhe. Isso é especialmente verdadeiro quando não se trata de recuperar informações, mas de realizar ações que afetam o mundo, como enviar um e-mail ou pedir uma pizza para você.

É verdade que um agente pode ler e entender uma especificação OpenAPI de baixo nível ou toda a documentação de uma API e, em seguida, fazer chamadas de API de acordo. Mas o MCP permite que os criadores de ferramentas definam serviços de nível mais alto que seriam especialmente úteis para um agente de IA, apontando esse agente em uma direção útil. Até o momento, essa é uma área em que os humanos ainda se sobressaem.

Assim, a melhor maneira por enquanto é definir explicitamente as ferramentas e os recursos que o LLM pode usar e como pode usá-los. O MCP faz isso à moda antiga, de forma determinística, não fazendo com que o LLM faça sua mágica, mas por meio de código e JSON.

Mas como um LLM pode usar as ferramentas?

Basicamente, um LLM é uma máquina que gera tokens - tokens que os humanos encontram como texto, imagens, áudio e assim por diante. Então, como essa máquina pode ter acesso a ferramentas e recursos? Como ele sabe que tem esse acesso e como sabe qual deles usar?

A chave é que, de fato, como Maximilian Schwarzmüller apontaos LLMs só podem se comunicar com o mundo externo por meio de tokens. Eles recebem tokens como entrada e produzem tokens como saída. E esses tokens podem incluir entidades que significam "Eu quero usar uma ferramenta". Portanto, para indicar que você deseja usar uma ferramenta ou um recurso e para realmente usá-lo, um LLM gera tokens padrão que o software ao seu redor reconhecerá como uma chamada de ferramenta e interceptará. Em seguida, esse software chama um serviço e retorna o resultado para o LLM.

O LLM poderia usar tokens especializados aqui. Mas, geralmente, ele usa apenas delimitadores e idiomas específicos - dessa forma, você pode adaptar essa capacidade a um LLM existente, ajustando-o. Por exemplo, você pode usar tags de início e fim entre colchetes que delimitam o JSON, como este modelo de saída do agente:

Com certeza! Posso criar uma nova planilha para você. Espere um pouco...

[tool-start] { "tool": "spreadsheets", "action": "create" } [tool-end]

Isso é exatamente o que os pesquisadores fizeram em seu artigo 2023 Toolformerque mostrou que, como diz o título, "Modelos de linguagem podem ensinar a si mesmos a usar ferramentas". Nesse estudo, os autores geraram dados de treinamento que incluíam representações em texto simples de chamadas de API e seus resultados. Ao fazer o ajuste fino de um LLM com esses dados adicionais, eles produziram um LLM que chamaria essas APIs para gerar uma resposta promissora a um prompt.

Eles usaram o formato simples:

[function_name(data) → result]

Por exemplo, sabendo que os LLMs têm dificuldades com matemática, eles forneceram uma ferramenta de calculadora. Em seguida, eles incluíram nos dados de treinamento cadeias como esta:

Dos 1.400 participantes, 400 (ou [Calculadora(400 / 1400) → 0,29] 29%) passaram no teste.

e

O nome deriva de "la tortuga", a palavra espanhola para [MT("tortuga") → tartaruga] tartaruga.

Ao fazer o ajuste fino de um LLM com esses dados, eles criaram um LLM que sabia como chamar de APIs para gerar a resposta mais promissora a um determinado prompt.

Mas você não precisa ajustar um LLM para permitir que ele use ferramentas. Acontece que tudo o que você precisa é de um prompt. Este artigo demonstra como ensinar um LLM a usar ferramentas usando JSON delimitado por [[qwen-tool-start]] e [[qwen-tool-end]], apenas dando a ele um prompt apropriado. Você pode tentar fazer isso sozinho! Basta visitar seu chatbot favorito e dizer a ele:

Parabéns! Agora você tem a capacidade de usar uma ferramenta para fazer a multiplicação. Quando você precisa fazer um cálculo, tudo o que precisa fazer é produzir a seguinte sintaxe: 

[Math] { DeepL "arg1": {value}, "arg2": {value} } [/Math]

onde, é claro, cada {valor} representa um valor que você deseja multiplicar. Ok? 

Em seguida, dê ao LLM um problema de matemática e observe como ele produz fielmente a sintaxe que você forneceu para a ferramenta matemática.

Os LLMs modernos ainda usam ferramentas da mesma forma. Por exemplo, o Anthropic descreve aqui a maneira como eles constroem um prompt de sistema para que o Claude use ferramentas em sua API.

Como um LLM lida com a saída de uma ferramenta?

Como um LLM recebe o resultado da ferramenta? Mais uma vez, tudo se resume a tokens. Quando o cliente IA recebe a saída de uma ferramenta, ele a alimenta novamente no LLM como entrada, mas de forma que o LLM saiba que é a saída da ferramenta e não a entrada do usuário final.

Juntando tudo

Para resumir, aqui está o que acontece quando um LLM usa uma ferramenta:

  • O usuário digita a entrada
  • O LLM processa essa entrada
  • Ao gerar a saída, o LLM "decide" que chamar uma ferramenta é a melhor maneira de concluir a saída. Isso significa que ele gera um conjunto de tokens que foi treinado para saber que permitirá que você chame uma ferramenta.
  • O cliente IA reconhece esses tokens como algo que deve chamar uma ferramenta, intercepta-os, analisa o JSON em parâmetros e qualquer outra coisa na solicitação e envia isso para a ferramenta apropriada
  • A ferramenta gera resultados, que podem ou não envolver o uso de uma API. Ele retorna essa informação para o cliente IA, que a envia para o LLM
  • O LLM processa a saída da ferramenta
  • O LLM usa essa saída para continuar a criar uma resposta para o usuário

E esse é o meu resumo do que é o MCP e como ele é implementado nos LLMs. Na próxima publicação, mostrarei a você como usar MCPs em seu próprio cliente de IA!


Sobre o autor

Como evangelista de desenvolvedores do DeepL, Ben Morss trabalha para ajudar qualquer pessoa a usar a API do DeepL para acessar suas traduções de IA de classe mundial. Anteriormente, no Google, ele foi gerente de produto no Chrome e defensor dos desenvolvedores para uma Web melhor. Antes disso, ele foi engenheiro de software no New York Times e na AOL, e já foi músico em tempo integral. Ele se formou em Ciência da Computação em Harvard e fez doutorado em Música na Universidade da Califórnia em Davis. Você ainda pode encontrá-lo fazendo música com a banda Ancient Babiesanalisando músicas pop em Rock Theorye escrevendo um musical que não é realmente sobre Steve Jobs.

Compartilhar