Pular para conteúdo

Aula 02 - Fundamentos de Protocolos e APIs 📡

As Bases Técnicas do MCP


Agenda de Hoje 📅

  1. O que é um Protocolo?
  2. REST vs RPC
  3. JSON-RPC 2.0: O Coração do MCP
  4. Formatos de Dados (JSON)
  5. Autenticação e Autorização
  6. 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."