Cabo na nuca

MCP

O plug na nuca do agente

O protocolo que conecta o cerebro do agente a qualquer sistema externo. Gmail, GitHub, Slack, Drive, Postgres: tudo a um plug de distancia.

Canal Sandeco
"
"

Neo nao nasce sabendo kung-fu. Eles plugam o programa na nuca dele em cinco segundos. MCP e esse cabo.

MCP, o protocolo que liga o agente a Matrix

O que e o Model Context Protocol?

Quatro caracteristicas que transformam o agente local num operador conectado ao mundo inteiro.

Protocolo aberto

Criado pela Anthropic em novembro de 2024. Especificacao publica, qualquer um pode implementar cliente ou servidor.

Ferramentas externas

Expoe tools, resources e prompts. O agente ganha acesso a APIs reais.

Tres transportes

Local via stdio, remoto via HTTP ou via SSE. Voce escolhe onde o server vive.

Permissionado

Cada server pede aprovacao na primeira chamada de cada tool. Voce controla o que entra e o que sai.

MCP vs Skill vs Command

Tres camadas, tres papeis. MCP nao substitui as outras peças: ele cobre o que elas nao conseguem.

Dimensao
MCP
Skill
Command
O que entrega
Conexao externa
Capacidade local
Atalho de prompt
Onde mora
.mcp.json
.claude/skills/
.claude/commands/
Quem dispara
Agente, via tool call
Agente, lendo a intencao
Usuario, com a barra
Camada que cobre
Mundo externo
Conhecimento de dominio
Repeticao de prompt
Metafora
Plug na nuca
Programa carregado
Tank disca

Anatomia de uma chamada MCP

O agente nunca fala diretamente com o Gmail. Quem fala e o MCP client, que conversa com o server, que faz a chamada real.

1. Agente

Decide chamar

"Vou listar issues do repo X"

2. MCP Client

Empacota e envia

JSON-RPC pelo transporte

3. MCP Server

Executa

Chama a API real do GitHub

Agente nao conhece a API
Client cuida do transporte
Server traduz para a API

Em movimento

O cabo em acao

Agente pede, MCP client empacota, server externo executa, API real responde. A volta tras dados estruturados, prontos para o agente raciocinar.

Agente pede tool
Client envia JSON-RPC
Server chama a API
Resposta volta

O .mcp.json que liga tudo

Um arquivo na raiz do projeto declara quais servers o agente pode usar. Vai para o Git, vale para o time inteiro.

.mcp.json
{
  "mcpServers": {
    // GitHub: PRs, issues, comentarios
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${env:GH_TOKEN}"
      }
    },

    // Filesystem: acessa pastas fora do projeto
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/me/Documents",
        "/Users/me/Downloads"
      ]
    },

    // Postgres: consulta o banco direto
    "postgres": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-postgres"],
      "env": {
        "DATABASE_URL": "${env:DATABASE_URL}"
      }
    }
  }
}

.mcp.json no projeto

Vai para o repo. Todo dev do time recebe os mesmos servers.

~/.claude.json no home

Servers pessoais, validos em qualquer pasta. Nao versionados.

Sem editar JSON

Adicionar via CLI

O comando claude mcp add escreve no arquivo de configuracao por voce. Bom para experimentar antes de comitar.

1

Nome amigavel do server

2

Comando que sobe o server

3

Reinicia a sessao e ja aparece

terminal
# Adiciona o server do GitHub
$ claude mcp add github \
    npx @modelcontextprotocol/server-github

# Adiciona o filesystem com pastas liberadas
$ claude mcp add filesystem \
    npx @modelcontextprotocol/server-filesystem \
    /Users/me/Documents

# Lista os servers ativos
$ claude mcp list
github       ./mcp.json   stdio   ok
filesystem   ./mcp.json   stdio   ok
postgres     ./mcp.json   stdio   ok

# Remove se quiser
$ claude mcp remove github

Dentro do Claude Code, o atalho /mcp abre o painel de gestao dos servers ativos.

Tres transportes, tres lugares

Onde o server roda decide o transporte. Local na sua maquina, hospedado em algum lugar, ou em streaming continuo.

stdio

Processo local

O Claude sobe o server como subprocesso na sua maquina. Conversa por stdin/stdout.

  • Zero latencia de rede
  • Acesso ao filesystem local
  • Mais simples de instalar
npx servidor-mcp

HTTP

Server remoto

O server roda em outro lugar, exposto por uma URL. O Claude faz requests HTTP normais.

  • Centralizado para o time
  • Permite OAuth e auth real
  • Escala como qualquer API
https://mcp.empresa.com

SSE

Streaming continuo

Server-Sent Events. O server empurra eventos em tempo real, util para notificacoes e dados que mudam.

  • Eventos push, sem polling
  • Boa para dados reativos
  • Mesma infra do HTTP
text/event-stream
Ja vem prontos

Os servers oficiais

A Anthropic mantem uma lista de servers prontos. Voce instala com npx e ja conecta.

filesystem

Le e escreve em pastas que voce libera explicitamente.

github

