O que é um servidor MCP? Significado, exemplos e como funciona

Um servidor MCP é um pequeno programa que dá a um aplicativo de IA acesso controlado a arquivos, bancos de dados e ferramentas pelo Model Context Protocol. Este artigo define o termo, acompanha uma solicitação passo a passo, mostra exemplos reais e termina com um servidor curto em TypeScript que você pode executar hoje.

O que é um servidor MCP? Significado, exemplos e como funciona
Cristian Da Conceicao
Fundador do Picasso IA

Peça a um assistente de IA para resumir as vendas do último trimestre e ele vai dizer, educadamente, que não consegue ver sua planilha. O modelo é inteligente, mas fica numa caixa sem portas. Um servidor MCP é a porta. É um pequeno programa que expõe uma capacidade, como ler arquivos, consultar um banco de dados ou gerar uma imagem, para qualquer app de IA que fale o Model Context Protocol. Você escreve o servidor uma vez, e todo app compatível pode usá-lo sem código de conexão sob medida.

Este artigo explica o que é um servidor MCP, como uma solicitação viaja da sua janela de chat até a ferramenta e de volta, quais servidores as pessoas executam hoje, onde estão os riscos de segurança e como construir um servidor funcional em cerca de vinte linhas de TypeScript.

O que um servidor MCP realmente significa

MCP quer dizer Model Context Protocol, um padrão aberto que a Anthropic lançou em novembro de 2024. Um protocolo é apenas uma forma combinada de se comunicar. Um servidor MCP é qualquer programa que segue essas regras do lado que fornece o serviço: ele anuncia o que pode fazer, aguarda solicitações e devolve resultados num formato previsível. Produtos da Anthropic, da OpenAI, do Google e da Microsoft já suportam MCP, e existem milhares de servidores da comunidade para tudo, de repositórios Git a calendários.

A palavra servidor confunde as pessoas. Um servidor MCP não precisa morar num data center. A maioria roda no seu próprio notebook, como um processo em segundo plano que começa quando seu app de IA é aberto. Outros rodam remotamente, atrás de um endereço web, como qualquer site.

MCP em linguagem simples

Imagine uma antiga central telefônica. Quem liga não precisa saber como cada casa é ligada. Diz à telefonista com quem quer falar, e ela conecta o cabo certo na tomada certa. O MCP faz o papel dessa telefonista entre um app de IA e o mundo externo. O app diz preciso ler este arquivo ou preciso executar esta consulta, e o protocolo encaminha a solicitação a um servidor que sabe como fazer.

Operadora de central telefônica conectando um cabo a uma tomada, a imagem clássica de roteamento de conexões

💡 Definição rápida: Um servidor MCP é um programa que lista as ferramentas, os dados e os modelos de prompt que oferece, e permite que um app de IA os chame por um único formato padrão de mensagem.

A comparação com o USB-C

A analogia mais popular é o USB-C. Antes dele, cada dispositivo tinha seu próprio plugue e cada notebook precisava de uma gaveta cheia de adaptadores. Antes do MCP, cada app de IA precisava de um conector específico para cada serviço: um para o Slack num assistente, outro para o Slack em outro. Conte as combinações. Cinco apps e dez serviços significavam cinquenta integrações separadas. Com o MCP, cada app implementa o lado cliente uma vez e cada serviço implementa um servidor uma vez, então quinze peças de trabalho substituem cinquenta.

Notebook com um hub USB-C conectando uma câmera, um HD externo, um monitor e um celular

Como um servidor MCP funciona

Três papéis aparecem em toda configuração MCP, e mantê-los claros elimina a maior parte da confusão.

Host, cliente e servidor

Arquiteto de software desenhando três caixas conectadas num quadro branco para mostrar como os componentes se comunicam

PapelO que éExemplo
HostO aplicativo de IA com o qual o usuário conversaClaude Desktop, Cursor, VS Code
ClienteUm conector dentro do host que mantém uma conexão com um servidorCriado automaticamente pelo host
ServidorO programa que expõe ferramentas, dados ou modelos de promptUm servidor de sistema de arquivos, um servidor de banco de dados

O host cria um cliente por servidor. Conecte cinco servidores e seu app roda cinco clientes, cada um com uma linha privada para o próprio servidor. As mensagens viajam como JSON-RPC 2.0, um formato leve de solicitação e resposta que existe há anos. Nada exótico.

O que acontece em uma solicitação

