Skip to main content
Glama

Salesforce CLI MCP Server

Salesforce CLI MCP 服务器

模型上下文协议 (MCP) 服务器用于向 Claude Desktop 等 LLM 工具提供 Salesforce CLI 功能。

概述

该 MCP 服务器包装了 Salesforce CLI( sf )命令行工具,并将其命令公开为 MCP 工具和资源,从而允许 LLM 驱动的代理执行以下操作:

  • 查看有关 Salesforce CLI 主题和命令的帮助信息
  • 使用适当的参数执行 Salesforce CLI 命令
  • 在 AI 工作流中利用 Salesforce CLI 功能

要求

  • Node.js 18+ 和 npm
  • Salesforce CLI( sf )已安装并配置
  • 在 CLI 中配置的 Salesforce 组织凭据

安装

# Clone the repository git clone <repository-url> cd sfMcp # Install dependencies npm install

用法

启动服务器

# Basic usage npm start # With project roots npm start /path/to/project1 /path/to/project2 # or using the convenience script npm run with-roots /path/to/project1 /path/to/project2 # As an npx package with roots npx -y codefriar/sf-mcp /path/to/project1 /path/to/project2

MCP 服务器使用 stdio 传输,可与 MCP 客户端(如MCP Inspector或 Claude Desktop)一起使用。

在 Claude Desktop 中配置

要在 Claude Desktop 的.claude.json配置中配置此 MCP:

{ "tools": { "salesforce": { "command": "/path/to/node", "args": [ "/path/to/sf-mcp/build/index.js", "/path/to/project1", "/path/to/project2" ] } } }

直接使用 npm 包:

{ "tools": { "salesforce": { "command": "/path/to/npx", "args": [ "-y", "codefriar/sf-mcp", "/path/to/project1", "/path/to/project2" ] } } }

发展

# Watch mode (recompiles on file changes) npm run dev # In another terminal npm start [optional project roots...]

可用的工具和资源

此 MCP 服务器提供 Salesforce CLI 命令作为 MCP 工具。它会自动发现并注册 Salesforce CLI 中所有可用的命令,并专门实现最常用的命令。

核心工具

  • sf_version - 获取 Salesforce CLI 版本信息
  • sf_help - 获取 Salesforce CLI 命令的帮助信息
  • sf_cache_clear - 清除命令发现缓存
  • sf_cache_refresh - 刷新命令发现缓存

项目目录管理(Roots)

对于需要 Salesforce 项目上下文的命令(例如部署),您必须指定项目目录。MCP 支持多个项目目录(根目录),类似于文件系统 MCP。

配置方法

方法 1:通过命令行参数

# Start the MCP with project roots npm start /path/to/project1 /path/to/project2 # or npx -y codefriar/sf-mcp /path/to/project1 /path/to/project2

当以这种方式配置时,根将自动命名为root1root2等,其中第一个设置为默认值。

方法 2:使用 MCP 工具

  • sf_set_project_directory - 设置用于命令的 Salesforce 项目目录
    • 参数:
      • directory - 包含 sfdx-project.json 文件的目录路径
      • name -(可选)此项目根目录的名称
      • description - (可选)此项目根目录的描述
      • isDefault - (可选)将此根设置为命令执行的默认根
  • sf_list_roots - 列出所有已配置的项目根目录
  • sf_detect_project_directory - 尝试从用户消息中检测项目目录

使用示例:

# Set project directory with a name sf_set_project_directory --directory=/path/to/your/sfdx/project --name=project1 --isDefault=true # List all configured roots sf_list_roots # Or include in your message: "Please deploy the apex code from the project in /path/to/your/sfdx/project to my scratch org"

方法 3:Claude 桌面配置按照如下所述在.claude.json中配置项目根。

使用项目根目录

您可以在特定的项目根目录中执行命令:

# Using resource URI sf://roots/project1/commands/project deploy start --sourcedir=force-app # Using rootName parameter sf_project_deploy_start --sourcedir=force-app --rootName=project1

必须为部署、源代码检索和其他特定于项目的操作等命令指定项目目录。如果配置了多个根目录,则除非另有说明,否则将使用默认根目录。

关键实施工具

以下命令是专门实现的,并保证可以正常工作:

组织管理
  • sf_org_list - 列出 Salesforce 组织
    • 参数: jsonverbose
  • sf_auth_list_orgs - 列出经过身份验证的 Salesforce 组织
    • 参数: jsonverbose
  • sf_org_display - 显示有关组织的详细信息
    • 参数: targetusernamejson
  • sf_org_open - 在浏览器中打开一个组织
    • 参数: targetusernamepathurlonly
Apex 代码
  • sf_apex_run - 运行匿名 Apex 代码
    • 参数: targetusernamefileapexcodejson
  • sf_apex_test_run - 运行 Apex 测试
    • 参数: targetusernametestnamessuitenamesclassnamesjson
数据管理
  • sf_data_query - 执行 SOQL 查询
    • 参数: targetusernamequeryjson
  • sf_schema_list_objects - 列出组织中的 sObjects
    • 参数: targetusernamejson
  • sf_schema_describe - 描述 Salesforce 对象
    • 参数: targetusernamesobjectjson
部署
  • sf_project_deploy_start - 将源部署到组织
    • 参数: targetusernamesourcedirjsonwait

动态发现的工具

服务器发现所有可用的 Salesforce CLI 命令并将它们注册为格式为sf_<topic>_<command>工具。

例如:

  • sf_apex_run - 运行匿名 Apex 代码
  • sf_data_query - 执行 SOQL 查询

对于嵌套主题命令,工具名称包含带下划线的完整路径:

  • sf_apex_log_get - 获取 apex 日志
  • sf_org_login_web - 使用 web flow 登录到组织

