使用 Claude Desktop 与此服务器交互式地探索、分析和管理您的 Salesforce 组织!

这是一个提供通过 OAuth2 认证安全访问 Salesforce 组织的 Model Context Protocol (MCP) 服务器,使 AI 模型能够通过标准化工具和资源查询和探索 Salesforce 数据。
✅ 当前功能:12个经过生产验证的工具、OAuth2 认证、全面的 Salesforce API 覆盖以及与 Claude Desktop 的集成
realfast.ai 是一家结合了深厚数据和 AI 专业知识的 AI 原生 Salesforce 实施合作伙伴。
我们利用 AI 来更快更好地交付。我们也帮助您做到这一点!
核心数据访问工具:
describe_object - 包含记录类型的全面对象元数据和字段信息list_objects - 列出所有 Salesforce 对象,支持过滤和分页soql_query - 执行 SOQL 查询,防止注入并支持分页get_record - 根据 ID 获取特定记录,支持字段选择和关系遍历sosl_search - 多对象文本搜索,结果排名和字段权限字段元数据工具:
get_picklist_values - 获取下拉列表字段值,包括依赖分析和安全过滤查询分析工具:
validate_soql - SOQL 语法验证和安全分析,无需执行explain_query_plan - 查询性能分析和优化建议组织上下文工具:
get_org_limits - 监控组织 API 限制和使用统计get_user_info - 获取当前用户资料信息,并进行隐私净化附加功能:
npm install -g tsxgit clone https://github.com/your-org/salesforce-mcp-server.git
cd salesforce-mcp-server
npm install
登录 Salesforce:
创建新的连接应用:
基本信息:
MCP Salesforce Server(或您喜欢的名字)MCP_Salesforce_Server)用于 AI 访问 Salesforce 数据的 MCP 服务器API(启用 OAuth 设置):
http://localhost:8080/callback访问身份 URL 服务(id)随时执行请求(refresh_token)访问和管理您的数据(api)Web 应用设置:
安全设置(推荐):
放松 IP 限制刷新令牌直到撤销有效保存并等待:
获取客户端 ID 和密钥:
SFDC_CLIENT_ID)SFDC_CLIENT_SECRET)获取实例 URL:
https://yourcompany.my.salesforce.comhttps://yourcompany--sandbox.sandbox.my.salesforce.comhttps://yourcompany-dev-ed.develop.my.salesforce.com常见问题:
http://localhost:8080/callback安全注意事项:
cp .env.sample .env
# 使用您的 Salesforce 凭证和文件路径编辑 .env
所需环境变量:
SFDC_CLIENT_ID=<您的连接应用客户端 ID>
SFDC_CLIENT_SECRET=<您的连接应用客户端密钥>
SFDC_INSTANCE_URL=https://your-org.my.salesforce.com
MCP_LOG_FILE="/绝对路径/到您的项目/server.log"
SFDC_TOKEN_FILE="/绝对路径/到您的项目/.salesforce-tokens.enc"
在您的 Claude Desktop claude_desktop_config.json 中添加以下内容:
{
"mcpServers": {
"salesforce": {
"command": "tsx",
"args": ["/绝对路径/到/salesforce-mcp-server/src/stdio-server.ts"],
"env": {
"SFDC_CLIENT_ID": "您的连接应用客户端 ID",
"SFDC_CLIENT_SECRET": "您的连接应用客户端密钥",
"SFDC_INSTANCE_URL": "https://your-org.my.salesforce.com",
"SFDC_API_VERSION": "v59.0",
"MCP_LOG_FILE": "/绝对路径/到您的项目/server.log",
"SFDC_TOKEN_FILE": "/绝对路径/到您的项目/.salesforce-tokens.enc"
}
}
}
}
你能描述 Salesforce 中的 Account 对象吗?
服务器将在首次使用时自动打开浏览器进行 OAuth2 认证。
| 变量 | 描述 | 必需 | 默认值 |
|---|---|---|---|
SFDC_CLIENT_ID | OAuth2 连接应用客户端 ID | 是 | - |
SFDC_CLIENT_SECRET | OAuth2 连接应用客户端密钥 | 是 | - |
SFDC_INSTANCE_URL | Salesforce 实例 URL | 是 | - |
SFDC_API_VERSION | Salesforce API 版本 | 否 | v59.0 |
SFDC_TOKEN_FILE | 加密令牌存储路径 | 否 | .salesforce-tokens.enc |
MCP_LOG_FILE | 服务器日志文件路径 | 否 | - (日志输出到 stdout) |
参见 .env.sample 以获得完整示例:
# 必要的 Salesforce OAuth2 配置
SFDC_CLIENT_ID=3MVG9...您的客户端 ID
SFDC_CLIENT_SECRET=9CF743...您的客户端密钥
SFDC_INSTANCE_URL=https://your-org.my.salesforce.com
# 文件路径(使用绝对路径给 Claude Desktop)
MCP_LOG_FILE="/绝对路径/到您的项目/server.log"
SFDC_TOKEN_FILE="/绝对路径/到您的项目/.salesforce-tokens.enc"
# 可选设置
SFDC_API_VERSION=v59.0
服务器使用 OAuth2 PKCE(证明密钥交换) 流程进行与 Salesforce 的安全认证。
在 Salesforce 中创建连接应用(详见详细步骤):
配置环境:
SFDC_CLIENT_IDSFDC_CLIENT_SECRETSFDC_INSTANCE_URL认证流程细节:
初始认证:
localhost:8080 启动本地 HTTP 服务器后续使用:
安全特性:
解决认证问题:
浏览器问题:
http://localhost:8080/auth令牌问题:
rm .salesforce-tokens.enc权限错误:
describe_object获取任何 Salesforce 对象的全面元数据和模式信息。
输入:
{
"objectName": "Account"
}
返回:
示例用法:
你能描述 Account 对象结构吗?
创建新联系人时哪些字段是必填的?
Opportunity 对象的字段类型和约束是什么?
list_objects列出所有可用的 Salesforce 对象,支持过滤和分页。
输入:
{
"objectType": "all", // "all", "standard", 或 "custom"
"limit": 100 // 1-500,默认 100
}
返回:
示例用法:
这个 Salesforce 组织有哪些对象?
给我看所有自定义对象
列出前 50 个标准对象
soql_query执行 SOQL 查询,具有全面的安全验证和分页支持。
输入:
{
"query": "SELECT Id, Name FROM Account WHERE Type = 'Customer' LIMIT 10",
"limit": 200 // 可选:1-2000,默认 200
}
特性:
示例用法:
展示所有类型为 'Customer' 的账户
查询本月创建的最后 5 个机会
找到所有电子邮件地址包含 '@salesforce.com' 的联系人
get_record根据 ID 获取特定的 Salesforce 记录,支持可选字段选择。
输入:
{
"objectName": "Account",
"recordId": "001000000001AAA",
"fields": ["Id", "Name", "Type", "CreatedDate"] // 可选
}
特性:
示例用法:
获取 ID 为 001000000001AAA 的账户记录
展示 ID 为 003000000001BBB 的联系人记录,仅显示姓名和电子邮件字段
检索 ID 为 006000000001CCC 的机会的全部详情
以下工具计划在未来实现:
search:跨多个对象执行 SOSL 搜索get_picklist_values:获取指定字段的下拉列表值get_limits:获取组织限制和使用统计get_user_info:获取当前用户信息MCP 资源计划在未来实现以暴露 Salesforce 数据:
salesforce://object/{objectType} - 对象元数据和模式salesforce://record/{objectType}/{recordId} - 单个记录数据salesforce://report/{reportId} - 报告定义和结果目前,所有功能均可通过工具接口访问。
git clone https://github.com/your-org/salesforce-mcp-server.git
cd salesforce-mcp-server
npm install
npm run dev # 启动带有自动重载的开发服务器
npm run build # 构建生产版本
npm run test # 运行单元测试(335 项测试