Este é o caminho de uma única pergunta, quais faturas estão vencidas?, por um host conectado a um servidor de contabilidade:

  1. Aperto de mão. Quando o host inicia, o cliente envia initialize. Cliente e servidor combinam uma versão do protocolo e trocam suas capacidades.
  2. Listagem de ferramentas. O cliente chama tools/list. O servidor responde com todos os nomes de ferramentas, uma descrição simples e um JSON Schema para as entradas.
  3. Decisão. O modelo lê sua pergunta junto com essas descrições de ferramentas e decide que list_overdue_invoices é o próximo passo certo.
  4. Aprovação. A maioria dos hosts mostra a chamada e pede sua confirmação antes de executar qualquer coisa que altere dados.
  5. Execução. O cliente envia tools/call com o nome da ferramenta e os argumentos. O servidor faz o trabalho de fato, como executar uma consulta SQL.
  6. Resposta. O servidor devolve o resultado, o modelo o lê e escreve uma resposta normal.

A chamada do passo 5 é uma pequena mensagem JSON:

{
  "jsonrpc": "2.0",
  "id": 7,
  "method": "tools/call",
  "params": {
    "name": "list_overdue_invoices",
    "arguments": { "days_overdue": 30 }
  }
}

O modelo nunca toca no seu banco de dados. Ele apenas produz uma solicitação. O servidor guarda as credenciais e faz o trabalho, e é exatamente por isso que os servidores são o lugar certo para aplicar limites.

Transportes local e remoto

Um transporte é o canal que carrega essas mensagens JSON. O MCP define dois padrões.

TransporteOnde o servidor rodaIdeal paraContrapartida
stdioNo seu computador, iniciado pelo host como processo filhoFerramentas pessoais, acesso a arquivos, desenvolvimentoUm usuário, precisa ser instalado localmente
Streamable HTTPNum endereço web, local ou remotoServidores compartilhados por equipes, produtos hospedadosExige autenticação e hospedagem

Servidores que usam stdio conversam pela entrada e saída padrão, então não há porta de rede para ser atacada. Servidores Streamable HTTP podem atender muitos usuários ao mesmo tempo, e por isso as empresas de software os publicam. Tutoriais mais antigos mencionam o transporte HTTP+SSE. A especificação atual o substituiu pelo Streamable HTTP.

Corredor estreito entre racks altos de servidores num data center silencioso

O que um servidor pode oferecer

Ferramentas, recursos e prompts

Um servidor MCP expõe até três tipos de blocos de construção.

PrimitivaQuem controlaO que fazExemplo
FerramentasO modelo decide quando chamá-lasExecutam ações ou cálculosEnviar um e-mail, rodar uma consulta, gerar uma imagem
RecursosO aplicativo decide o que anexarFornecem dados somente leitura como contextoUm arquivo, uma linha de banco de dados, um log
PromptsO usuário os escolheModelos de instrução reutilizáveis"Revise este pull request"

As ferramentas recebem quase toda a atenção porque permitem que uma IA faça coisas. Os recursos são mais discretos, mas igualmente úteis: alimentam a conversa com contexto sem uma chamada de ferramenta. Os prompts funcionam como comandos de barra que o próprio servidor traz.

Por que as descrições importam tanto

O modelo escolhe ferramentas lendo apenas os nomes e as descrições. Uma ferramenta chamada run com a descrição "faz coisas" será usada de forma errada ou ignorada. Uma ferramenta chamada search_invoices com a descrição "Encontra faturas por nome do cliente, status ou intervalo de datas. Devolve até 20 resultados." é escolhida no momento certo.

Um bom design de ferramentas se resume a quatro hábitos:

  • Nomeie com um verbo e um substantivo, como create_ticket ou list_branches.
  • Diga o que volta, não apenas o que a ferramenta faz.
  • Mantenha as entradas pequenas e tipadas, e use opções fixas sempre que possível.
  • Devolva erros como texto legível, para que o modelo possa corrigir a entrada e tentar de novo.

💡 Dica: Se um assistente continua escolhendo a ferramenta errada, reescreva a descrição antes de mexer em qualquer código. Na prática, isso resolve a maioria das confusões.

Exemplos reais de servidores MCP

A forma mais rápida de entender a ideia é olhar o que as pessoas de fato executam.

Servidores de sistema de arquivos

Arquivista de luvas de algodão puxando uma pasta etiquetada de um arquivo de aço

O servidor de sistema de arquivos de referência permite que um assistente leia, pesquise e edite arquivos dentro das pastas que você escolher. Aponte-o para o diretório de um projeto e peça todos os comentários TODO agrupados por arquivo. O servidor só consegue acessar as pastas que você listou, então o assistente trabalha dentro de uma cerca que você desenhou.

