使用说明
MCP Salesforce TypeScript 连接器
用于Salesforce集成的模型上下文协议(MCP)服务器的TypeScript实现,允许LLM通过SOQL查询、SOSL搜索和CRUD操作与Salesforce数据交互。
特性
- 🔐 简化密码验证:安全OAuth 2.0资源所有者密码凭据流
- 📊 SOQL和SOSL:对Salesforce执行查询和搜索
- 🔍 元数据访问:检索对象字段、标签和类型
- ✏️ CRUD操作:创建、读取、更新和删除记录
- 🛠️ 工具API:执行工具API请求
- ⚡ Apex REST:执行Apex REST请求
- 🌐 REST API:直接对Salesforce进行REST API调用
- 🐳 Docker就绪:无硬编码值,可通过环境变量完全配置
- 🔄 令牌刷新:长时间运行的会话的自动令牌刷新
可用工具
authenticate_password-使用OAuth的用户名/密码进行身份验证run_soql_query-执行SOQL查询run_sosl_search-执行SOSL搜索get_object_fields-获取Salesforce对象的元数据get_record-按ID检索特定记录create_record-创建新记录update_record-更新现有记录delete_record-删除记录tooling_execute-执行工具API请求apex_execute-执行Apex REST请求restful-直接调用REST API
Docker快速入门
先决条件
-
在Salesforce中创建互联应用程序:
- 转到设置→ Apps → 应用程序管理器→ 新连接的应用程序
- 填写基本信息(应用程序名称、API名称、联系邮箱)
- 启用OAuth设置
- 设置回调URL:
http://localhost:8080/callback(必需但未使用) - 选择OAuth作用域:
- 访问您的基本信息(id、个人资料、电子邮件、地址、电话)
- 随时代表您执行请求(refresh_token、offline_access)
- 访问和管理您的数据(api)
- 保存并记下消费者密钥和消费者密码
-
获取您的安全令牌:
- 转到设置→ 个人信息→ 重置安全令牌
- 检查您的电子邮件以获取新的安全令牌
使用Docker镜像
拉取并运行最新的Docker镜像:
# 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
MCP配置
使用Docker镜像的VS代码
添加到您的 .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"
]
}
}
}
您还可以使用卷来挂载配置文件,而不是传递环境变量:
{
"servers": {
"salesforce": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-v", "${workspaceFolder}/.env:/app/.env",
"steffensbola/salesforce-mcp-ts:latest"
]
}
}
}
使用Docker镜像的Claude Desktop
添加到您的 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"
]
}
}
}
环境变量
服务器需要以下环境变量:
必需(OAuth身份验证)
SALESFORCE_CLIENT_ID-从您的互联应用中获取消费者密钥SALESFORCE_CLIENT_SECRET-来自互联应用的消费者秘密SALESFORCE_USERNAME-您的Salesforce用户名SALESFORCE_PASSWORD-您的Salesforce密码SALESFORCE_SECURITY_TOKEN-您的Salesforce安全令牌
可选的
SALESFORCE_SANDBOX-设置为"true"对于沙盒,"false"用于生产(默认值:"false")
替代方案(直接令牌身份验证)
代替用户名/密码,您可以使用:
SALESFORCE_ACCESS_TOKEN-直接访问令牌SALESFORCE_INSTANCE_URL-Salesforce实例URL(例如。,https://your-instance.my.salesforce.com)
向后兼容
服务器还支持替换变量名:
SF_CONSUMER_KEY/SF_CONSUMER_SECRETSF_USERNAME/SF_PASSWORD/SF_SECURITY_TOKEN
使用Docker Compose
- 创建一个
.env包含环境变量的文件:
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
- 使用Docker Compose运行:
docker-compose up -d
例子
使用工具
连接后,您可以通过MCP客户端使用这些工具:
身份验证:
Please authenticate with Salesforce using my credentials
查询数据:
Run this SOQL query: SELECT Id, Name, Industry FROM Account WHERE Industry = 'Technology' LIMIT 10
搜索:
Search for contacts named "John" using SOSL
获取元数据:
Get all the fields for the Contact object
创建记录:
Create a new Account with Name "Test Company" and Industry "Technology"
故障排除
常见问题
-
认证失败
- 验证凭据是否正确
- 检查连接的应用程序OAuth范围包括“访问和管理您的数据(api)”
- 确保安全令牌是最新的(必要时重置)
- 验证沙盒设置是否与您的组织类型匹配
-
容器无法启动
- 确保提供CLIENT_ID和CLIENT_SECRET
- 检查是否设置了所有必需的环境变量
- 验证Docker是否有权拉取镜像
-
网络错误
- 检查互联网连接
- 验证Salesforce服务状态
- 检查防火墙设置是否允许出站HTTPS连接
调试模式
对于详细日志记录,请添加调试环境变量:
docker run -e DEBUG=true \
-e SALESFORCE_CLIENT_ID=... \
# ... other variables
steffensbola/salesforce-mcp-ts:latest
贡献
看 贡献.md 有关以下信息:
- 项目架构和开发设置
- 从源代码运行
- 贡献指南和拉取请求流程
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。