Aula 02 - Fundamentos de Protocolos e APIs 📡
As Bases Técnicas do MCP
Agenda de Hoje 📅
- O que é um Protocolo?
- REST vs RPC
- JSON-RPC 2.0: O Coração do MCP
- Formatos de Dados (JSON)
- Autenticação e Autorização
- Contratos de Interface
1. O que é um Protocolo? 🔌
- Um conjunto de regras para comunicação.
- Garante que sistemas diferentes se entendam.
- Exemplo: HTTP (Web), SMTP (E-mail).
2. Modelos de Comunicação 🔄
2.1 REST (Representational State Transfer) 🏛️
- Focado em recursos (URLs).
- Verbos HTTP: GET, POST, PUT, DELETE.
- Ótimo para a web tradicional.
2.2 RPC (Remote Procedure Call) 🏗️
- Focado em chamadas de função.
- "Execute isto para mim".
- MCP utiliza JSON-RPC.
3. JSON-RPC 2.0 em Detalhes 📄
{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "get_weather",
"arguments": {"city": "SP"}
},
"id": 1
}
3.1 Anatomia da Mensagem
- method: A ação desejada.
- params: Os dados de entrada.
- id: Identificador da requisição.
4. Por que JSON? 💎
- Leve e legível por humanos.
- Independente de linguagem.
- Suporte nativo em quase todos os sistemas.
5. Contrato de Interface 📜
- "Se eu te enviar X, você me responde Y".
- Impede erros de processamento.
- Facilita a escalabilidade.
6. Fluxo de Handshake
sequenceDiagram
Client->>Server: Request (initialize)
Server-->>Client: Result (capabilities)
Client->>Server: Notification (initialized)
7. Autenticação e Autorização 🔐
- Autenticação: "Quem é você?".
- Autorização: "O que você pode fazer?".
- Essencial para proteger dados sensíveis.
8. WebSockets e SSE 🌊
- SSE: Servidor envia dados em fluxo (MCP remoto).
- WebSockets: Bi-direcional em tempo real.
9. Prática: Mensagem Manual 💻
$ echo '{"jsonrpc":"2.0","method":"resources/list"}' | mcp-server
[RECV] --> {"result": {"resources": [...]}}
10. Tratamento de Erros no Protocolo
- Códigos de erro padrão (ex: -32601).
- Mensagens claras para depuração.
11. O Papel do Schema 🏗️
- Define a estrutura obrigatória.
- Protege contra dados malformados.
12. Comparativo Tecnológico
| REST | RPC |
|---|---|
| Resource-based | Action-based |
| Verbos HTTP | JSON-RPC Methods |
| Web Browsers | Machine-to-Machine |
13. Resumo ✅
- Protocolos são os idiomas dos sistemas.
- JSON-RPC é eficiente para chamadas de IA.
- Contratos de interface garantem a estabilidade.
14. Mini-Projeto: Modelagem JSON
- Criar o JSON de uma ferramenta de "Consulta de CEP".
15. Dúvidas? 🤔
"Um código sem contrato é um bug esperando para acontecer."