ooligo
mcp-server

MCP server expondo leitura e escrita do Salesforce ao Claude

Dificuldade
avançado
Tempo de setup
90min
Para
revops · gtm-engineer
RevOps

Stack

Um MCP server que dá ao Claude acesso scoped de leitura e escrita ao Salesforce, com tiers de permissão, audit logging e um cap rígido em escritas em bulk. Coloque na frente do Claude Code ou Claude.ai e seu time pode pedir “me mostre todos os deals travados acima de cinquenta mil e atualize as close dates” sem sair do chat.

O que você vai precisar

  • Uma Connected App do Salesforce com scopes de API e refresh-token
  • Um host capaz de rodar um processo de longa duração (Node, Python ou o container que você preferir)
  • Claude Code, Claude Desktop ou qualquer cliente compatível com MCP
  • Um doc de política de permissões acordado com seu time de segurança

Setup

  1. Suba o server. A implementação de referência é um MCP server em Node com três famílias de ferramentas: query, read_record e write_record. Clone, instale, configure as variáveis de ambiente com as credenciais da Connected App.
  2. Defina a política de permissões. Um arquivo YAML lista quais objetos são legíveis, quais campos são graváveis e quais operações exigem um passo de confirmação explícita. Política padrão é só leitura. Escritas exigem allowlist.
  3. Adicione o server ao seu cliente MCP. No Claude Code, adicione uma entrada na config do cliente apontando pro processo local. O server anuncia as ferramentas dele ao subir.
  4. Conecte o audit logging. Cada chamada de ferramenta produz uma entrada de log estruturada: usuário, ferramenta, argumentos, hash do resultado. Pipe pra sua stack de logging. Isso é não-negociável pra operações de escrita.
  5. Teste primeiro com só leitura. Rode “me mostre meu pipeline” antes de “atualize cinquenta deals”. Confiança vem de algumas semanas de operação só leitura.

Como funciona

O MCP server traduz chamadas de ferramenta do Claude em queries SOQL e chamadas REST pro Salesforce. Leituras passam pelo filtro de política e devolvem JSON. Escritas passam por um passo de confirmação: o server retorna um preview “o que seria feito”, o Claude mostra pro usuário, o usuário confirma, o server commita.

Escritas em bulk são especiais. O server impõe um cap rígido em qualquer operação de update em vinte e cinco registros por padrão. Operações maiores exigem uma ferramenta bulk_write separada que vem desligada por padrão e só é habilitada pra identidades de usuário específicas.

Pontos de atenção

  • Audit logging é obrigatório. Se uma ferramenta de escrita roda sem uma entrada de log correspondente, o server deve falhar fechado. Não dê ship sem esse guard.
  • Drift de field-level security. Permissões do Salesforce mudam. O arquivo de política do server pode sair de sincronia. Rode um job semanal que faz diff da política contra a FLS atual e alerta em mismatch.
  • Rotação de tokens. Refresh tokens expiram. Construa o fluxo de rotação antes do lançamento, não depois do primeiro 401.
  • UX de confirmação. O preview “o que seria feito” precisa ser inequívoco. “Atualize cinquenta deals” não basta; mostre os IDs e o diff a nível de campo.

Stack

  • Salesforce — sistema de registro
  • MCP server — camada de tradução, política e auditoria
  • Claude — interface de linguagem natural, chamador de ferramentas