MODULO 3.3

🔌 MCP: Model Context Protocol

MCP permite que Claude se conecte a fontes de dados externas como bancos de dados, APIs e servicos. Expanda as capacidades do Claude Code muito alem do sistema de arquivos local.

6
Topicos
50
Minutos
Avancado
Nivel
Pratico
Tipo
1

🌐 O que e MCP

Model Context Protocol (MCP) e um protocolo aberto que permite conectar LLMs a fontes de dados externas de forma padronizada. Com MCP, Claude pode consultar bancos de dados, chamar APIs, acessar documentacao e muito mais.

🔗 Arquitetura MCP

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│   Claude Code   │ ←→  │   MCP Server    │ ←→  │   Data Source   │
│   (Cliente)     │     │   (Bridge)      │     │   (DB, API...)  │
└─────────────────┘     └─────────────────┘     └─────────────────┘
  • Cliente: Claude Code que faz as requisicoes
  • Server: Ponte que traduz requisicoes para a fonte de dados
  • Data Source: Banco de dados, API, servico externo

📊 Servidores MCP Disponiveis

PostgreSQL

Consultas SQL diretas

GitHub

Issues, PRs, repos

Slack

Mensagens, canais

Google Drive

Docs, Sheets

Notion

Paginas, databases

Custom

Crie o seu!

2

⚙️ Configurando MCP

A forma recomendada de configurar MCP e via CLI. A configuracao e armazenada em locais diferentes dependendo do escopo.

⚠️ Importante: Localizacao dos Arquivos

Escopo Arquivo Uso
local ~/.claude.json Privado, apenas este projeto
project .mcp.json Compartilhado via Git
user ~/.claude.json Todos os projetos

Metodo 1: Via CLI (Recomendado)

# Adicionar servidor HTTP remoto
claude mcp add --transport http github https://api.githubcopilot.com/mcp/

# Adicionar servidor stdio local
claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
  --dsn "postgresql://user:pass@localhost:5432/mydb"

# Listar servidores configurados
claude mcp list

# Remover servidor
claude mcp remove github

# Ver status dentro do Claude Code
/mcp

Metodo 2: Arquivo .mcp.json (Projeto)

Para compartilhar com a equipe via Git, crie .mcp.json na raiz do projeto:

{
  "mcpServers": {
    "sentry": {
      "type": "http",
      "url": "https://mcp.sentry.dev/mcp"
    },
    "db-local": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@bytebase/dbhub", "--dsn", "${DATABASE_URL}"],
      "env": {
        "DATABASE_URL": "${DATABASE_URL}"
      }
    }
  }
}

Use ${VAR} para variaveis de ambiente.

--scope local

Padrao. Privado, apenas este projeto.

--scope project

Salva em .mcp.json para compartilhar.

--scope user

Disponivel em todos os projetos.

⚠️ Seguranca

Nunca commite credenciais no .mcp.json! Use variaveis de ambiente com ${VAR}. Tokens sao armazenados de forma segura pelo Claude Code.

3

🗄️ MCP com PostgreSQL

O servidor MCP para PostgreSQL permite que Claude execute queries SQL diretamente no seu banco de dados. Ideal para analise de dados, debugging e geracao de relatorios.

Configuracao via CLI (Recomendado)

claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \
  --dsn "postgresql://readonly:pass@localhost:5432/analytics"

Ou via .mcp.json:

{
  "mcpServers": {
    "db": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@bytebase/dbhub", "--dsn", "${DATABASE_URL}"],
      "env": {
        "DATABASE_URL": "${DATABASE_URL}"
      }
    }
  }
}

Exemplo de Uso

Voce pergunta:

"Quantos usuarios se cadastraram no ultimo mes?"

Claude executa:

SELECT COUNT(*) FROM users WHERE created_at > NOW() - INTERVAL '1 month';

Claude responde:

"Foram 1.247 novos cadastros no ultimo mes. Isso representa um aumento de 23% em relacao ao mes anterior."