Servidores de banco de dados e busca

Servidores de banco de dados expõem uma ferramenta de consulta e, às vezes, a estrutura das tabelas como recurso. Pergunte quais três clientes gastaram mais em setembro, e o modelo escreve o SQL, o servidor o executa e as linhas voltam. Muitas equipes os configuram como somente leitura de propósito. Servidores de busca e da web funcionam do mesmo jeito, entregando ao modelo páginas atualizadas em vez de dados de treinamento desatualizados. Outros servidores populares conectam GitHub, Slack, Google Drive, Notion, Postgres e automação de navegador.

Servidores de geração de imagens e vídeos

Designer revisando uma grade de fotografias geradas em um monitor grande num estúdio em casa

A geração é onde o MCP ganha forma visual. Um servidor de imagens expõe uma ferramenta generate_image. O assistente escreve o prompt, o servidor chama um modelo e uma URL do arquivo aparece de volta no chat. O vídeo funciona do mesmo jeito, com uma diferença: os clipes levam mais tempo, então o servidor inicia uma tarefa e o assistente verifica até ela terminar.

O PicassoIA funciona com esse padrão. Sua API para desenvolvedores fica em https://api.picassoia.com/v1 e usa um token Bearer que começa com pia_sk_. As solicitações seguem o estilo Replicate: cria-se uma previsão, consulta-se até ela terminar e então busca-se o resultado. Cada conta pode executar 5 previsões ao mesmo tempo. Os mesmos quatro modelos estão acessíveis pela API e pelo conector MCP do PicassoIA:

As conexões MCP são gerenciadas na página MCP da sua conta no PicassoIA, e a página de preços lista o que cada plano inclui. Se preferir criar clipes manualmente em vez de usar um assistente, modelos como Seedance 2.0 e Veo 3.1 estão a um clique de distância.

Um servidor de publicação na prática

Quatro colegas revisando um rascunho em volta de uma longa mesa de madeira num escritório iluminado

Mais um exemplo, mais perto do dia a dia. Um servidor de publicação de blog pode expor quatro ferramentas: gerar uma imagem, verificar se um slug de URL está livre, listar os modelos de IA disponíveis e salvar o artigo finalizado num banco de dados. Um assistente que recebe um tema chama essas ferramentas em ordem, tenta de novo qualquer imagem que falhe e armazena o resultado. Ninguém escreveu um "robô de artigos". O modelo simplesmente tinha as ferramentas certas e uma tarefa clara.

MCP versus uma API comum

Um servidor MCP normalmente envolve uma API comum, então por que adicionar uma camada? Porque o leitor é outro. Uma API REST é escrita para desenvolvedores que leem a documentação. Um servidor MCP é escrito para um modelo que precisa ler a documentação em tempo de execução.

API RESTChamada de funçãoServidor MCP
Feito paraDesenvolvedoresO modelo de um appQualquer app de IA compatível
Encontrar ferramentasDocumentação escrita para pessoasFerramentas fixadas em cada appUma solicitação tools/list em tempo real
ReutilizaçãoCada app escreve seu próprio clienteCada app redeclara as funçõesUm servidor, vários hosts
Configuração típicaChamadas HTTP no códigoUm JSON Schema em cada solicitaçãoUma entrada de configuração no host

O MCP não substitui a chamada de função. O host traduz a lista de ferramentas do servidor para o formato de chamada de função que o modelo já conhece. O MCP apenas padroniza de onde essa lista vem.

💡 Regra prática: Está construindo um app com algumas funções privadas? A chamada de função comum basta. Quer a mesma capacidade em vários assistentes, ou quer que a equipe possa conectá-la? Escreva um servidor MCP.

Perguntas de segurança que valem a pena fazer

Close de um cadeado de latão trancado na porta de aço de uma gaiola de servidores

Um servidor MCP é código que uma IA pode acionar, muitas vezes com credenciais reais por trás. Trate-o como qualquer outro software que toque nas suas contas. Cinco perguntas evitam a maioria dos problemas:

  • Quem escreveu? Um servidor de autor desconhecido roda com as suas permissões. Leia o código-fonte ou fique com desenvolvedores de confiança.
  • O que ele pode acessar? Dê a cada servidor o acesso mais restrito possível: uma pasta, uma função de banco somente leitura, um token limitado a um repositório.
  • Quem aprova as ações? Mantenha as confirmações ativas para tudo que escreve, envia ou apaga.
  • Onde ficam os segredos? Coloque os tokens em variáveis de ambiente, nunca nas descrições de ferramentas ou nos prompts.
  • O que ele lê? Páginas da web, e-mails e documentos podem esconder instruções dirigidas ao modelo, um problema chamado injeção de prompt. Um servidor que busca texto externo merece permissões bem restritas.

