Salesforce CRM集成服务器

一个用于Salesforce CRM集成的模型上下文协议(MCP)服务器,提供工具通过MCP协议与Salesforce Leads交互,使AI助手、工作流和助手能够安全地管理Salesforce CRM潜在客户数据。

  • by sowmya-rapid
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 sowmya-rapid/salesforce-mcp

使用说明

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

安装

  1. 克隆存储库:
  git clone <your-repo-url>
  cd salesforce-mcp
  1. 使用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服务器。

  1. 塑造形象 从根目录运行:
docker build -t salesforce-mcp .
  1. 运行容器 确保您的.env文件已填充您的Salesforce凭据,然后运行:
docker run -d -p 3333:3333 --name sf-server --env-file .env salesforce-mcp
  1. 验证部署
docker logs sf-server

通过查看日志检查服务器是否处于活动状态
信息:Salesforce MCP服务器在0.0.0.0:3333处于活动状态。

许可证

MIT许可证

作者

索维亚(sowmya@rapidinnovation.dev)