Salesforce MCP Server

Integra o Claude com o Salesforce, permitindo interações em linguagem natural com seus dados e metadados do Salesforce.

Documentação

Salesforce MCP Server

Uma implementação de servidor MCP (Model Context Protocol) que integra o Claude ao Salesforce, permitindo interações em linguagem natural com seus dados e metadados do Salesforce. Este servidor permite que o Claude consulte, modifique e gerencie seus objetos e registros do Salesforce usando linguagem cotidiana.

Salesforce Server MCP server

Recursos

  • Gerenciamento de Objetos e Campos: Crie e modifique objetos e campos personalizados usando linguagem natural
  • Busca Inteligente de Objetos: Encontre objetos do Salesforce usando correspondências parciais de nome
  • Informações Detalhadas de Esquema: Obtenha detalhes abrangentes de campos e relacionamentos para qualquer objeto
  • Consultas de Dados Flexíveis: Consulte registros com suporte a relacionamentos e filtros complexos
  • Manipulação de Dados: Insira, atualize, exclua e faça upsert de registros com facilidade
  • Busca entre Objetos: Pesquise em vários objetos usando SOSL
  • Gerenciamento de Código Apex: Leia, crie e atualize classes e triggers Apex
  • Tratamento de Erros Intuitivo: Feedback claro com detalhes de erro específicos do Salesforce

Instalação

npm install -g @tsmztech/mcp-server-salesforce

Ferramentas

salesforce_search_objects

Pesquise objetos padrão e personalizados:

  • Pesquise por correspondências parciais de nome
  • Encontra objetos padrão e personalizados
  • Exemplo: "Encontre objetos relacionados a Account" encontrará Account, AccountHistory, etc.

salesforce_describe_object

Obtenha informações detalhadas do esquema do objeto:

  • Definições e propriedades de campos
  • Detalhes de relacionamentos
  • Valores de picklist
  • Exemplo: "Mostre-me todos os campos no objeto Account"

salesforce_query_records

Consulte registros com suporte a relacionamentos:

  • Relacionamentos pai-para-filho
  • Relacionamentos filho-para-pai
  • Condições WHERE complexas
  • Exemplo: "Obtenha todas as Accounts com seus Contacts relacionados"
  • Nota: Para consultas com GROUP BY ou funções agregadas, use salesforce_aggregate_query

salesforce_aggregate_query

Execute consultas agregadas com GROUP BY:

  • GROUP BY em um ou vários campos
  • Funções agregadas: COUNT, COUNT_DISTINCT, SUM, AVG, MIN, MAX
  • Cláusulas HAVING para filtrar resultados agrupados
  • Funções de agrupamento por data/hora
  • Exemplo: "Conte oportunidades por estágio" ou "Encontre contas com mais de 10 oportunidades"

salesforce_dml_records

Execute operações de dados:

  • Insira novos registros
  • Atualize registros existentes
  • Exclua registros
  • Upsert usando IDs externos
  • Exemplo: "Atualize o status de várias contas"

salesforce_manage_object

Crie e modifique objetos personalizados:

  • Crie novos objetos personalizados
  • Atualize propriedades de objetos
  • Configure configurações de compartilhamento
  • Exemplo: "Crie um objeto Customer Feedback"

salesforce_manage_field

Gerencie campos de objetos:

  • Adicione novos campos personalizados
  • Modifique propriedades de campos
  • Crie relacionamentos
  • Concede automaticamente Field Level Security ao System Administrator por padrão
  • Use o parâmetro grantAccessTo para especificar perfis diferentes
  • Exemplo: "Adicione um campo picklist Rating à Account"

salesforce_manage_field_permissions

Gerencie Field Level Security (Permissões de Campo):

  • Conceda ou revogue acesso de leitura/edição a campos para perfis específicos
  • Visualize permissões de campo atuais
  • Atualize em massa permissões para vários perfis
  • Útil para gerenciar permissões após a criação de campos ou para campos existentes
  • Exemplo: "Conceda acesso de System Administrator a Custom_Field__c na Account"

salesforce_search_all

