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.
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
grantAccessTopara 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)
- Configure suas credenciais do Salesforce
- Obtenha seu token de segurança (Redefina nas Configurações do Salesforce)
2. Fluxo de Credenciais de Cliente OAuth 2.0
- Crie um Connected App no Salesforce
- Ative as configurações de OAuth e selecione "Client Credentials Flow"
- Defina os escopos apropriados (normalmente "api" é suficiente)
- Salve o Client ID e o Client Secret
- 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_URLdeve 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.