使用说明

项目简介

Salesforce CLI MCP Server 是一个基于 Model Context Protocol (MCP) 构建的服务器,它封装了 Salesforce 命令行工具 (Salesforce CLI),并将 Salesforce CLI 的各项功能以 MCP 协议定义的工具 (Tools)资源 (Resources) 的形式暴露出来,从而使得大型语言模型 (LLM) 驱动的应用能够安全、可扩展地调用 Salesforce CLI 的能力,实现与 Salesforce 平台的集成和自动化。

主要功能点

  • Salesforce CLI 命令工具化: 将 Salesforce CLI 的所有命令(包括核心命令和插件命令)动态注册为 MCP 工具 (Tools),LLM 可以通过调用这些工具执行 Salesforce 操作。
  • 项目目录管理: 支持配置和管理多个 Salesforce 项目目录 (Roots),允许在指定的项目上下文中执行命令,适用于需要项目环境的操作,如部署、代码检索等。
  • 命令发现与缓存: 自动发现已安装的 Salesforce CLI 命令,并缓存命令元数据以提升服务器启动性能,支持手动刷新缓存。
  • 帮助文档资源: 提供 Salesforce CLI 的帮助文档作为 MCP 资源 (Resources),包括通用帮助、主题帮助和命令帮助,方便 LLM 获取命令使用说明。
  • 多种工具调用方式: 支持通过工具名称直接调用,也支持通过资源 URI 在特定项目根目录下执行命令。
  • 项目根目录动态配置: 支持通过命令行参数或 MCP 工具动态配置 Salesforce 项目根目录。

安装步骤

  1. 环境准备:

    • 确保已安装 Node.js (版本 18 或更高) 和 npm。
    • 确保已安装 Salesforce CLI ('sf') 并已完成基本配置,包括连接到您的 Salesforce 组织。
  2. 克隆仓库:

    git clone https://github.com/codefriar/sf-mcp.git
    cd sf-mcp
  3. 安装依赖:

    npm install

服务器配置

为了让 MCP 客户端(例如 Claude Desktop)连接到 Salesforce CLI MCP Server,您需要在客户端的配置文件中指定服务器的启动命令和参数。

以下是 Claude Desktop 客户端 '.claude.json' 配置文件中配置 Salesforce CLI MCP Server 的示例:

{
  "tools": {
    "salesforce": {
      "serverName": "Salesforce CLI MCP Server",
      "command": "/path/to/node",
      "args": [
        "/path/to/sf-mcp/build/index.js",
        "/path/to/your/salesforce/project1", // (可选) Salesforce 项目根目录 1 的路径
        "/path/to/your/salesforce/project2"  // (可选) Salesforce 项目根目录 2 的路径,可以配置多个
      ]
    }
  }
}

配置参数说明

  • serverName: MCP 服务器的名称,可以自定义,例如 "Salesforce CLI MCP Server"。
  • command: 启动 MCP 服务器的命令,通常是 Node.js 的执行路径。请替换为您的 Node.js 可执行文件的实际路径,例如 '/usr/local/bin/node' 或 'C:\Program Files\nodejs\node.exe'。
  • args: 传递给服务器启动命令的参数,以数组形式提供。
    • 第一个参数通常是服务器入口文件 'index.js' 的路径,请根据您的实际仓库位置进行调整,例如 '/path/to/sf-mcp/build/index.js'。
    • 随后的参数是可选的 Salesforce 项目根目录的路径。您可以配置一个或多个项目根目录,服务器启动时会将这些目录注册为项目根目录。如果您不需要预先配置项目根目录,可以省略这些参数。

基本使用方法

  1. 启动服务器: 在仓库根目录下,使用以下命令启动 Salesforce CLI MCP Server:

    npm start [可选: 项目根目录路径1] [可选: 项目根目录路径2] ...

    例如,启动服务器并指定两个项目根目录:

    npm start /path/to/project1 /path/to/project2
  2. 客户端连接: 配置 MCP 客户端(如 Claude Desktop),并使用上述服务器配置示例中的 JSON 配置信息连接到正在运行的 Salesforce CLI MCP Server。

  3. 调用工具和资源: 在 MCP 客户端中,您可以:

    • 使用 'sf_version' 工具获取 Salesforce CLI 版本信息。
    • 使用 'sf_org_list' 工具列出 Salesforce 组织。
    • 使用 'sf_apex_run' 工具运行 Apex 代码。
    • 使用 'sf://help' 资源获取通用帮助文档。
    • 使用 'sf://topics/org/help' 资源获取组织相关命令的帮助文档。
    • 使用 'sf_set_project_directory' 工具动态设置项目根目录。
    • 使用 'sf_list_roots' 工具列出已配置的项目根目录。

    更多可用的工具和资源请参考仓库的 'README.md' 文件。

通过以上步骤,您就可以使用 Salesforce CLI MCP Server,让 LLM 智能体安全便捷地操作 Salesforce,实现各种自动化任务。

信息

分类

商业系统