⚠️ Atenção: A descrição de uma ferramenta é um texto em que o modelo confia. Um servidor malicioso pode esconder instruções dentro dela. Conecte apenas servidores que você instalaria como software sem receio.

Como criar o seu

Visão de cima de um desenvolvedor digitando numa mesa de madeira ao lado de um caderno com caixas desenhadas à mão

Construir um servidor dá menos trabalho do que a maioria imagina. Existem SDKs oficiais para TypeScript, Python, Java, C# e várias outras linguagens. Os mesmos três passos valem para todas: criar um servidor, registrar uma ferramenta e conectar um transporte.

Um servidor mínimo em TypeScript

Este exemplo registra uma ferramenta que conta palavras e a disponibiliza via stdio. Salve-o como módulo ES.

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const server = new McpServer({ name: "word-counter", version: "1.0.0" });

server.registerTool(
  "count_words",
  {
    description: "Count the words in a piece of text. Returns a single number.",
    inputSchema: { text: z.string() },
  },
  async ({ text }) => ({
    content: [
      { type: "text", text: String(text.trim().split(/\s+/).filter(Boolean).length) },
    ],
  })
);

await server.connect(new StdioServerTransport());

Compile e depois adicione uma entrada no arquivo de configuração do seu host: um nome, o comando node e o caminho do arquivo compilado. Reinicie o host e count_words aparece na lista de ferramentas dele. Pergunte "quantas palavras há neste parágrafo?" e o assistente chama seu código em vez de adivinhar.

Testando com o Inspector

Antes de culpar o modelo, teste o servidor sozinho. O MCP Inspector oficial (npx @modelcontextprotocol/inspector node build/index.js) abre uma página no navegador onde você pode listar ferramentas, preencher argumentos e ler as respostas brutas. Se funciona ali, o problema está na configuração do host ou na descrição da ferramenta.

Experimente com o PicassoIA

Servidores MCP falam principalmente texto, mas muitos fluxos de trabalho terminam em uma imagem ou um clipe. Uma boa ordem de trabalho é rascunhar a ideia com um modelo de linguagem e depois transformá-la em visuais. O PicassoIA Image cuida das fotografias, o PicassoIA Image Editor Pro corrige e reformata essas imagens, e o PicassoIA Video anima o resultado.

Como usar o Claude Sonnet 5

Um modelo que lida bem com uso de ferramentas e código é um parceiro sólido para construir o servidor acima. Aqui está o caminho rápido com o Claude Sonnet 5 no PicassoIA:

  1. Abra a página do modelo. Vá até a página do Claude Sonnet 5 no PicassoIA.
  2. Escreva o Prompt. É o único campo obrigatório. Experimente: "Escreva um servidor MCP em TypeScript com uma ferramenta que devolva a data de hoje."
  3. Escolha o nível de Effort. O padrão, low, é rápido e barato. Mude para high ou max quando a tarefa abranger vários arquivos ou esconder um bug difícil.
  4. Defina um System Prompt. Por exemplo: "Você é um desenvolvedor TypeScript sênior. Devolva código executável e uma frase de explicação." Reutilize-o em todo o projeto.
  5. Ajuste o Max Tokens. O padrão é 8192, suficiente para um arquivo de servidor completo. Anexe uma Image, como a captura de tela de um erro, se ajudar. A Max Image Resolution vem em 0,5 megapixel por padrão para manter as solicitações rápidas.
  6. Gere e teste. Rode o código pelo Inspector antes de confiar nele.

Outros modelos de linguagem valem um teste lado a lado: o GPT 5.6 Terra para texto pronto para produção, o Gemini 3.5 Flash para respostas rápidas e o Kimi K2.6 para tarefas no estilo de agente.

Crie sua primeira imagem hoje

Agora você sabe o que um servidor MCP faz, como uma solicitação passa por ele e onde estão escondidos os riscos. A forma mais rápida de sentir a ideia é usar uma ferramenta que devolve algo que você pode ver. Abra o Picasso IA, descreva uma cena em uma única frase e gere a imagem. Depois rode o mesmo prompt num segundo modelo e compare os resultados. Ferramentas pequenas e intercambiáveis são o hábito que o MCP recompensa, e uma primeira imagem leva menos de um minuto. Experimente o Picasso IA agora e veja para onde o seu prompt leva.

Compartilhe este artigo

Escolha seu idioma