O que é Model Context Protocol (MCP): O Padrão Aberto de Conectividade de IA — aula do módulo Introdução ao Protocolo MCP & Arquitetura, na trilha Fundamentos…
Leitura de aproximadamente 8 minutos.
Módulo: Introdução ao Protocolo MCP & Arquitetura · Curso: Fundamentos de MCP & Arquitetura Client/Server · Formação: Formação em Protocolo MCP & Ferramental de Agentes
Antes da criação e consolidação do Model Context Protocol (MCP), o ecossistema de inteligência artificial sofria de uma fragmentação crônica. Se uma empresa possuía 5 aplicações com LLMs integrados (Claude Desktop, IDEs como VS Code/Cursor, bots de Slack, agentes autônomos internos e interfaces web) e precisava conectá-los a 8 fontes de dados e ferramentas (PostgreSQL, GitHub, Jira, Google Drive, Linear, AWS CloudWatch, Notion e Figma), a equipe de engenharia era forçada a construir e manter 40 integrações proprietárias ponto-a-ponto ($5 \times 8 = 40$).
+-----------------------------------------------------------------------------------+
| PARADIGMA TRADICIONAL NxM vs PADRÃO ABERTO MCP |
+-----------------------------------------------------------------------------------+
| Paradigma Anterior (NxM Conexões Frágeis): |
| [Claude App] ───┬───> [Driver Postgres custom] ───> [PostgreSQL DB] |
| [Cursor IDE] ───┼───> [Plugin GitHub custom] ───> [GitHub API] |
| [Slack Bot] ───┼───> [Script Jira custom] ───> [Jira API] |
| [Agent Web] ───┴───> [Connector AWS custom] ───> [AWS CloudWatch] |
| (Cada cliente precisava implementar seu próprio parser, auth e tool-calling) |
| |
| Paradigma Unificado MCP (1xN via Protocolo Aberto): |
| [Claude Desktop] ┐ ┌──> [MCP Server Postgres] |
| [Cursor / IDE] ┼──> [ Protocolo MCP Aberto ] ──┼──> [MCP Server GitHub] |
| [Agent Custom] ┘ (JSON-RPC 2.0 Padronizado) └──> [MCP Server AWS] |
+-----------------------------------------------------------------------------------+
Cada integração demandava formatações de prompt específicas, lógicas manuais de sanitização, parsing customizado de JSON schemas para Function Calling e gestão dispersa de chaves de API. Se a API do GitHub mudasse ou se um novo modelo de IA fosse adotado, dezenas de conectores quebravam simultaneamente.
O MCP resolve essa explosão combinatória transformando a arquitetura em um modelo 1xN:
Para entender a elegância do MCP, basta observar a revolução ocorrida no desenvolvimento de software com o Language Server Protocol (LSP), criado pela Microsoft para o VS Code.
No início dos anos 2010, cada editor de código (Sublime Text, Vim, Emacs, Eclipse, Atom) precisava escrever um analisador léxico e sintático proprietário para cada linguagem (TypeScript, Python, Go, Rust, C++). Com o LSP, os criadores da linguagem passaram a fornecer um Language Server oficial (ex: gopls, pyright, rust-analyzer), e os editores atuavam como clientes LSP padronizados via JSON-RPC.
O MCP aplica exatamente o mesmo princípio para a era dos Agentes de IA: 1. Padronização do Transporte: Define como mensagens transitam via streams locais (stdio) ou via Streamable HTTP em servidores remotos (o antigo transporte HTTP+SSE está deprecado). 2. Contrato de Descoberta: O modelo descobre dinamicamente quais ferramentas (Tools), documentos (Resources) e modelos de raciocínio (Prompts) o servidor disponibiliza. 3. Isolamento de Execução: O modelo de linguagem nunca toca diretamente no banco de dados ou nas credenciais; ele apenas solicita ao cliente a invocação controlada de uma primitiva exposta pelo servidor.
+-----------------------------------------------------------------------------------+
| ANALOGIA CONCEITUAL: LSP vs MCP |
+-----------------------------------------------------------------------------------+
| Dimensão | LSP (Language Server Protocol) | MCP (Model Context Protocol)|
+---------------------+--------------------------------+----------------------------+
| Consumidor (Host) | VS Code, Neovim, JetBrains | Claude Desktop, Cursor, AI |
| Servidor | Pyright, Rust-Analyzer, Gopls | Postgres MCP, GitHub MCP |
| Protocolo Base | JSON-RPC 2.0 | JSON-RPC 2.0 |
| Capacidades Centrais| Autocomplete, Go to Definition | Tools, Resources, Prompts |
| Objetivo Principal | Inteligência de código unificada| Conectividade de contexto |
+-----------------------------------------------------------------------------------+
O ecossistema MCP divide as responsabilidades em três entidades distintas e fortemente isoladas:
+-----------------------------------------------------------------------------------+
| FLUXO DE COMUNICAÇÃO: HOST, CLIENT E SERVER |
+-----------------------------------------------------------------------------------+
| [ HOST APPLICATION ] (Ex: Claude Desktop, Cursor IDE, Agente Customizado) |
| ┌─────────────────────────────────────────────────────────────────────────────┐ |
| │ Orquestrador de IA / LLM (Claude Sonnet 5 / Gemini 3.8 Flash) │ |
| │ │ |
| │ ┌────────────────────────┐ ┌────────────────────────┐ │ |
| │ │ MCP Client Instância 1 │ │ MCP Client Instância 2 │ │ |
| └──┴───────────┬────────────┴─────────┴───────────┬────────────┴──────────────┘ |
| │ stdio stream (Pipe OS) │ Streamable HTTP (TLS) |
| ▼ ▼ |
| ┌─────────────────────────────┐ ┌──────────────────────────────────────────┐ |
| │ MCP Server: Local SQLite │ │ MCP Server: Enterprise CRM Remoto │ |
| │ - Expose: db://schema │ │ - Expose: crm://customers/v1 │ |
| │ - Tool: execute_sql_query │ │ - Tool: update_deal_stage │ |
| └─────────────────────────────┘ └──────────────────────────────────────────┘ |
+-----------------------------------------------------------------------------------+
A aplicação que o usuário final utiliza diretamente. O Host é responsável por:
O componente interno (frequentemente embutido no Host) que mantém a conexão 1:1 com um servidor específico. Suas funções incluem:
_meta de cada requisição (desde a revisão 2026-07-28 não existe mais handshake inicial; o protocolo é stateless).O processo autônomo (local ou remoto) que expõe capacidades reais ao ecossistema. Ele não interage diretamente com o LLM; em vez disso, ele responde estritamente às diretivas estruturadas do Client.
Toda a comunicação no MCP segue o padrão JSON-RPC 2.0. Isso garante que qualquer linguagem de programação capaz de ler stdin/stdout ou consumir requisições HTTP possa atuar como servidor ou cliente.
tools/list)Para montar o catálogo, o cliente pede as ferramentas disponíveis. Repare no _meta: desde a revisão 2026-07-28, toda requisição declara a versão do protocolo e as capabilities do cliente.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {
"_meta": {
"io.modelcontextprotocol/protocolVersion": "2026-07-28",
"io.modelcontextprotocol/clientCapabilities": {}
}
}
}
O servidor responde com o catálogo de ferramentas e seus respectivos JSON Schemas de validação:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"resultType": "complete",
"tools": [
{
"name": "query_database",
"description": "Executa uma consulta SQL segura em modo leitura no banco de dados analítico.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "A instrução SQL SELECT a ser executada."
},
"limit": {
"type": "integer",
"description": "Limite máximo de registros retornados.",
"default": 50
}
},
"required": ["query"]
}
}
],
"ttlMs": 300000,
"cacheScope": "private"
}
}
ttlMs diz por quanto tempo o cliente pode reaproveitar esta lista sem pedir de novo; cacheScope: "private" impede que intermediários compartilhados guardem a resposta. Os inputSchema seguem o dialeto JSON Schema 2020-12 por padrão.
Em ambientes corporativos, permitir que modelos de linguagem acessem bancos de dados e APIs externas sempre representou um risco severo de segurança. O MCP introduz salvaguardas arquiteturais essenciais:
1. Isolamento de Credenciais de Acesso: O LLM nunca recebe a senha do banco de dados, chaves SSH ou API tokens. O MCP Server armazena essas credenciais localmente em seu próprio ambiente e apenas expõe métodos semânticos de alto nível. 2. Controle Estrito de Sandboxing: Um servidor local pode ser confinado a um diretório de arquivos restrito, impedindo que o modelo acesse partes sensíveis do sistema operacional (/etcOutras aulas do módulo