关于 Salesforce MCP Server
Salesforce MCP Server 是一个面向 Salesforce 的 MCP 服务,可供 Claude Desktop、Cline 等 MCP 客户端调用。它提供 17 个工具,覆盖 SOQL/SOSL 查询、记录增删改、Apex 执行与测试、元数据部署等操作。
主要功能
- 01SOQL 与 SOSL 查询工具
- 02单条与批量记录操作
- 03Apex 匿名执行与测试运行
- 04元数据组件部署与检索
- 05OAuth2 与用户名密码认证
- 06SObject 元数据缓存 1 小时
适用场景
- 01在 AI 开发工具中查询 Salesforce 数据
- 02通过 Agent 批量创建或更新记录
- 03部署 Apex 类或 LWC 等元数据组件
MCP 相关
该项目是一个 MCP 服务,将 Salesforce 的 17 个工具暴露给 MCP 客户端调用。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Salesforce MCP 服务
一个功能全面的 Model Context Protocol(MCP)服务,可为 Claude Desktop、Cline 和其他兼容 MCP 的客户端提供无缝的 Salesforce 集成,适用于 AI 开发工具。
🚀 功能
17 个全面的工具
🔍 查询与搜索工具
execute-soql- 执行 SOQL 查询,并自动切换批量模式和分页execute-sosl- 跨多个对象搜索并汇总结果describe-sobject- 提供 SObject 元数据,并进行智能缓存
⚡ Apex 开发工具
execute-apex- 执行匿名 Apex 并捕获调试日志run-apex-tests- 运行 Apex 测试并报告覆盖率get-apex-logs- 获取调试日志并进行筛选
📊 数据管理工具
create-record- 创建单条或批量记录,并自动切换批量模式get-record- 获取记录并选择字段update-record- 更新单条或批量记录,并进行验证delete-record- 删除单条或批量记录upsert-record- 基于外部 ID 执行插入或更新操作
🔧 元数据工具(基于组件)
list-metadata-types- 发现元数据类型deploy-metadata- 从文件或 JSON 部署单个元数据组件(例如 ApexClass、CustomObject)deploy-bundle- 从目录路径部署元数据包(例如 LWC)retrieve-metadata- 检索单个元数据组件,并可选择保存到文件check-deploy-status- 检查部署状态
🔗 连接工具
test-connection- 验证连接并监控运行状况
主要功能
- 🔄 自动切换批量模式 - 智能选择 API,以获得最佳性能
- 🔐 双重身份验证 - 支持 OAuth2 和用户名/密码
- ⚡ 智能缓存 - SObject 元数据的 TTL 为 1 小时
- 🛡️ 类型安全 - 完整的 TypeScript 实现,并进行运行时验证
- 📝 全面日志记录 - 详细的调试和监控信息
- 🔍 原始错误透传 - 保留准确的 Salesforce 错误信息以便调试
🚀 安装
如需与 Claude Desktop、Cline、Cursor 等桌面应用配合使用,请添加以下 MCP 服务配置。
在 macOS / Linux 系统上:
用户名/密码身份验证
{
"mcp.servers": {
"salesforce": {
"command": "npx",
"args": [
"-y",
"@jjar/salesforce-mcp-server"
],
"env": {
"SF_USERNAME": "[email protected]",
"SF_PASSWORD": "your-password",
"SF_SECURITY_TOKEN": "",
"SF_LOGIN_URL": "https://login.salesforce.com"
},
"disabled": false,
"alwaysAllow": [
"test-connection",
"execute-soql",
"describe-sobject",
"get-record",
"get-apex-logs",
"list-metadata-types"
]
}
}
}
OAuth 2.0 身份验证
{
"mcp.servers": {
"salesforce": {
"command": "npx",
"args": [
"-y",
"@jjar/salesforce-mcp-server"
],
"env": {
"SF_CLIENT_ID": "your-oauth2-client-id",
"SF_CLIENT_SECRET": "your-oauth2-client-secret",
"SF_REFRESH_TOKEN": "your-refresh-token",
"SF_INSTANCE_URL": "https://yourorg.my.salesforce.com"
},
"disabled": false,
"alwaysAllow": [
"test-connection",
"execute-soql",
"describe-sobject",
"get-record",
"get-apex-logs",
"list-metadata-types"
]
}
}
}
在 Windows 系统上:
用户名/密码身份验证
{
"mcp.servers": {
"salesforce": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@jjar/salesforce-mcp-server"
],
"env": {
"SF_USERNAME": "[email protected]",
"SF_PASSWORD": "your-password",
"SF_SECURITY_TOKEN": "",
"SF_LOGIN_URL": "https://login.salesforce.com"
},
"disabled": false,
"alwaysAllow": [
"test-connection",
"execute-soql",
"describe-sobject",
"get-record",
"get-apex-logs",
"list-metadata-types"
]
}
}
}
OAuth 2.0 身份验证
{
"mcp.servers": {
"salesforce": {
"command": "cmd",
"args": [
"/c",
"npx",
"-y",
"@jjar/salesforce-mcp-server"
],
"env": {
"SF_CLIENT_ID": "your-oauth2-client-id",
"SF_CLIENT_SECRET": "your-oauth2-client-secret",
"SF_REFRESH_TOKEN": "your-refresh-token",
"SF_INSTANCE_URL": "https://yourorg.my.salesforce.com"
},
"disabled": false,
"alwaysAllow": [
"test-connection",
"execute-soql",
"describe-sobject",
"get-record",
"get-apex-logs",
"list-metadata-types"
]
}
}
}
配置文件位置
Claude Desktop
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Cline(VS Code)
- Windows:
%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json - macOS:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json - Linux:
~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
⚠️ 重要:添加或修改 MCP 服务配置后,必须重启 VS Code 才能使更改生效。
Cursor
- Windows:
%USERPROFILE%\.cursor\mcp.json - macOS:
~/.cursor/mcp.json - Linux:
~/.cursor/mcp.json
✅ 可自动批准(alwaysAllow)
test-connection- 连接验证(只读)execute-soql- SOQL 查询(只读)describe-sobject- 元数据检查(只读)get-record- 获取单条记录(只读)get-apex-logs- 访问调试日志(只读)list-metadata-types- 发现元数据类型(只读)
⚠️ 需要手动批准
create-record、update-record、delete-record、upsert-record- 数据修改deploy-metadata- 部署元数据execute-apex、run-apex-tests- 代码执行execute-sosl- 搜索操作(可能会占用大量资源)retrieve-metadata- 检索元数据(可能会产生大量数据)
身份验证
用户名/密码身份验证
- 从 Salesforce Setup → Personal Information → Reset Security Token 获取安全令牌(仅当你的 IP 不受信任时才需要)
- 按照配置部分所示设置环境变量
- 生产环境使用
https://login.salesforce.com,沙盒环境使用https://test.salesforce.com
💡 安全令牌:仅在 Salesforce 要求连接时才添加安全令牌。若不需要,请将
SF_SECURITY_TOKEN留空。
OAuth2 身份验证
- 在 Salesforce Setup 中创建 Connected App
- 配置 OAuth 设置并获取客户端凭据
- 使用 OAuth2 流程生成刷新令牌
- 按照配置部分所示设置环境变量
🏗️ 架构
核心组件
- 身份验证管理器 - 支持 OAuth2 和用户名-密码双重身份验证
- 连接管理器 - 使用单例模式并进行运行状况监控
- 工具类 - 按功能组织(查询、Apex、数据、元数据)
- 错误处理器 - 提供包含上下文信息的全面错误格式化
- 缓存管理器 - 基于 TTL 的缓存,用于优化性能
性能特性
- 自动切换批量处理 - 对大型操作自动使用 Bulk API
- 智能缓存 - SObject 元数据缓存 1 小时
- 连接复用 - 所有操作共用单个连接
- 轮询优化 - 高效监控长时间运行的操作
🧪 测试
# Test individual tools
node tests/test-query-tools.js
node tests/test-data-tools.js
node tests/test-apex-tools.js
node tests/test-metadata-tools.js
🤝 贡献
- Fork 此仓库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交更改(
git commit -m 'Add amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 发起 Pull Request
🔗 相关项目
- Model Context Protocol - 此服务实现的协议
- jsforce - 此项目使用的 Salesforce API 库
- Claude Desktop - 支持 MCP 服务的 AI 助手
- Cline - 用于 AI 辅助开发的 VS Code 扩展
👨💻 作者
Jarosław Jaworski
🤖 开发鸣谢
此实现的部分内容是在 Claude Sonnet 4 的协助下,使用 Cline VS Code 扩展开发的,展现了 AI 辅助开发在创建全面开发者工具方面的强大能力。
📄 许可证
此项目采用 MIT License 许可,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。