MCP: O Protocolo que Muda a Forma como Usamos IA

O Model Context Protocol (MCP) é um standard aberto introduzido pela Anthropic em Novembro de 2024 que define como aplicações de inteligência artificial se conectam a fontes de dados externas — ficheiros, bases de dados, APIs e ferramentas. É, em essência, um “USB-C para IA”: um protocolo standardizado que substitui as integrações custom ponto-a-ponto que até agora obrigavam cada aplicação de IA a falar individualmente com cada ferramenta.

Neste artigo

1. Introdução — o que é MCP e o problema que resolve

Antes do MCP, cada aplicação de IA que precisava de aceder a dados externos exigia uma integração dedicada com cada fonte. Se tem 5 aplicações de IA e 10 ferramentas, precisa de 50 integrações custom (N×M). Isto não escala — é caro, frágil e repetitivo.

O MCP resolve isto com um protocolo standard. Cada ferramenta expõe um servidor MCP (M integrações), e cada aplicação de IA implementa um cliente MCP (N integrações). Total: N+M em vez de N×M. Para o mesmo cenário acima, são 15 integrações em vez de 50.

ℹ Analogia: Pense no USB-C. Antes do USB-C, cada telemóvel tinha o seu próprio carregador. Depois do standard, qualquer carregador funciona com qualquer telemóvel. O MCP é o “USB-C da IA” — um conector universal entre modelos e dados.

A Anthropic open-sourced o protocolo em Novembro de 2024, com SDKs oficiais em TypeScript e Python. A especificação é pública e qualquer empresa pode implementar clientes ou servidores sem pagar licenças.

2. Arquitectura do protocolo

O MCP tem uma arquitectura cliente-servidor baseada em JSON-RPC 2.0, com comunicação sobre stdio (standard input/output) ou SSE (Server-Sent Events) para servidores remotos.

Componentes principais

Cliente MCP — a aplicação de IA que consome dados. Exemplos: Claude Desktop, VS Code (com Copilot), Cursor, Zed, Windsurf. O cliente liga-se a um ou mais servidores MCP e apresenta as capacidades descobertas ao modelo de IA.

Servidor MCP — programa que expõe capacidades ao cliente. Cada servidor tipicamente cobre uma fonte de dados ou ferramenta: sistema de ficheiros, GitHub, Slack, PostgreSQL, Google Drive, etc.

Protocolo — JSON-RPC 2.0 sobre stdio (local) ou SSE/HTTP (remoto). Mensagens são trocadas em JSON, com três tipos de capacidades:

  • Resources — dados que o servidor expõe para leitura (ficheiros, registos de BD, resultados de query). O modelo pode lê-los como contexto.
  • Tools — funções executáveis que o modelo pode invocar (criar issue no GitHub, enviar mensagem Slack, executar query SQL).
  • Prompts — templates de prompt predefinidos que o servidor oferece, reutilizáveis pelo utilizador.
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/list",
  "params": {}
}

O cliente envia tools/list para descobrir que ferramentas o servidor oferece. O servidor responde com uma lista em JSON que descreve cada ferramenta — nome, descrição, schema de parâmetros. O modelo de IA usa essa descrição para decidir quando e como chamar cada ferramenta.

3. Como funciona na prática

O fluxo típico de uma sessão MCP é o seguinte:

  1. Ligação — o cliente MCP arranca o servidor (processo local) ou liga-se via SSE (remoto).
  2. Descoberta — cliente envia initialize e recebe as capacidades do servidor (resources, tools, prompts suportados).
  3. Apresentação ao modelo — o cliente formata as ferramentas disponíveis e injecta-as no contexto do modelo de IA como funções disponíveis.
  4. Invocação — quando o modelo decide usar uma ferramenta, gera uma chamada JSON-RPC (ex: tools/call com o nome e parâmetros).
  5. Execução — o servidor executa a acção (ler ficheiro, chamar API, executar query) e devolve o resultado.
  6. Resposta — o cliente entrega o resultado ao modelo, que o incorpora na sua resposta ao utilizador.