Cria PRs, abre issues, comenta, faz review. Usa seu token.

slack

Posta em canal, le mensagens, notifica quando uma tarefa termina.

postgres

Consulta tabelas, inspeciona schema, sem precisar de cliente SQL.

puppeteer

Abre o browser de verdade, clica, preenche, tira screenshot.

brave-search

Pesquisa na web via API do Brave Search. Resultados estruturados.

google-drive

Lista e le arquivos do Drive via OAuth. Docs, planilhas, PDFs.

gmail

Le, busca e envia emails. OAuth direto no Google Workspace.

Bonus: servers com OAuth (Gmail, Drive, Slack) pedem login uma vez. Depois o token fica salvo na sessao MCP, sem te interromper.

Hands-on, 60 segundos

Conectar o filesystem MCP agora

Tres passos. Voce libera uma pasta, conecta o server, o agente ja le e escreve nela.

terminal
# Passo 1: adiciona o server
$ claude mcp add filesystem \
    npx -y @modelcontextprotocol/server-filesystem \
    ~/Documents

# Passo 2: confirma que esta ativo
$ claude mcp list
filesystem  ~/.claude.json  stdio  ok

# Passo 3: abre o Claude Code e pede
$ claude
> "Liste os PDFs em ~/Documents
   modificados na ultima semana"

O server roda como subprocesso local. Le e escreve so nas pastas que voce passou.

Claude Code, sessao ativa
> Liste os PDFs em ~/Documents da ultima semana
mcp__filesystem__list_directory
Permitir? (s/n) s
Encontrei 4 PDFs:
- contrato-2026.pdf (3 dias)
- relatorio-q1.pdf (5 dias)
- nota-fiscal-887.pdf (6 dias)
- recibo-aluguel.pdf (hoje)
cabo conectado

O agente nunca tocou em outras pastas. Acessou so o que voce liberou no claude mcp add.

1

Adiciona o server

claude mcp add filesystem ... passando as pastas que voce libera.

2

Confirma com /mcp

Dentro da sessao, /mcp mostra os servers e o status de cada um.

3

Pede em portugues

O agente escolhe a tool MCP, voce aprova a primeira chamada e ele segue.

Como o agente nomeia as tools MCP

Toda ferramenta vinda de um server MCP recebe um prefixo padronizado. Voce ve o nome completo no log e sabe exatamente de onde veio.

Anatomia do nome

mcp __ github __ create_pull_request

prefixo fixo

mcp__

Indica que veio de um server MCP. Distingue das tools internas.

nome do server

github

O alias que voce deu no .mcp.json ou no claude mcp add.

nome da tool

create_pull_request

A funcao exposta pelo server. Cada server define as suas.

Exemplos reais

  • mcp__filesystem__read_file
  • mcp__github__list_issues
  • mcp__slack__post_message
  • mcp__postgres__query

Util saber porque

Em allowed-tools de skills ou subagents, voce pode permitir so um subconjunto: mcp__github__* libera tudo do GitHub, sem soltar o resto.

Cinco plugs

Cinco MCPs que mudam o jogo

Conectores que tiram o agente do projeto e o jogam no mundo real. Cinco exemplos, cinco superpoderes.

github filesystem postgres slack puppeteer

MCP 1, github

Pull requests automaticos

O agente termina a feature, abre o PR, escreve a descricao, marca o reviewer. Tudo sem voce sair do terminal. Sem alt-tab pro browser.

tools expostas
# Listagem (parcial) das tools do server

mcp__github__create_pull_request
mcp__github__list_issues
mcp__github__create_issue_comment
mcp__github__get_file_contents
mcp__github__search_repositories
mcp__github__create_or_update_file
mcp__github__merge_pull_request
mcp__github__add_issue_comment

# Token via env, nunca commitado
GITHUB_PERSONAL_ACCESS_TOKEN="$GH_TOKEN"
terminal
> "Abra um PR com as mudancas atuais no branch fix/login"
⎿ mcp__github__create_pull_request
PR #127 aberto:
fix(login): corrige redirect apos OAuth
3 commits, 47 linhas, 2 arquivos.
Reviewer: @sandeco
URL: github.com/org/repo/pull/127

Ganho pratico: o ciclo "code, commit, abrir PR, escrever descricao" vira uma frase. O agente cuida do GitHub, voce cuida do codigo.

MCP 2, filesystem

Acesso alem do projeto

Por padrao o Claude Code so ve a pasta onde voce abriu a sessao. O filesystem MCP libera outras pastas, sob seu controle, com pastas que voce escolhe explicitamente.

.mcp.json
{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "~/Documents/clientes",
        "~/Downloads/relatorios",
        "/var/log/app"
      ]
    }
  }
}

# Tools disponiveis no agente:
#   mcp__filesystem__read_file
#   mcp__filesystem__write_file
#   mcp__filesystem__list_directory
#   mcp__filesystem__search_files
caso de uso
> "Leia o relatorio mais recente em ~/Downloads/relatorios e gera um resumo"
⎿ mcp__filesystem__list_directory
⎿ mcp__filesystem__read_file
Resumo de 2026-05-q2.pdf:
Receita cresceu 18% no trimestre,
impulsionada por novos contratos
enterprise. CAC subiu 7%, dentro
do esperado pos-campanha de
aquisicao.