Pesquise em vários objetos:

  • Pesquisa baseada em SOSL
  • Suporte a múltiplos objetos
  • Trechos de campos
  • Exemplo: "Pesquise por 'cloud' em Accounts e Opportunities"

salesforce_read_apex

Leia classes Apex:

  • Obtenha o código-fonte completo de classes específicas
  • Liste classes que correspondem a padrões de nome
  • Visualize metadados da classe (versão da API, status, etc.)
  • Suporte a curingas (* e ?) em padrões de nome
  • Exemplo: "Mostre-me a classe AccountController" ou "Encontre todas as classes que correspondem a AccountCont"

salesforce_write_apex

Crie e atualize classes Apex:

  • Crie novas classes Apex
  • Atualize implementações de classes existentes
  • Especifique versões da API
  • Exemplo: "Crie uma nova classe Apex para lidar com operações de conta"

salesforce_read_apex_trigger

Leia triggers Apex:

  • Obtenha o código-fonte completo de triggers específicos
  • Liste triggers que correspondem a padrões de nome
  • Visualize metadados do trigger (versão da API, objeto, status, etc.)
  • Suporte a curingas (* e ?) em padrões de nome
  • Exemplo: "Mostre-me o AccountTrigger" ou "Encontre todos os triggers para o objeto Contact"

salesforce_write_apex_trigger

Crie e atualize triggers Apex:

  • Crie novos triggers Apex para objetos específicos
  • Atualize implementações de triggers existentes
  • Especifique versões da API e operações de evento
  • Exemplo: "Crie um novo trigger para o objeto Account" ou "Atualize o trigger Lead"

salesforce_execute_anonymous

Execute código Apex anônimo:

  • Execute código Apex sem criar uma classe permanente
  • Visualize logs de depuração e resultados de execução
  • Útil para operações de dados não suportadas diretamente por outras ferramentas
  • Exemplo: "Execute código Apex para calcular métricas de conta" ou "Execute um script para atualizar registros relacionados"

salesforce_manage_debug_logs

Gerencie logs de depuração para usuários do Salesforce:

  • Ative logs de depuração para usuários específicos
  • Desative configurações ativas de logs de depuração
  • Recupere e visualize logs de depuração
  • Configure níveis de log (NONE, ERROR, WARN, INFO, DEBUG, FINE, FINER, FINEST)
  • Exemplo: "Ative logs de depuração para user@example.com" ou "Recupere logs recentes para um usuário administrador"

Configuração

Autenticação do Salesforce

Você pode se conectar ao Salesforce usando um dos dois métodos de autenticação:

1. Autenticação por Nome de Usuário/Senha (Padrão)

  1. Configure suas credenciais do Salesforce
  2. Obtenha seu token de segurança (Redefina nas Configurações do Salesforce)

