使用说明
Salesforce MCP服务器
一种模型上下文协议(MCP)服务器,为AI代理提供对Salesforce数据和操作的安全访问。专为销售、营销和高管团队设计,通过自然语言与Salesforce CRM进行交互。
特性
核心能力
- 🔍 搜索与查询:跨多个对象搜索记录,执行SOQL查询,并执行全局搜索
- 📖 读取操作:检索特定记录并浏览关系
- 🔒 安全第一:默认情况下以只读模式启动,以进行安全测试
- 🔐 安全认证:OAuth 2.0与适当的令牌管理集成
- ⚡ 错误处理:全面的错误处理和详细的反馈
安全功能
- 默认情况下为只读:服务器以安全只读模式启动
- 可配置的写访问:仅在准备就绪时启用写入操作
SALESFORCE_READ_ONLY_MODE=false - 清除操作指示器:在描述中清楚地标记工具
支持的Salesforce对象
- 账户:公司和组织记录
- 联系人:个人联系信息
- 潜在客户:潜在客户记录
- 机会:销售渠道和交易
- 病例:客户服务和支持票
- 活动:任务和事件
快速开始
🚀 有关完整的设置说明,请参阅 设置.md
这包括:
- Salesforce互联应用程序配置
- Claude桌面集成
- 分步截图和故障排除
安装选项
选项1:GitHub上的NPX
npx github:tomnagengast/mcp-server-salesforce
选项2:克隆和构建
git clone https://github.com/tomnagengast/mcp-server-salesforce.git
cd mcp-server-salesforce
npm install
npm run build
配置: 看 设置.md 了解完整的设置说明,包括Salesforce Connected App配置。
配置
环境变量
创建一个 .env 具有以下配置的文件:
# Salesforce Configuration
SALESFORCE_LOGIN_URL=https://login.salesforce.com
SALESFORCE_CLIENT_ID=your_connected_app_client_id
SALESFORCE_CLIENT_SECRET=your_connected_app_client_secret
SALESFORCE_USERNAME=your_salesforce_username
SALESFORCE_PASSWORD=your_salesforce_password
SALESFORCE_SECURITY_TOKEN=your_security_token
# For Sandbox (optional)
# SALESFORCE_LOGIN_URL=https://test.salesforce.com
# Server Configuration
PORT=3000
LOG_LEVEL=info
# Security - Server starts in READ-ONLY mode by default
SALESFORCE_READ_ONLY_MODE=true
🔒 安全说明:默认情况下,服务器以只读模式启动。集
SALESFORCE_READ_ONLY_MODE=false只有当你对写操作感到满意时。
Claude桌面集成
将此添加到您的Claude Desktop配置中(~/Library/Application Support/Claude/claude_desktop_config.json 在 macOS 上:
对于NPX安装:
{
"mcpServers": {
"salesforce": {
"command": "npx",
"args": ["github:tomnagengast/mcp-server-salesforce"],
"env": {
"SALESFORCE_CLIENT_ID": "your_client_id",
"SALESFORCE_CLIENT_SECRET": "your_client_secret",
"SALESFORCE_USERNAME": "your_username",
"SALESFORCE_PASSWORD": "your_password",
"SALESFORCE_SECURITY_TOKEN": "your_token",
"SALESFORCE_READ_ONLY_MODE": "true"
}
}
}
}
对于本地安装:
{
"mcpServers": {
"salesforce": {
"command": "node",
"args": ["/path/to/your/mcp-server-salesforce/dist/index.js"],
"cwd": "/path/to/your/mcp-server-salesforce"
}
}
}
看 设置.md 获取完整的集成说明。
用法
运行服务器
# Development mode with hot reload
npm run dev
# Production mode
npm run start
可用工具
搜索工具
搜索记录 -跨多个Salesforce对象搜索
{
"query": "Acme Corp",
"objects": ["Account", "Contact", "Lead"],
"limit": 20
}
soql_query -执行自定义SOQL查询
{
"query": "SELECT Id, Name, Email FROM Contact WHERE Account.Name = 'Acme Corp'"
}
全局搜索 -对所有对象进行全局搜索
{
"searchTerm": "john@example.com",
"limit": 20
}
读取操作(始终可用)
获取记录 -检索特定记录
{
"objectType": "Account",
"recordId": "001XXXXXXXXXX",
"fields": ["Name", "Type", "Industry"]
}
获取相关记录 -获取相关记录
{
"objectType": "Account",
"recordId": "001XXXXXXXXXX",
"relationship": "Contacts",
"limit": 20
}
获取记录历史 -查看字段历史记录
{
"objectType": "Opportunity",
"recordId": "006XXXXXXXXXX",
"limit": 20
}
写入操作(需要SALESFORCE_READ_ONLY_MODE=false)
⚠️ 这些操作会修改您的Salesforce数据。仅在您对服务器的行为感到满意时启用。
create_record -创建新记录
{
"objectType": "Contact",
"data": {
"FirstName": "John",
"LastName": "Doe",
"Email": "john@example.com"
}
}
update_record -更新现有记录
{
"objectType": "Account",
"recordId": "001XXXXXXXXXX",
"data": {
"Phone": "+1-555-0123"
}
}
删除记录 -删除记录
{
"objectType": "Lead",
"recordId": "00QXXXXXXXXXX"
}
启用写入操作
当您准备启用写操作时:
-
更新环境:
# In your .env file SALESFORCE_READ_ONLY_MODE=false -
或者在Claude Desktop配置中:
{ "mcpServers": { "salesforce": { "command": "node", "args": ["/path/to/your/mcp-server-salesforce/dist/index.js"], "env": { "SALESFORCE_READ_ONLY_MODE": "false", // ... other env vars } } } } -
重新启动服务器 和克劳德桌面
用例
销售团队
- 管道管理:“显示本季度结束的所有机会”
- 客户研究:“查找Acme Corp的所有联系人及其最近的活动”
- 领导跟进:“查找昨天贸易展的所有潜在客户”(只读)或“为昨天贸易展所有潜在客户创建任务”(写入模式)
营销团队
- 活动分析:“显示第四季度数字营销活动的投资回报率”
- 领先得分:“查找尚未联系到的高分潜在客户”
- 内容性能:“哪些活动产生了最合格的潜在客户?”
执行团队
- 收入预测:“我们下个季度按地区划分的管道是什么?”
- 性能指标:“按本月收盘收入显示表现最佳的公司”
- 客户健康:“列出前20名客户及其最近的参与情况”
发展
脚本
npm run build # Build TypeScript
npm run dev # Development with hot reload
npm run start # Start production server
npm run lint # Run ESLint
npm run test # Run tests (when implemented)
项目结构
src/
├── auth/ # Salesforce authentication
├── tools/ # MCP tool implementations
│ ├── search-tools.ts # Search and query tools
│ ├── crud-tools.ts # CRUD operations
│ └── relationship-tools.ts # Relationship navigation
├── types/ # TypeScript type definitions
├── utils/ # Utilities and helpers
│ ├── config.ts # Configuration management
│ ├── logger.ts # Logging utilities
│ └── error-handler.ts # Error handling
└── index.ts # Main server entry point
安全
- OAuth 2.0:使用Salesforce进行安全身份验证
- 尊重许可:所有操作都尊重Salesforce用户权限
- 输入验证:SOQL注射预防和输入消毒
- 错误处理:安全的错误消息,不会暴露敏感数据
故障排除
常见问题
认证失败
- 验证您的Salesforce凭据
- 检查您的IP是否已在Salesforce中分配
- 确保安全令牌是最新的
权限不足
- 验证用户是否具有适当的对象权限
- 检查字段级安全设置
- 确保配置文件已启用API访问
API限值
- 在Salesforce设置中监控API使用情况
- 必要时实施限速
- 考虑对大型数据集使用批量操作
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 运行测试和梳理
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
