Pular para conteúdo

Aula 06 - Implementação de um Servidor MCP ⚙️

Do Setup ao "Olá Mundo"


Agenda de Hoje 📅

  1. Escolha da Stack (Node vs Python)
  2. SDKs Oficiais
  3. Estrutura de um Projeto MCP
  4. Criando sua Primeira Tool
  5. Depuração com o Inspector

1. Node.js vs Python 🥊

  • Node.js: Ótimo para integrações de rede e APIs web.
  • Python: Melhor para ciência de dados e IA nativa.
  • O protocolo MCP é idêntico em ambos!

2. Setup com Node.js (TypeScript) 📂

npm init -y
npm install @modelcontextprotocol/sdk zod

3. Registrando uma Tool (Exemplo) 🛠️

server.tool(
  "ola", 
  "Retorna uma saudação",
  { nome: z.string() },
  async ({ nome }) => {
    return { 
      content: [{ type: "text", text: `Olá, ${nome}!` }] 
    };
  }
);

4. O Poder do Zod (TypeScript) 🛡️

  • Validação em tempo de execução.
  • Garante que a IA envie os dados corretos.
  • Gera o JSON Schema automaticamente.

5. Setup com Python (FastMCP) 🐍

pip install mcp fastmcp
from fastmcp import FastMCP
mcp = FastMCP("Meu App")

@mcp.tool()
def somar(a: int, b: int) -> int:
    return a + b

6. Depuração: O MCP Inspector 🔍

  • Ferramenta visual para testar o servidor.
  • Não precisa de um LLM real para rodar.
  • Permite ver erros de sintaxe rapidamente.

7. Rodando o Inspetor

$ npx @modelcontextprotocol/inspector node build/index.js
[INFO] Server connected!
[INFO] Tools: ola, somar.

8. Boas Práticas de Implementação

  • Use nomes de ferramentas claros.
  • Documente os parâmetros com .describe().
  • Trate exceções para não derrubar o servidor.

9. Estrutura de Arquivos Recomendada

├── src/
│   ├── index.ts
│   ├── handlers/
│   └── utils/
├── package.json
└── tsconfig.json

10. Diagrama de Registro

graph LR
    A[Código Dev] --> B[SDK MCP]
    B --> C[Registro Tool]
    C --> D[Geração Schema]
    D --> E[Pronto para IA]

11. O Arquivo de Configuração do Cliente

  • Onde registrar o seu servidor local.
  • claude_desktop_config.json.

12. Resumo ✅

  • SDKs facilitam o trabalho.
  • Zod/Python type hints validam dados.
  • O Inspetor é o melhor amigo do dev.

13. Mini-Projeto: Ola Mundo

  • Criar um servidor que diz a hora atual.

14. Dúvidas? 🤔

"A simplicidade é o último degrau da sofisticação."