In this article
O que é MCP em IA? Tudo o que você queria perguntar
O que é MCP?
MCP significa Model Context Protocol e é a especificação da Anthropic que define como os LLMs (modelos de linguagem grandes) se comunicam, compartilham dados e usam recursos externos aos dados com que foram treinados.
O MCP foi anunciado em novembro de 2024, mas causou um grande impacto no setor. Ele mobilizou desenvolvedores para criar diferentes tipos de recursos que podem ser disponibilizados aos modelos, ampliando seu alcance para que façam mais do que apenas receber e gerar texto. Com essa nova capacidade, os modelos também podem executar ações e obter dados de fontes com as quais não foram treinados, o que aumenta sua autonomia para realizar tarefas.

A especificação do MCP define formalmente o “App com IA” como um MCP Host. No entanto, isso pode ser confuso por causa do uso do termo “servidor”. Por isso, ao longo deste artigo, usamos principalmente “aplicativo com IA”.
Quem cria o cliente MCP?
Em geral, os aplicativos com IA permitem que os usuários adicionem servidores MCP com os quais podem interagir. Assim, o cliente MCP costuma ser implementado pelo próprio aplicativo com IA, enquanto desenvolvedores terceirizados criam os servidores MCP que fornecem os recursos.
Alguns exemplos de aplicativos com IA, também conhecidos como MCP Hosts, são:
Claude Desktop
Cursor
Qodo AI
Esses aplicativos com IA implementam um cliente MCP ao qual você pode adicionar diferentes servidores MCP para várias funções, como gerenciar seus fluxos de trabalho do Git e fazer pesquisas na web.
Onde posso encontrar servidores MCP?
A Anthropic mantém um repositório para acompanhar servidores MCP contribuídos pela comunidade. No repositório @modelcontextprotocol/servers, você encontra implementações de referência de servidores MCP e contribuições de terceiros feitas por indivíduos.
Aviso de segurança:
Tenha muito cuidado com códigos de servidores MCP não oficiais e não auditados, pois eles podem conter malware, apresentar riscos à segurança da cadeia de suprimentos e incluir práticas de programação inseguras, afetando sua infraestrutura e suas aplicações de IA.
Você também pode criar seu próprio servidor MCP. A Anthropic oferece SDKs para MCP, como o popular SDK de JavaScript @modelcontextprotocol/sdk, que permite aos desenvolvedores criar servidores MCP próprios com ferramentas disponíveis para uso por LLMs.
Veja a seguir um exemplo simplificado de código de servidor MCP implementado em JavaScript:
import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
// Create an MCP server
const server = new McpServer({
name: "Demo",
version: "1.0.0"
});
// Add an addition tool
server.tool("add",
{ a: z.number(), b: z.number() },
async ({ a, b }) => ({
content: [{ type: "text", text: String(a + b) }]
})
);Quais são algumas considerações de segurança ao adotar MCP?
A lista a seguir não abrange todos os riscos de segurança relacionados à adoção de servidores MCP para ampliar os recursos dos seus aplicativos com IA. Ainda assim, ela apresenta uma visão geral e exemplos práticos de preocupações e vulnerabilidades de segurança que podem surgir em servidores MCP:
Controle de acesso — Se você disponibilizar um recurso MCP em um servidor MCP, como diferenciar usuários e suas funções ao manipular o LLM por meio do aplicativo com IA para acessar e coletar dados expostos pelo recurso MCP?
Programação segura — Servidores MCP são apenas mais um tipo de software e, assim como qualquer outro, podem ser programados de forma insegura sem que isso seja intencional. Ao criar aplicativos que não usam MCP, os desenvolvedores também precisam seguir práticas de programação segura, como proteções contra path traversal e injeção de código. Da mesma forma, um servidor MCP pode disponibilizar uma ferramenta para ler arquivos. Mas, se o acesso aos arquivos deve ficar restrito a um diretório pai, como garantir que seu código não fique vulnerável ao clássico ataque de path traversal com ../?
Como o servidor e o cliente MCP se comunicam?
O formato de troca de dados se baseia no JSON-RPC 2.0, com uma especificação do MCP detalhada que padroniza um protocolo de comunicação otimizado para LLMs e fluxos de trabalho baseados em IA.
O protocolo de comunicação JSON-RPC pode ser estabelecido por um de dois tipos de canais entre um servidor MCP e um cliente MCP:
Entrada e saída padrão de um processo do sistema — Para permitir a execução local de servidores MCP, o que ajuda com questões de segurança e privacidade, entre outras vantagens, como menor latência, esse canal inicia um processo do sistema (como
npx <mcp-server>). Enquanto o processo estiver em execução, dados e comandos são trocados por meio dos recursosstdout,stdioestderrdo processo.Rede HTTP com Server-Sent Events (SSE) — Projetada principalmente para a comunicação com servidores MCP implantados remotamente, que podem ampliar os recursos de um aplicativo com IA.
O servidor MCP pode fornecer dados?
Sim. Além de ferramentas abstratas, que são conjuntos gerais de recursos, os servidores MCP também podem definir fontes de dados específicas e sugerir um conjunto de prompts que os LLMs podem usar como técnica de engenharia de prompts para orientar ações e a coleta de dados.
Os servidores MCP podem oferecer o conjunto de recursos a seguir para ampliar o que um LLM pode fazer:
Recursos MCP — Em essência, os recursos são diferentes fontes de dados que podem ser disponibilizadas aos LLMs. Por exemplo, um servidor MCP pode expor o conteúdo de um arquivo ou a lista de arquivos em um diretório como fonte de dados para um LLM. De certa forma, você pode pensar nos recursos MCP como uma espécie de RAG que aprimora e amplia as fontes de dados do LLM.
Prompts MCP — Os usuários de aplicativos com IA podem não conhecer todos os recursos disponíveis. Por isso, os servidores MCP podem expor uma lista de prompts de texto que os clientes MCP apresentam aos usuários finais com base no significado semântico, permitindo que eles usem esses prompts diretamente para executar ações específicas ou coletar dados.
Ferramentas MCP — Talvez o caso de uso mais popular dos servidores MCP: permitir que os LLMs executem ações. Antes do MCP, os LLMs podiam gerar texto como resposta, mas não pesquisar na web nem executar ações. Isso mudou com a chegada dos MCPs (ou, mais precisamente, com o precursor do MCP da OpenAI: chamada de funções). Agora, os servidores MCP podem implementar uma ação completa, como operar a mão de um robô ou digitar em um campo de busca do navegador, e disponibilizar esse recurso ao LLM, que pode acionar essas ações.
Como posso depurar a comunicação entre o servidor e o cliente MCP?
Desenvolvedores que criam servidores MCP e os implementam com transporte HTTP ainda podem usar logs de saída no console, como é comum entre desenvolvedores JavaScript. Mas isso não funciona no transporte de comunicação entre processos via STDIO (entrada/saída padrão) dos servidores MCP. Isso acontece porque os canais STDIO são usados exclusivamente pelo protocolo e o servidor MCP é executado como subprocesso do host MCP, não como uma ferramenta de linha de comando com a qual você interage normalmente em um shell (tecnicamente, um TTY).
A Claude recomenda principalmente os seguintes métodos e ferramentas para depurar um servidor MCP:
MCP Inspector — O MCP Inspector é uma ferramenta de linha de comando dedicada que intercepta a comunicação entre o cliente e o servidor MCP e permite inspecionar, depurar e acompanhar o canal de comunicação, além de obter informações e insights. Veja um exemplo de uso do MCP Inspector para JavaScript, disponível pelo registro npm:
npx @modelcontextprotocol/inspector <command> <arg1> <arg2>Observação: também existe um pacote no PyPI para desenvolvedores que criam servidores MCP em Python.
Recurso de registro em log — Uma boa prática é usar um recurso de registro em log dedicado, como um sistema local de arquivos de log ou um serviço remoto de registro em log pela rede, para coletar informações de servidores MCP baseados em HTTP ou STDIO. Vale destacar que manter logs em arquivos é especialmente acessível e relevante para servidores MCP que se comunicam por STDIO.
Qual é a diferença entre MCP e as ferramentas da OpenAI?
As ferramentas, também conhecidas como uso de funções em outras APIs e frameworks, permitem fluxos de trabalho agentivos ao disponibilizar ao modelo recursos que ele pode executar. As ferramentas são detalhes de implementação, enquanto o Model Context Protocol é uma especificação de nível mais alto que define contratos e padrões para essas ferramentas e funções.
MCP é como GraphQL?
Quando os MCPs foram anunciados e ganharam popularidade, desenvolvedores debateram se eles estavam, na prática, reinventando o GraphQL — uma alternativa às APIs RESTful e uma linguagem de consulta e comunicação baseada em JSON-RPC. Embora existam semelhanças, os MCPs não foram criados para substituir, replicar ou se basear no GraphQL.
Os MCPs foram criados especificamente para aproveitar e ampliar o comportamento autônomo dos LLMs e os dados disponíveis. Antes dos LLMs, nos fluxos de trabalho da OpenAI e de IA agentiva, a chamada de funções ou a chamada de ferramentas exigia que os desenvolvedores criassem esses recursos sem uma forma padronizada de definir as interfaces. A facilidade de descoberta também dependia do modelo e do framework escolhidos pelos desenvolvedores. Os MCPs resolveram esse problema ao oferecer uma plataforma de comunicação padronizada, com recursos aprimorados para executar ações e acessar dados por meio de funcionalidades de descoberta automática.
Quer saber mais sobre como criar seus aplicativos com IA? Confira 10 práticas recomendadas para desenvolver com IA de forma segura.
Boas práticas para desenvolver com IA com segurança
10 dicas para ajudar desenvolvedores e profissionais de segurança a mitigar riscos potenciais com eficiência e aproveitar ao máximo os benefícios do desenvolvimento com IA.