Salesforce TypeScript Connector
Interaja com dados do Salesforce usando consultas SOQL, buscas SOSL e operações CRUD por meio de um servidor MCP TypeScript.
Documentação
Conector MCP Salesforce TypeScript
Uma implementação em TypeScript de um servidor Model Context Protocol (MCP) para integração com Salesforce, permitindo que LLMs interajam com dados do Salesforce por meio de consultas SOQL, pesquisas SOSL e operações CRUD.
Recursos
- 🔐 Autenticação Simplificada por Senha: Fluxo Seguro de Credenciais de Senha do Proprietário do Recurso OAuth 2.0
- 📊 SOQL e SOSL: Execute consultas e pesquisas no Salesforce
- 🔍 Acesso a Metadados: Recupere campos, rótulos e tipos de objetos
- ✏️ Operações CRUD: Crie, leia, atualize e exclua registros
- 🛠️ API de Ferramentas: Execute solicitações da API de Ferramentas
- ⚡ Apex REST: Execute solicitações Apex REST
- 🌐 API REST: Faça chamadas diretas à API REST do Salesforce
- 🐳 Pronto para Docker: Sem valores fixos, totalmente configurável por variáveis de ambiente
- 🔄 Atualização de Token: Atualização automática de token para sessões de longa duração
Ferramentas Disponíveis
authenticate_password- Autentique usando nome de usuário/senha com OAuthrun_soql_query- Execute consultas SOQLrun_sosl_search- Execute pesquisas SOSLget_object_fields- Obtenha metadados para objetos do Salesforceget_record- Recupere registros específicos por IDcreate_record- Crie novos registrosupdate_record- Atualize registros existentesdelete_record- Exclua registrostooling_execute- Execute solicitações da API de Ferramentasapex_execute- Execute solicitações Apex RESTrestful- Faça chamadas diretas à API REST
Início Rápido com Docker
Pré-requisitos
-
Crie um Connected App no Salesforce:
- Vá para Configuração → Aplicativos → Gerenciador de Aplicativos → Novo Connected App
- Preencha as informações básicas (Nome do Aplicativo, Nome da API, E-mail de Contato)
- Habilite as Configurações de OAuth
- Defina a URL de retorno:
http://localhost:8080/callback(obrigatória, mas não utilizada) - Selecione os Escopos de OAuth:
- Acesse suas informações básicas (id, perfil, e-mail, endereço, telefone)
- Execute solicitações em seu nome a qualquer momento (refresh_token, offline_access)
- Acesse e gerencie seus dados (api)
- Salve e anote a Consumer Key e o Consumer Secret
-
Obtenha seu Security Token:
- Vá para Configuração → Minhas Informações Pessoais → Redefinir Security Token
- Verifique seu e-mail para obter o novo security token
Usando a Imagem Docker
Baixe e execute a imagem Docker mais recente:
# Pull the image
docker pull steffensbola/salesforce-mcp-ts:latest
# Run with your credentials
docker run -p 3000:3000 \
-e SALESFORCE_CLIENT_ID=your_consumer_key \
-e SALESFORCE_CLIENT_SECRET=your_consumer_secret \
-e SALESFORCE_USERNAME=your_username@domain.com \
-e SALESFORCE_PASSWORD=your_password \
-e SALESFORCE_SECURITY_TOKEN=your_security_token \
-e SALESFORCE_SANDBOX=true \
steffensbola/salesforce-mcp-ts:latest
Configuração do MCP
VS Code usando imagem Docker
Adicione ao seu .vscode/mcp.json:
{
"servers": {
"salesforce": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "SALESFORCE_CLIENT_ID=your_consumer_key",
"-e", "SALESFORCE_CLIENT_SECRET=your_consumer_secret",
"-e", "SALESFORCE_USERNAME=your_username@domain.com",
"-e", "SALESFORCE_PASSWORD=your_password",
"-e", "SALESFORCE_SECURITY_TOKEN=your_token",
"-e", "SALESFORCE_SANDBOX=true",
"steffensbola/salesforce-mcp-ts:latest"
]
}
}
}
Você também pode usar volumes para montar um arquivo de configuração em vez de passar variáveis de ambiente:
{
"servers": {
"salesforce": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v", "${workspaceFolder}/.env:/app/.env",
"steffensbola/salesforce-mcp-ts:latest"
]
}
}
}
Claude Desktop usando imagem Docker
Adicione ao seu claude_desktop_config.json:
{
"mcpServers": {
"salesforce": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e", "SALESFORCE_CLIENT_ID=your_consumer_key",
"-e", "SALESFORCE_CLIENT_SECRET=your_consumer_secret",
"-e", "SALESFORCE_USERNAME=your_username@domain.com",
"-e", "SALESFORCE_PASSWORD=your_password",
"-e", "SALESFORCE_SECURITY_TOKEN=your_token",
"-e", "SALESFORCE_SANDBOX=true",
"steffensbola/salesforce-mcp-ts:latest"
]
}
}
}
Variáveis de Ambiente
O servidor requer as seguintes variáveis de ambiente:
Obrigatórias (Autenticação OAuth)
SALESFORCE_CLIENT_ID- Consumer Key do seu Connected AppSALESFORCE_CLIENT_SECRET- Consumer Secret do seu Connected AppSALESFORCE_USERNAME- Seu nome de usuário do SalesforceSALESFORCE_PASSWORD- Sua senha do SalesforceSALESFORCE_SECURITY_TOKEN- Seu security token do Salesforce
Opcionais
SALESFORCE_SANDBOX- Defina como"true"para sandbox,"false"para produção (padrão:"false")
Alternativa (Autenticação Direta por Token)
Em vez de nome de usuário/senha, você pode usar:
SALESFORCE_ACCESS_TOKEN- Token de acesso diretoSALESFORCE_INSTANCE_URL- URL da instância do Salesforce (ex.:https://your-instance.my.salesforce.com)
Compatibilidade Retroativa
O servidor também suporta nomes alternativos de variáveis:
SF_CONSUMER_KEY/SF_CONSUMER_SECRETSF_USERNAME/SF_PASSWORD/SF_SECURITY_TOKEN
Usando Docker Compose
- Crie um arquivo
.envcom suas variáveis de ambiente:
SALESFORCE_CLIENT_ID=your_consumer_key
SALESFORCE_CLIENT_SECRET=your_consumer_secret
SALESFORCE_USERNAME=your_username@domain.com
SALESFORCE_PASSWORD=your_password
SALESFORCE_SECURITY_TOKEN=your_token
SALESFORCE_SANDBOX=true
DOCKER_HUB_USERNAME=steffensbola
- Execute usando Docker Compose:
docker-compose up -d
Exemplos
Usando as Ferramentas
Após conectar, você pode usar as ferramentas por meio do seu cliente MCP:
Autenticação:
Please authenticate with Salesforce using my credentials
Consultar Dados:
Run this SOQL query: SELECT Id, Name, Industry FROM Account WHERE Industry = 'Technology' LIMIT 10
Pesquisar:
Search for contacts named "John" using SOSL
Obter Metadados:
Get all the fields for the Contact object
Criar Registro:
Create a new Account with Name "Test Company" and Industry "Technology"
Solução de Problemas
Problemas Comuns
-
Falha na Autenticação
- Verifique se as credenciais estão corretas
- Confirme se os escopos de OAuth do Connected App incluem "Acessar e gerenciar seus dados (api)"
- Garanta que o security token esteja atualizado (redefina se necessário)
- Verifique se a configuração de sandbox corresponde ao tipo da sua organização
-
O Contêiner Não Inicia
- Garanta que CLIENT_ID e CLIENT_SECRET sejam fornecidos
- Verifique se todas as variáveis de ambiente obrigatórias estão definidas
- Confirme se o Docker tem acesso para baixar a imagem
-
Erros de Rede
- Verifique a conexão com a internet
- Verifique o status do serviço do Salesforce
- Confirme se as configurações do firewall permitem conexões HTTPS de saída
Modo de Depuração
Para registro detalhado, adicione a variável de ambiente de depuração:
docker run -e DEBUG=true \
-e SALESFORCE_CLIENT_ID=... \
# ... other variables
steffensbola/salesforce-mcp-ts:latest
Contribuindo
Consulte CONTRIBUTING.md para informações sobre:
- Arquitetura do projeto e configuração de desenvolvimento
- Execução a partir do código-fonte
- Diretrizes de contribuição e processo de pull request
Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.