Tudo isto acontece automaticamente — o utilizador não precisa de configurar nada em tempo de execução. O modelo descobre as ferramentas disponíveis a partir do contexto e decide usá-las quando faz sentido.

4. Exemplo prático — servidor de ficheiros locais

O servidor MCP mais comum para começar é o filesystem server oficial da Anthropic. Permite que um modelo de IA leia e escreva ficheiros locais num directório autorizado.

Passo 1 — Instalar e configurar em claude_desktop_config.json:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "@anthropic/mcp-filesystem",
        "/home/utilizador/projetos"
      ]
    }
  }
}

Passo 2 — Reiniciar o Claude Desktop. O cliente liga-se ao servidor e o modelo passa a ter acesso de leitura/escrita aos ficheiros dentro de /home/utilizador/projetos.

Passo 3 — Usar. Pergunte ao Claude: “Lista os ficheiros no directório de projectos e resume o conteúdo do README.md”. O modelo vai usar as tools list_directory e read_file automaticamente.

ℹ Nota: O caminho no array args define o directório autorizado. O servidor não consegue aceder a ficheiros fora desse caminho — é uma medida de isolamento importante.

5. Servidores MCP populares

O ecossistema de servidores MCP cresce rapidamente. A tabela seguinte lista os mais usados e as suas capacidades principais:

Servidor MCP Capacidades Caso de uso
filesystem Ler, escrever, listar ficheiros Acesso a código e documentos locais
GitHub Issues, PRs, repositórios, commits Gestão de código e revisões
Slack Ler e enviar mensagens, canais Comunicação equipa e notificações
PostgreSQL Executar queries SQL, schema Análise de dados e relatórios
Google Drive Pesquisar, ler e gerir documentos Acesso a docs na nuvem
Brave Search Pesquisa web em tempo real Informação actualizada online
Memory Armazenar e recuperar conhecimento Memória persistente entre sessões
Puppeteer Automatizar navegador web Scraping e interacção com páginas

6. Clientes MCP

Qualquer aplicação pode implementar um cliente MCP. Os principais clientes actualmente disponíveis:

Cliente Empresa Plataforma
Claude Desktop Anthropic macOS, Windows
VS Code (Copilot) Microsoft / GitHub Multiplataforma
Cursor Anysphere macOS, Windows, Linux
Zed Zed Industries macOS, Linux
Windsurf Codeium macOS, Windows, Linux
Continue.dev Continue VS Code, JetBrains

7. MCP vs RAG vs Function Calling

MCP, RAG e Function Calling são conceitos complementares, não mutuamente exclusivos. A tabela seguinte clarifica as diferenças:

Aspecto MCP RAG Function Calling
O que é Protocolo standard de ligação Retrieve + Generate Chamada de funções específicas
Objectivo Standardizar conexões IA-dados Dar contexto ao modelo Executar acções externas
Padrão Aberto (JSON-RPC 2.0) Arquitectura, não standard API específica de cada modelo
Relação Pode usar RAG via resources Complementa MCP MCP usa function calling internamente
Exemplo Servidor PostgreSQL MCP Buscar docs numa vector store Chamar get_weather(cidade)

Em resumo: MCP é o protocolo de transporte, RAG é um padrão de arquitectura para injecção de contexto, e Function Calling é o mecanismo pelo qual o modelo invoca funções. MCP pode incorporar tanto RAG (via resources) como function calling (via tools).

8. Segurança e riscos

⚠ Aviso de segurança: Servidores MCP têm acesso directo a dados sensíveis — ficheiros, bases de dados, APIs, mensagens. Um servidor malicioso pode exfiltrar dados, executar código arbitrário ou manipular respostas do modelo. Nunca instale servidores MCP de fontes desconhecidas ou não auditadas. Validar sempre as permissões concedidas, restringir caminhos de ficheiros ao mínimo necessário, e usar isolamento de processo. Ataques de prompt injection via tools são possíveis — um servidor pode injectar instruções maliciosas nos resultados que devolve, influenciando o comportamento do modelo. Auditar o código fonte de qualquer servidor antes de o usar em produção.