服务器还会尽可能为常见的嵌套命令创建简化的别名:

  • sf_get作为sf_apex_log_get的别名
  • sf_web作为sf_org_login_web的别名

可用的命令取决于安装的 Salesforce CLI 插件。

**注意:**命令发现会被缓存以提高启动性能。如果您安装了新的 SF CLI 插件,请使用sf_cache_refresh工具更新缓存,然后重新启动服务器。

资源

以下资源提供有关 Salesforce CLI 的文档:

  • sf://help主要 CLI 文档
  • sf://topics/{topic}/help - 主题帮助文档
  • sf://commands/{command}/help - 命令帮助文档
  • sf://topics/{topic}/commands/{command}/help - 主题命令帮助文档
  • sf://version版本信息
  • sf://roots列出所有已配置的项目根目录
  • sf://roots/{root}/commands/{command} - 在特定项目根目录中执行命令

工作原理

  1. 在启动时,服务器会检查缓存的命令列表(存储在~/.sf-mcp/command-cache.json中)
  2. 如果存在有效的缓存,则使用它来注册命令;否则,将动态发现命令
  3. 在发现期间,服务器查询sf commands --json以获取可用命令的完整列表
  4. 命令元数据(包括参数和描述)直接从 JSON 输出中提取
  5. 所有命令均注册为具有适当参数模式的 MCP 工具
  6. 资源已注册用于帮助文档
  7. 当调用工具时,将执行相应的 Salesforce CLI 命令

项目根源管理

对于需要 Salesforce 项目上下文的命令:

  1. 服务器通过sf_set_project_directory检查是否已配置任何项目根目录
  2. 如果配置了多个根,则使用默认根,除非指定了特定的根
  3. 如果没有设置根目录,服务器将提示用户指定项目目录
  4. 命令在适当的项目目录中执行,确保正确的上下文
  5. 用户可以根据需要添加或在多个项目根之间切换

项目特定的命令(例如部署、检索等)将自动在相应的项目目录中运行。对于不需要项目上下文的命令,工作目录无关紧要。

您可以通过以下方式在特定项目根目录中执行命令:

  • 使用资源 URI: sf://roots/{rootName}/commands/{command}
  • 为命令工具提供rootName参数(内部实现细节)
  • 使用sf_set_project_directory --isDefault=true将特定根目录设置为默认根目录

命令缓存

为了提高启动性能,MCP 服务器会缓存发现的命令:

  • 缓存存储在~/.sf-mcp/command-cache.json
  • 它包括所有主题、命令、参数和描述
  • 缓存具有验证时间戳和 SF CLI 版本检查
  • 默认情况下,缓存会在 7 天后过期
  • 安装新的 Salesforce CLI 插件时,使用sf_cache_refresh更新缓存
缓存问题故障排除

服务器首次运行会执行完整的命令发现,这可能需要一些时间。如果您遇到任何命令缺失或缓存问题:

  1. 停止 MCP 服务器(如果正在运行)
  2. 手动删除缓存文件: rm ~/.sf-mcp/command-cache.json
  3. 再次启动服务器: npm start

这将强制使用官方 CLI 元数据重新发现所有命令。

如果仍然缺少特定命令,或者您已安装了新的 SF CLI 插件:

  1. 使用 Claude Desktop 的sf_cache_refresh工具
  2. 停止并重新启动 MCP 服务器

处理嵌套主题

Salesforce CLI 具有多层级的命令结构。MCP 服务器通过以下方式处理这些嵌套命令:

  • 将冒号分隔的路径转换为下划线格式( apex:log:getsf_apex_log_get
  • 尽可能为常见的深度命令提供别名( sf_get用于sf_apex_log_get
  • 在工具名称中保留完整的命令层次结构
  • 使用sf commands --json

嵌套主题命令尽可能注册两次 - 一次使用完整的层次结构名称,一次使用简化的别名,以便更容易发现和使用它们。

执照

国际学习中心

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

local-only server

The server can only run on the client's local machine because it depends on local resources.

将 Salesforce CLI 功能公开给 Claude Desktop 等 LLM 工具,允许 AI 代理执行 Salesforce 命令、管理组织、部署代码以及通过自然语言查询数据。

  1. 概述
    1. 要求
      1. 安装
        1. 用法
          1. 启动服务器
          2. 在 Claude Desktop 中配置
          3. 发展
        2. 可用的工具和资源
          1. 核心工具
          2. 项目目录管理(Roots)
          3. 关键实施工具
          4. 动态发现的工具
          5. 资源
        3. 工作原理
          1. 项目根源管理
          2. 命令缓存
          3. 处理嵌套主题
        4. 执照

          Related MCP Servers

          • -
            security
            F
            license
            -
            quality
            A server that connects AI coding assistants like Cursor and Cline to Apifox API definitions, allowing developers to implement API interfaces through natural language commands.
            Last updated -
            832
            1
            • Apple
            • Linux
          • -
            security
            F
            license
            -
            quality
            Allows LLM tools like Claude Desktop and Cursor AI to access and summarize code files through a Model Context Protocol server, providing structured access to codebase content without manual copying.
            Last updated -
            TypeScript
            • Linux
            • Apple
          • -
            security
            F
            license
            -
            quality
            Allows developers to query security findings (SAST issues, secrets, patches) using natural language within AI-assisted tools like Claude Desktop, Cursor, and other MCP-compatible environments.
            Last updated -
            1
            Python
            • Linux
            • Apple
          • A
            security
            A
            license
            A
            quality
            An MCP server that enables running CLI for Microsoft 365 commands through GitHub Copilot Agent, allowing users to interact with Microsoft 365 services using natural language.
            Last updated -
            4
            2
            TypeScript
            MIT License

          View all related MCP servers

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/codefriar/sf-mcp'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server