✓ Casos de Uso

  • • Analise exploratoria de dados
  • • Geracao de relatorios
  • • Debug de problemas de dados
  • • Validacao de migracoes

✗ Cuidados

  • • Use usuario read-only quando possivel
  • • Cuidado com queries pesadas
  • • Nao exponha dados sensiveis
  • • Monitore uso de recursos
4

🐙 MCP com GitHub

Conecte Claude ao GitHub para gerenciar issues, analisar PRs e interagir com repositorios sem sair do terminal.

Configuracao via CLI

# GitHub usa servidor HTTP remoto com OAuth
claude mcp add --transport http github https://api.githubcopilot.com/mcp/

# Depois, autentique dentro do Claude Code:
/mcp
# Selecione "Authenticate" para GitHub

A autenticacao e feita via OAuth - nao precisa de token manual!

Operacoes Disponiveis

Issues

  • • Listar issues abertas
  • • Criar nova issue
  • • Comentar em issue
  • • Fechar/reabrir issue

Pull Requests

  • • Listar PRs pendentes
  • • Ver diff de PR
  • • Adicionar review
  • • Aprovar/solicitar mudancas

💡 Exemplo Pratico

"Liste as 5 issues mais antigas do repositorio e sugira quais devem ser fechadas como stale"

Claude usara o MCP GitHub para buscar issues, analisar idade e atividade, e dar recomendacoes.

5

🛠️ Criando seu MCP Server

Voce pode criar servidores MCP customizados para conectar Claude a qualquer fonte de dados da sua empresa.

Estrutura Basica (TypeScript)

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

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

// Definir tools disponiveis
server.setRequestHandler("tools/list", async () => ({
  tools: [{
    name: "buscar_cliente",
    description: "Busca dados de um cliente pelo ID",
    inputSchema: {
      type: "object",
      properties: {
        clienteId: { type: "string" }
      },
      required: ["clienteId"]
    }
  }]
}));

// Implementar a tool
server.setRequestHandler("tools/call", async (request) => {
  if (request.params.name === "buscar_cliente") {
    const cliente = await minhaAPI.getCliente(request.params.arguments.clienteId);
    return { content: [{ type: "text", text: JSON.stringify(cliente) }] };
  }
});

// Iniciar servidor
const transport = new StdioServerTransport();
server.connect(transport);

1. Instalar SDK

npm install @modelcontextprotocol/sdk

2. Implementar handlers

Defina tools/list para listar capacidades e tools/call para executar

3. Registrar via CLI

claude mcp add --transport stdio meu-servidor -- node ./mcp-server.js

Ou adicione em .mcp.json para compartilhar com a equipe.

Casos de Uso Empresariais

  • CRM interno: Claude consulta dados de clientes
  • Sistema de tickets: Gerenciar suporte via Claude
  • Analytics: Queries em data warehouse
  • Documentacao: Buscar em Confluence/Wiki interno
6

🔐 Seguranca e Boas Praticas

MCP da a Claude acesso a dados sensiveis. Seguranca e fundamental para evitar vazamentos e acessos indevidos.

✓ Fazer

  • Usar usuarios read-only quando possivel
  • Rotacionar tokens regularmente
  • Usar variaveis de ambiente
  • Limitar escopo de permissoes
  • Auditar acessos regularmente

✗ Evitar

  • Commitar credenciais no Git
  • Usar usuario admin do banco
  • Expor dados de producao desnecessarios
  • Ignorar rate limits
  • Compartilhar mcp.json pessoal

Checklist de Seguranca

📋 Resumo do Modulo

MCP conecta Claude a dados externos - bancos, APIs, servicos
Configure via CLI ou .mcp.json - claude mcp add ou arquivo para equipe
Servidores pre-construidos - PostgreSQL, GitHub, Slack e mais
Crie servers customizados - conecte qualquer sistema interno
Seguranca e critica - usuarios read-only, tokens rotativos

Proximo Modulo:

3.4 - Hooks: Automacao de Eventos - execute codigo em resposta a acoes do Claude