2. Fluxo de Credenciais de Cliente OAuth 2.0

  1. Crie um Connected App no Salesforce
  2. Ative as configurações de OAuth e selecione "Client Credentials Flow"
  3. Defina os escopos apropriados (normalmente "api" é suficiente)
  4. Salve o Client ID e o Client Secret
  5. Importante: Anote a URL da sua instância (por exemplo, https://your-domain.my.salesforce.com), pois ela é necessária para a autenticação

Uso com o Claude Desktop

Adicione ao seu claude_desktop_config.json:

Para Autenticação por Nome de Usuário/Senha:

{
  "mcpServers": {
    "salesforce": {
      "command": "npx",
      "args": ["-y", "@tsmztech/mcp-server-salesforce"],
      "env": {
        "SALESFORCE_CONNECTION_TYPE": "User_Password",
        "SALESFORCE_USERNAME": "your_username",
        "SALESFORCE_PASSWORD": "your_password",
        "SALESFORCE_TOKEN": "your_security_token",
        "SALESFORCE_INSTANCE_URL": "org_url"        // Optional. Default value: https://login.salesforce.com
      }
    }
  }
}

Para o Fluxo de Credenciais de Cliente OAuth 2.0:

{
  "mcpServers": {
    "salesforce": {
      "command": "npx",
      "args": ["-y", "@tsmztech/mcp-server-salesforce"],
      "env": {
        "SALESFORCE_CONNECTION_TYPE": "OAuth_2.0_Client_Credentials",
        "SALESFORCE_CLIENT_ID": "your_client_id",
        "SALESFORCE_CLIENT_SECRET": "your_client_secret",
        "SALESFORCE_INSTANCE_URL": "https://your-domain.my.salesforce.com"  // REQUIRED: Must be your exact Salesforce instance URL
      }
    }
  }
}

Nota: Para o Fluxo de Credenciais de Cliente OAuth 2.0, o SALESFORCE_INSTANCE_URL deve ser a URL exata da sua instância do Salesforce (por exemplo, https://your-domain.my.salesforce.com). O endpoint de token será construído como <instance_url>/services/oauth2/token.

Exemplo de Uso

Pesquisando Objetos

"Find all objects related to Accounts"
"Show me objects that handle customer service"
"What objects are available for order management?"

Obtendo Informações de Esquema

"What fields are available in the Account object?"
"Show me the picklist values for Case Status"
"Describe the relationship fields in Opportunity"

Consultando Registros

"Get all Accounts created this month"
"Show me high-priority Cases with their related Contacts"
"Find all Opportunities over $100k"

Consultas Agregadas

"Count opportunities by stage"
"Show me the total revenue by account"
"Find accounts with more than 10 opportunities"
"Calculate average deal size by sales rep and quarter"
"Get the number of cases by priority and status"

Gerenciando Objetos Personalizados

"Create a Customer Feedback object"
"Add a Rating field to the Feedback object"
"Update sharing settings for the Service Request object"

Exemplos com Field Level Security:

# Default - grants access to System Administrator automatically
"Create a Status picklist field on Custom_Object__c"

# Custom profiles - grants access to specified profiles
"Create a Revenue currency field on Account and grant access to Sales User and Marketing User profiles"

Gerenciando Permissões de Campo

"Grant System Administrator access to Custom_Field__c on Account"
"Give read-only access to Rating__c field for Sales User profile"
"View which profiles have access to the Custom_Field__c"
"Revoke field access for specific profiles"

Pesquisando em Vários Objetos

"Search for 'cloud' in Accounts and Opportunities"
"Find mentions of 'network issue' in Cases and Knowledge Articles"
"Search for customer name across all relevant objects"

Gerenciando Código Apex

"Show me all Apex classes with 'Controller' in the name"
"Get the full code for the AccountService class"
"Create a new Apex utility class for handling date operations"
"Update the LeadConverter class to add a new method"

Gerenciando Triggers Apex

"List all triggers for the Account object"
"Show me the code for the ContactTrigger"
"Create a new trigger for the Opportunity object"
"Update the Case trigger to handle after delete events"

Executando Código Apex Anônimo

"Execute Apex code to calculate account metrics"
"Run a script to update related records"
"Execute a batch job to process large datasets"

Gerenciando Logs de Depuração

"Enable debug logs for user@example.com"
"Retrieve recent logs for an admin user"
"Disable debug logs for a specific user"
"Configure log level to DEBUG for a user"

Desenvolvimento

Compilando a partir do código-fonte

# Clone the repository
git clone https://github.com/tsmztech/mcp-server-salesforce.git

# Navigate to directory
cd mcp-server-salesforce

# Install dependencies
npm install

# Build the project
npm run build

Executando um servidor HTTP local

Um script auxiliar start-http.ts é fornecido para iniciar o servidor MCP via HTTP para testes locais. Após a compilação, execute:

node start-http.cjs

Isso inicia o servidor em http://localhost:3000.

Endpoint de consulta

Quando o servidor HTTP estiver em execução, você pode enviar uma solicitação POST para /query com os parâmetros SOQL usados pela ferramenta salesforce_query_records:

curl -X POST http://localhost:3000/query \
  -H "Content-Type: application/json" \
  -d '{"objectName":"Account","fields":["Id","Name"],"limit":5}'

Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para enviar um Pull Request.

Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Problemas e Suporte

Se você encontrar algum problema ou precisar de suporte, abra uma issue no repositório do GitHub.