MCP Servers
~35 min Avançado Parte 3

MCP Servers

Model Context Protocol — protocolo padrão aberto para conectar LLMs a ferramentas externas. Permite que Claude acesse bancos de dados, APIs, sistemas de arquivos remotos, e muito mais.

Configuração em settings.json

Adicione servidores MCP na chave mcpServers do seu settings.json:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/user/Documents"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "ghp_..."
      }
    },
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "POSTGRES_CONNECTION_STRING": "postgresql://..."
      }
    }
  }
}

Servidores MCP oficiais (Anthropic)

PacoteDescrição
@modelcontextprotocol/server-filesystemAcesso a arquivos locais
@modelcontextprotocol/server-githubGitHub API (issues, PRs, repos)
@modelcontextprotocol/server-postgresPostgreSQL queries
@modelcontextprotocol/server-sqliteSQLite queries
@modelcontextprotocol/server-fetchHTTP requests
@modelcontextprotocol/server-brave-searchBrave Search API
@modelcontextprotocol/server-puppeteerControle de browser
@modelcontextprotocol/server-slackSlack API
@modelcontextprotocol/server-memoryMemória KV persistente

Adicionando MCP server via CLI

# Adicionar servidor filesystem
claude mcp add filesystem npx @modelcontextprotocol/server-filesystem ~/docs

# Adicionar servidor github
claude mcp add github npx @modelcontextprotocol/server-github

# Listar servidores configurados
claude mcp list

# Remover servidor
claude mcp remove filesystem

# Adicionar servidor remoto via HTTP
claude mcp add --transport http vercel https://mcp.vercel.com

Criando seu próprio MCP server (TypeScript)

import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";

const server = new Server({
  name: "meu-server",
  version: "1.0.0",
}, {
  capabilities: { tools: {} }
});

// Registrar ferramenta
server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [{
    name: "consultar_api",
    description: "Consulta nossa API interna",
    inputSchema: {
      type: "object",
      properties: {
        endpoint: { type: "string" },
        params: { type: "object" }
      }
    }
  }]
}));

// Implementar ferramenta
server.setRequestHandler(CallToolRequestSchema, async (request) => {
  if (request.params.name === "consultar_api") {
    const result = await fetch(
      `https://api.minha-empresa.com/${request.params.arguments.endpoint}`
    );
    return { content: [{ type: "text", text: JSON.stringify(await result.json()) }] };
  }
});

const transport = new StdioServerTransport();
await server.connect(transport);

As 3 Primitivas do MCP

Todo servidor MCP expõe dados e ações através de três primitivas distintas. Entender quando usar cada uma é fundamental para criar servidores bem projetados.

Primitiva Controlado por Uso Exemplo
Tools Modelo (Claude decide quando chamar) Ações e chamadas externas — qualquer coisa que executa create_issue(), query_db(), send_email()
Resources Aplicação (a app decide o que expor) Dados somente-leitura — arquivos, registros, configurações file://readme.md, db://users/123
Prompts Usuário (invocado explicitamente) Templates pré-elaborados para fluxos comuns /review-pr, /summarize-ticket
Regra prática: Use Tools para tudo que faz algo (criar, modificar, consultar). Use Resources para expor dados que o Claude lê passivamente. Use Prompts para encapsular fluxos de trabalho frequentes que o usuário ativa explicitamente.

MCP Inspector — testando seu servidor

O SDK Python inclui o MCP Inspector, uma interface visual para testar e depurar servidores MCP sem precisar conectar o Claude:

# Instalar o MCP Inspector
npx @modelcontextprotocol/inspector

# Rodar seu servidor e abrir o inspector
npx @modelcontextprotocol/inspector python server.py

# O Inspector abre em http://localhost:5173
# Permite testar tools, resources e prompts interativamente

Servidores MCP populares da comunidade

ServidorDescrição
Vercel MCPDeployments, logs, projetos Vercel
Linear MCPIssues e projetos Linear
Jira MCPTickets Atlassian
Figma MCPDesign tokens e componentes
AWS MCPRecursos AWS

Exercício

Configure o servidor @modelcontextprotocol/server-filesystem para acessar ~/Documents e peça ao Claude: "liste todos os PDFs em meus documentos". Observe como o Claude usa a ferramenta MCP para executar a tarefa.

Recursos

0%