使用说明
Salesforce MCP服务器
A. 模型上下文协议(MCP) 服务器 Salesforce CRM集成此服务器提供通过MCP协议与Salesforce lead交互的工具,使AI助手、工作流和副驾驶能够安全地管理Salesforce CRM lead数据。
特性
潜在客户同步集成
- 自动潜在客户同步:使用安全的类似追加销售的流程将潜在客户从您的平台同步到Salesforce CRM
- 防止重复:在创建新潜在客户之前,通过电子邮件检查现有潜在客户
- 临时运营:使用相同数据多次调用是安全的-没有重复
- 线索状态处理:
scheduled→ 触发潜在客户转化objected→ 仅更新Lead状态(无转换)
- SOQL安全查询:电子邮件值被转义以防止查询中断字符
- 错误处理:清除JSON格式返回的验证和身份验证错误
- 相关ID:每个工具响应都包含一个用于调试的相关ID
潜在客户管理
- 完整的CRUD操作:完整的潜在客户管理能力
- 列出具有限制支持的潜在客户
- 通过电子邮件获取潜在客户
- 创建新线索
- 更新现有潜在客户字段
- 删除潜在客户
- 更新潜在客户状态
- 同步潜在客户(通过电子邮件追加销售)
技术特性
- OAuth集成:通过请求标头接受Salesforce承载令牌
- 类型安全:使用Pydantic模式构建,用于强验证
- 切换/匹配工具布线:使用清洁工具布线
match case - CORS支持:通过完全可配置的CORS支持
config.py - 可流式HTTP传输:使用MCP
StreamableHTTPSessionManager - 邮递员兼容:设计用于与Postman MCP测试正确配合使用
先决条件
- Python 3.10或更高版本
- UV包管理器
- Salesforce OAuth访问令牌+刷新令牌(来自OAuth服务)
- Salesforce实例URL
安装
- 克隆存储库:
git clone <your-repo-url>
cd salesforce-mcp
- 使用UV安装依赖项:
uv sync add
编辑.env并添加Salesforce配置
.env
SF_CLIENT_ID=your_salesforce_client_id
SF_CLIENT_SECRET=your_salesforce_client_secret
SF_TOKEN_URL=https://login.salesforce.com/services/oauth2/token
SF_INSTANCE_URL=https://yourInstance.my.salesforce.com
SF_API_VERSION=v59.0
MCP_HOST=0.0.0.0
MCP_PORT=3333
身份验证(必需标头)
此MCP服务器需要通过标头获得身份验证令牌。
所需的标题格式
Authorization: Bearer <ACCESS_TOKEN>
X-SF-Refresh-Token: Bearer <REFRESH_TOKEN>
X-SF-Instance-Url: https://yourInstance.my.salesforce.com
Content-Type: application/json
Accept: application/json
⚠️ 重要
Must include a space: Bearer <token>
Authorization:Bearer <token> ❌ will fail
Authorization: Bearer <token> ✅ correct
用法 运行服务器
uv run python -m app.server
服务器将在以下时间启动:
(http://0.0.0.0:3333)
可用工具
1. salesforce_sync_lead
2. salesforce_list_leads
3. salesforce_get_lead
4. salesforce_create_lead
5. salesforce_update_lead
6. salesforce_delete_lead
7. salesforce_update_lead_status
响应格式
所有工具响应返回:
{
"success": true,
"data": {},
"correlation_id": "uuid",
"status_code": 200
}
验证错误响应 如果验证失败,服务器将返回:
{
"success": false,
"error": "Validation Error",
"details": [
{
"field": "email",
"message": "field required"
}
],
"correlation_id": "uuid"
}
身份验证错误响应
如果缺少所需的身份验证标头,服务器将返回:
{
"error": {
"code": "AUTHENTICATION_REQUIRED",
"message": "Authentication required to access this resource",
"details": {
"authentication_requirements": [
{
"provider": "salesforce",
"auth_type": "bearer",
"header_name": "Authorization",
"header_format": "Bearer {access_token}",
"required_scopes": ["api", "refresh_token", "offline_access"],
"token_source": "access_token"
}
]
}
}
}
项目结构
salesforce-mcp/
├── app/
│ ├── server.py # MCP server and tools
│ ├── salesforce_client.py # Salesforce REST/SOAP client
│ ├── schemas.py # Pydantic request schemas
│ ├── constants.py # Lead status + Salesforce fields/constants
│ ├── config.py # Host/Port + CORS configuration
│ ├── utils.py # Correlation ID + token extraction + SOQL escaping
├── tests/ # (Optional) unit tests
├── pyproject.toml
├── .env.example
├── README.md
└── .gitignore
🐳 Docker支持
此项目完全容器化,允许您在不安装本地依赖项的情况下运行Salesforce MCP服务器。
- 塑造形象 从根目录运行:
docker build -t salesforce-mcp .
- 运行容器 确保您的.env文件已填充您的Salesforce凭据,然后运行:
docker run -d -p 3333:3333 --name sf-server --env-file .env salesforce-mcp
- 验证部署
docker logs sf-server
通过查看日志检查服务器是否处于活动状态
信息:Salesforce MCP服务器在0.0.0.0:3333处于活动状态。
许可证
MIT许可证
作者
索维亚(sowmya@rapidinnovation.dev)
