Ferramentas MCP
Ferramentas MCP nos seus agentes, com aprovação humana e trilha de cada chamada
Como a ControlHub conecta agentes às ferramentas do time via MCP — e por que toda escrita passa por uma pessoa antes de acontecer.
· ControlHub Labs
Um agente que só conversa ajuda pouco. O valor aparece quando ele lê o erro no Sentry, abre o PR no GitHub, confere o card no Jira. E é aí que mora o risco: o mesmo acesso que deixa o agente útil deixa ele fazer estrago.
Este post explica como a ControlHub resolve os dois lados — dar ferramentas ao agente e manter uma pessoa no controle do que ele escreve.
O que é MCP
MCP (Model Context Protocol) é um protocolo aberto para modelos de IA usarem ferramentas externas. Um servidor MCP expõe um conjunto de ferramentas — "listar issues", "ler arquivo", "criar página" — e qualquer cliente MCP pode chamá-las. A ControlHub é um cliente MCP: você cadastra o servidor, escolhe o que cada agente pode usar, e o agente passa a chamar essas ferramentas durante a conversa.
O que já vem no catálogo
O catálogo tem 15 servidores prontos para conectar:
- Código e engenharia: GitHub, Sentry, Linear, Atlassian (Jira e Confluence), Supabase e Vercel
- Documentos e comunicação: Notion, Slack, Google Calendar, Google Docs, Google Sheets, Google Drive e Gmail
- Automação e referência: Zapier e Microsoft Learn
Tirando o Microsoft Learn, que é aberto, todos os do catálogo pedem login por OAuth 2.0 completo: a ControlHub descobre o servidor de autorização, registra o cliente quando o provedor permite registro dinâmico e usa PKCE quando o provedor exige. Você autoriza na tela do próprio provedor.
Fora do catálogo, dá para cadastrar o servidor MCP da sua empresa pela URL, sem autenticação, com token no cabeçalho Authorization ou com OAuth 2.0.
Quem cadastra e testa servidores são os gestores do workspace (dono e administradores). O teste de conexão lista as ferramentas que o servidor expõe antes de qualquer agente usá-las.
O que cada agente pode usar
Conectar um servidor ao workspace não entrega tudo a todos os agentes. Na configuração de cada agente você decide:
- Quais servidores ele usa — liga e desliga por servidor.
- Quais ferramentas de cada servidor — o agente que resume a sprint não precisa criar issue.
- Quais leituras também pedem aprovação — para uma consulta que você quer ver antes de acontecer.
Escrita sempre passa por uma pessoa
Aqui está a regra que não se desliga: toda ferramenta que não é declarada como somente leitura pede aprovação humana antes de rodar. Criar issue, comentar em PR, mandar mensagem no Slack, editar planilha — o agente propõe, uma pessoa decide.
Na prática:
- O agente decide chamar uma ferramenta de escrita e a conversa pausa.
- O pedido aparece como um cartão na conversa — no chat interno ou na caixa de entrada —, com a ferramenta e os argumentos que o agente quer usar.
- Alguém com permissão aprova ou rejeita.
- Aprovado, a ferramenta roda e a conversa retoma sozinha com o resultado. Rejeitado, a ferramenta não roda — e a rejeição, com quem rejeitou, fica na trilha.
Dois cuidados que parecem detalhe e não são:
- Aprovar duas vezes executa uma. Se duas pessoas clicam juntas, a primeira decisão vale e a segunda recebe o aviso de que o pedido já foi decidido. A ferramenta não roda em dobro.
- Pedido esquecido expira. O que ninguém decidiu em 24 horas vence, em vez de ficar esperando para ser aprovado fora de contexto semanas depois.
A aprovação é estado no banco, não uma instrução no prompt. O agente não tem como "se convencer" a pular essa etapa.
Cada chamada fica registrada
Toda chamada de ferramenta grava uma linha com os argumentos de entrada, o resultado, o status (sucesso, erro, tempo esgotado, aguardando aprovação, rejeitada), a latência e um identificador de rastreio. Chaves e segredos conhecidos são removidos antes de gravar.
Em Ferramentas (MCP) → Chamadas de ferramenta você filtra por servidor, status e identificador de rastreio, e descobre em segundos se uma conversa falhou por tempo esgotado, por credencial vencida ou porque alguém rejeitou a ação. Pelo painel, a trilha é só de leitura: ninguém edita nem apaga uma linha.
O que protege o seu servidor e os seus dados
- Limite de chamadas por servidor, por minuto e ajustável — um agente em laço não derruba a ferramenta do outro lado.
- Disjuntor automático: depois de 5 falhas seguidas de conexão, a ControlHub para de chamar aquele servidor por 5 minutos e então testa de novo.
- Aviso por e-mail: a saúde dos servidores é verificada a cada 10 minutos; se um deles fica fora do ar por mais de 15, o dono do workspace recebe um e-mail.
- Proteção contra SSRF: URLs que apontam para
localhost, redes privadas ou endpoints de metadados de nuvem são recusadas, e o endereço é conferido na resolução de DNS antes de cada conexão. - Credenciais cifradas com AES-256-GCM. A tela mostra só se o servidor tem credencial, nunca a credencial.
Por onde começar
- Em Ferramentas (MCP) → Servidores MCP, conecte um servidor do catálogo — o GitHub ou o Sentry são bons primeiros passos para um time de software.
- Teste a conexão e veja a lista de ferramentas.
- Abra um agente, ligue o servidor e escolha as ferramentas.
- Converse com o agente no chat interno e aprove a primeira escrita que ele pedir.
O número de servidores ativos depende do plano — veja os planos. O passo a passo detalhado está na central de ajuda.