Aula 06 - Implementação de um Servidor MCP ⚙️
Do Setup ao "Olá Mundo"
Agenda de Hoje 📅
- Escolha da Stack (Node vs Python)
- SDKs Oficiais
- Estrutura de um Projeto MCP
- Criando sua Primeira Tool
- 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) 📂
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) 🐍
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
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."