Ganho pratico: o agente passa a operar entre projeto e dados pessoais, sem voce ficar copiando arquivos manualmente para dentro do repo.

MCP 3, postgres

Consulta o banco direto

Sem abrir o pgAdmin, sem cliente SQL aberto. O agente le o schema, monta a query, traz o resultado e ja explica em portugues. Bom para debug em producao.

.mcp.json
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres"
      ],
      "env": {
        "DATABASE_URL": "${env:DATABASE_URL}"
      }
    }
  }
}

# Tools expostas:
#   mcp__postgres__query
#   mcp__postgres__list_tables
#   mcp__postgres__describe_table
terminal
> "Quantos usuarios novos por dia nos ultimos 7 dias?"
⎿ mcp__postgres__describe_table users
⎿ mcp__postgres__query
SELECT DATE(created_at) AS dia,
COUNT(*) AS novos
FROM users
WHERE created_at >= NOW() - INTERVAL '7 days'
GROUP BY dia ORDER BY dia;
412 novos no total.
Pico em 14/05 com 89 cadastros.

Ganho pratico: investigacao em banco vira conversa. Voce nao escreve SQL para perguntas exploratorias; o agente monta, executa e interpreta.

MCP 4, slack

Avisa o time automaticamente

O agente terminou o deploy, rodou a migration, fechou a issue. Em vez de voce escrever o aviso, ele posta no canal certo, com o link certo. Comunicacao on-the-fly.

tools expostas
mcp__slack__post_message
mcp__slack__reply_to_thread
mcp__slack__list_channels
mcp__slack__get_channel_history
mcp__slack__add_reaction
mcp__slack__get_user_profile

# Combo com hooks:
# Stop hook -> agente posta resumo
# do que fez na sessao no #dev-bot

# Combo com command:
# /notify desploy ok -> post no #ops
resultado no Slack
claude-bot APP 14:32
Deploy de v1.8.0 para staging concluido.
3 migrations rodaram, 0 falhas.

Mudancas:
- feat: novo endpoint /webhooks
- fix: race condition no logout
- chore: bump deps de seguranca
#ops, postado via mcp__slack__post_message

Ganho pratico: a comunicacao do que o agente fez deixa de ser tarefa sua. O Slack vira saida natural do trabalho, nao um lembrete que voce esquece.

MCP 5, puppeteer

Automacao de browser real

O agente abre o Chromium de verdade, navega, clica, preenche, tira screenshot. Util para testar fluxos visuais, scrapear paginas com login ou simular o usuario.

tools expostas
mcp__puppeteer__navigate
mcp__puppeteer__screenshot
mcp__puppeteer__click
mcp__puppeteer__fill
mcp__puppeteer__evaluate
mcp__puppeteer__select

# Caso classico:
# "Verifique se o checkout
# funciona em staging e me
# traga uma screenshot de
# cada passo"

# O agente navega, clica,
# preenche cartao de teste,
# confirma e te entrega o
# relatorio visual.
terminal
> "Smoke test do checkout em staging.acme.com"
⎿ navigate /produtos
⎿ click .add-to-cart
⎿ navigate /checkout
⎿ fill input[name=card] 4242...
⎿ click button[type=submit]
⎿ screenshot success
Checkout passou em 3,2s.
Screenshot salva em /tmp/sm.png.

Ganho pratico: testes manuais que voce nunca quer fazer viram conversa de uma linha. O agente roda, voce so revisa a screenshot.

Os cinco plugs lado a lado

Resumo dos servers MCP praticos que voce acabou de ver.

Server O que conecta Ganho
github PRs, issues, comentarios e merges via API oficial Sem alt-tab
filesystem Le e escreve em pastas fora do projeto, controladas Agente sai do silo
postgres Consulta schema e dados, sem cliente SQL aberto Debug em segundos
slack Posta no canal, le mensagens, notifica o time Comunicacao on-the-fly
puppeteer Abre Chromium real, clica, preenche, tira screenshot Smoke test virou frase

Cinco servers oficiais, cinco mundos novos. Cada um e npx de distancia, sem build, sem deploy, sem cerimonia.

Quer ver o ecossistema inteiro?

O livro Engenharia de Software para Agentes Inteligentes destrincha MCP, commands, hooks, skills, subagents e cada peça que faz o agente trabalhar a seu favor.

Canal Sandeco · @canalsandeco
Skill capacidade
+
Command atalho
+
Hook vigia
+
Subagent delega
+
MCP conecta
=
Resultado Matrix dominada

Skills carregam o programa, Commands chamam o programa, Hooks vigiam o programa, Subagents dividem o programa e MCP pluga o programa no mundo.

Sem MCP, o agente ve so seu projeto. Com MCP, ele ve a Matrix inteira: Gmail, Drive, GitHub, Slack, Postgres, browsers, qualquer API. O cabo na nuca finalmente esta conectado.

Capitulo 5, MCP