返回市场
销售力-MCP

销售力-MCP

作者:suraj200282 星标更新:2025-04-25

项目介绍

Salesforce MCP Server

这是一个将Claude/VS Code与Salesforce集成的MCP(模型上下文协议)服务器实现,使您能够使用自然语言与Salesforce的数据和元数据进行交互。此服务器允许Claude/Github Copilot使用日常语言查询、修改和管理您的Salesforce对象和记录。

功能

  • 智能对象搜索:通过部分名称匹配查找Salesforce对象
  • 详细模式信息:获取任何对象的全面字段和关系详情
  • 灵活的数据查询:支持关系和复杂过滤器的记录查询
  • 下拉列表值检索:获取任何下拉列表字段的所有值
  • 字段类型筛选:跨对象查找特定类型的字段
  • 关系探索:分析对象之间的父子关系
  • 增强API元数据:通过直接API调用访问完整的对象元数据
  • 调试日志管理:配置并检索Salesforce用户的调试日志
  • 验证规则管理:获取对象上验证规则的详细信息

预备条件

  1. 若要在容器中运行服务器,您需要安装Docker
  2. 安装Docker后,还需确保Docker正在运行。
  3. 使用以下命令从docker hub拉取镜像 suraj20028/salesforce-mcp-server
    docker pull suraj20028/salesforce-mcp-server
    
  4. 您需要Salesforce OAuth2凭证:
    • 对于OAuth 2.0客户端凭据流:客户端ID、客户端密钥和实例URL
  5. 由于该项目将使用OAuth2认证方法,请确保完成以下操作:

启用连接应用的客户端凭据流。在API(启用OAuth设置)下,选择启用客户端凭据流。 在管理连接应用下选择执行用户。

安装

与VS Code一起使用

对于手动安装,需在VS Code的用户设置(JSON)文件中添加以下JSON块。可以通过按Ctrl + Shift + P(或macOS上的Cmd + Shift + P)并键入首选项:打开用户设置(JSON)来完成此操作。

可选地,您可以将其添加到工作区中的名为.vscode/mcp.json的文件中。这将允许您与其他人员共享配置。

注意:在.vscode/mcp.json文件中不需要mcp键。

"mcp": {
  "inputs": [
    {
      "type": "promptString",
      "id": "client_id",
      "description": "Salesforce客户端ID",
      "password": false
    },
    {
      "type": "promptString",
      "id": "client_secret",
      "description": "Salesforce客户端密钥",
      "password": false
    },
    {
      "type": "promptString",
      "id": "username",
      "description": "Salesforce用户名",
      "password": false
    },
    {
      "type": "promptString",
      "id": "password",
      "description": "Salesforce密码",
      "password": false
    },
    {
      "type": "promptString",
      "id": "domain_url",
      "description": "Salesforce域URL <https://yourdomain.my.salesforce.com>",
      "password": false
    }
  ],
  "servers": {
    "salesforce": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "SALESFORCE_CLIENT_ID",
        "-e", "SALESFORCE_CLIENT_SECRET",
        "-e", "SALESFORCE_USERNAME",
        "-e", "SALESFORCE_PASSWORD",
        "-e", "SALESFORCE_DOMAIN_URL",
        "suraj20028/salesforce-mcp-server"
      ],
      "env": {
        "SALESFORCE_CLIENT_ID": "${input:client_id}",
        "SALESFORCE_CLIENT_SECRET": "${input:client_secret}",
        "SALESFORCE_USERNAME": "${input:username}",
        "SALESFORCE_PASSWORD": "${input:password}",
        "SALESFORCE_DOMAIN_URL": "${input:domain_url}",
      }
    }
  }
}

更多关于在VS Code的代理模式文档中使用MCP服务器工具的信息,请参阅此处

工具

工具名称描述参数
search_objects通过部分名称匹配搜索标准和自定义对象query: 对象名称的搜索字符串
describe_object获取Salesforce对象的详细模式信息objectName: 对象的API名称
describe_object_with_api使用直接REST API调用获取扩展的对象元数据objectName: 对象的API名称, raw: (可选)返回原始JSON
describe_relationship_fields探索对象之间的父子关系objectName: 对象的API名称
query_records支持关系和过滤器的记录查询object: 要查询的对象, fields: 要返回的字段, where: (可选)WHERE条件, limit: (可选)要返回的记录数
get_fields_by_type查找对象中特定数据类型的字段objectName: 对象的API名称, fieldType: 用于筛选的数据类型
get_picklist_values检索下拉列表字段的所有值objectName: 对象的API名称, fieldName: 下拉列表字段名称
get_validation_rules获取对象上验证规则的详细信息objectName: 对象的API名称
manage_debug_logs配置并检索用户的调试日志action: 要执行的操作(启用、禁用、检索), userId: 用户ID, logLevel: (可选)调试日志级别

示例用法

搜索对象

"查找所有与账户相关的对象"
"显示处理客户服务的对象"
"哪些对象可用于订单管理?"

获取模式信息

"Account对象有哪些可用字段?"
"显示Case状态的下拉列表值"
"描述Opportunity的关系字段"

查询记录

"获取本月创建的所有账户"
"显示高优先级案例及其相关联系人"
"查找所有超过$100k的机会"

根据类型处理字段

"显示Lead对象上的所有下拉列表字段"
"获取Opportunity上的所有引用字段"
"查找Account上的所有必填字段"

获取下拉列表值

"Lead状态可能有哪些值?"
"显示Accounts的所有行业选项"
"列出所有Case优先级值"

探索关系

"显示Account对象的所有关系"
"哪些对象与Opportunity相关?"
"描述Contact的父-子关系"

管理调试日志

"为user@example.com启用调试日志"
"检索管理员用户的最近日志"
"禁用特定用户的调试日志"
"为用户配置DEBUG级别的日志"

检查验证规则

"显示Opportunity上的所有验证规则"
"获取Account验证规则的详细信息"
"自定义对象存在哪些验证规则?"

开发

项目结构

salesforce-mcp-server/
├── server.py             # MCP服务器实现
├── sf_connection.py      # Salesforce身份验证
├── tools/
│   ├── __init__.py       # 工具包初始化
│   ├── search_objects.py # 对象搜索功能
│   ├── describe_object.py # 对象模式检索
│   ├── query_records.py  # SOQL查询功能
│   └── ...               # 其他工具模块

添加新工具

  1. tools目录中创建一个新的Python文件
  2. 实现带有适当文档字符串和错误处理的功能
  3. 在MCP服务器中导入并注册该功能

贡献

欢迎贡献!请随意提交Pull Request。

许可证

本项目根据MIT许可证发布 - 请参阅LICENSE文件以获取详细信息。

问题和支持

如果您遇到任何问题或需要支持,请在GitHub存储库上提交一个Issue。