Princípios de segurança MCP

  • Princípio do mínimo privilégio — conceder apenas as permissões estritamente necessárias. Um servidor de ficheiros não precisa de acesso a todo o disco.
  • Auditar código fonte — antes de instalar um servidor MCP, ler o código. Se for npm/pip package, verificar dependências.
  • Isolamento — executar servidores em containers ou sandboxes quando possível. Não dar acesso à rede se não for necessário.
  • Prompt injection — estar ciente de que ferramentas podem devolver conteúdo malicioso que engana o modelo. Não confiar cegamente em resultados de tools.
  • Credenciais — nunca embutir tokens ou passwords em ficheiros de configuração MCP. Usar variáveis de ambiente ou cofres de segredos.
  • Auditoria e logs — registar todas as invocações de tools para análise posterior em caso de incidente.

9. Ecossistema e adopção

A adopção do MCP tem sido notável. O que começou como um protocolo da Anthropic tornou-se num standard de facto adopted pela indústria:

  • Anthropic — lançou o MCP em Novembro 2024 como open source, com SDKs em TypeScript e Python, e suporte nativo no Claude Desktop.
  • OpenAI — anunciou suporte para MCP em Dezembro de 2025, integrando o protocolo nas suas APIs e ferramentas de agentes.
  • Microsoft — Copilot e VS Code suportam MCP, permitindo que o Copilot use servidores MCP para aceder a ferramentas externas.
  • Google — suporta MCP no Gemini e nas suas ferramentas de desenvolvimento de agentes.
  • Editores de código — Cursor, Zed, Windsurf e Continue.dev implementaram clientes MCP, tornando-o ubíquo no desenvolvimento assistido por IA.

O MCP é agnóstico de modelo — não está ligado a nenhum LLM específico. Qualquer modelo que suporte function calling pode beneficiar de um cliente MCP. Isto é fundamental para a longevidade do standard: não fica refém de uma única empresa.

ℹ Trend: O número de servidores MCP disponíveis passou de algumas dezenas no lançamento (Nov 2024) para centenas em meados de 2025. Comunidades open source contribuem regularmente com novos servidores para ferramentas como Linear, Notion, Jira, Docker, Kubernetes, e muito mais.

10. Erros comuns e checklist

Ao trabalhar com MCP, estes são os erros mais frequentes e como evitá-los:

Erro Causa Solução
Servidor não arranca Caminho do command errado ou npx não instalado Verificar caminho absoluto e instalar Node.js
Modelo não usa as tools Descrição das tools é vaga ou ambígua Melhorar descrição e schema de parâmetros
Acesso negado a ficheiros Caminho não autorizado no config Adicionar caminho ao array args do servidor
Timeout em chamadas Servidor lento ou rede instável (SSE) Aumentar timeout no cliente ou usar stdio local
Resultados inesperados Prompt injection via tool maliciosa Auditar servidor e não confiar em resultados sem validação
Config não é lido JSON inválido ou ficheiro no local errado Validar JSON e confirmar caminho do config

Checklist de implementação MCP

  • ✓ Verificar que Node.js e npm estão instalados (para servidores npx)
  • ✓ Ler o código fonte do servidor MCP antes de instalar
  • ✓ Restringir caminhos de ficheiros ao mínimo necessário
  • ✓ Validar que o ficheiro de config é JSON válido
  • ✓ Reiniciar o cliente após alterar a configuração
  • ✓ Testar com uma pergunta simples antes de usar em produção
  • ✓ Manter logs de invocação de tools para auditoria
  • ✓ Usar variáveis de ambiente para credenciais, nunca no config
  • ✓ Considerar isolamento em container para servidores de produção
  • ✓ Manter servidores MCP actualizados com as últimas versões

Artigos relacionados