Salesforce MCP Server

使用说明(Markdown 格式,便于快速理解和上手):

  • 项目简介

    • 该仓库实现了一个完整的 MCP 服务器,用于向基于大语言模型的 AI 客户端提供 Salesforce 相关的上下文与功能。核心能力包括执行 Apex、查询和管理 Salesforce 组织、对对象和记录执行操作、元数据工具、代码分析与安全扫描等多种工具的注册与执行。
  • 主要功能点

    • 提供多种 Salesforce 相关工具的 MCP 服务入口,例如 Apex 执行、SOQL 查询、记录 CRUD、对象与元数据操作、登录登出、包安装/卸载、代码分析和安全扫描等。
    • 基于权限控制:支持只读模式(READ_ONLY)和可访问的组织白名单(ALLOWED_ORGS),在只读模式下禁止执行写操作,在受限组织列表中只暴露允许的 org。
    • 会话与服务器描述动态生成:服务器在启动时会依据当前权限和能力生成描述信息,便于客户端理解服务器能力。
    • 传输与接口
      • 当前实现使用标准的 MCP 服务器传输(示例代码中使用 StdioServerTransport,便于通过标准输入/输出与客户端通信)。 具备扩展性,理论上支持多种传输协议(如 Stdio、SSE、WebSocket),以适配不同客户端场景。
    • 安全性与合规
      • 通过环境变量控制访问权限(READ_ONLY、ALLOWED_ORGS),并在工具执行前进行权限校验。
      • 针对目标 Salesforce Org 的访问通过 Salesforce CLI 的凭证进行操作,避免在服务器端直接暴露凭据。
  • 安装步骤

    • 需要的前提
      • Node.js 18+ 环境
      • Salesforce CLI 已安装并正确配置(sf 命令可用)
    • 常用安装与运行方式
      • 直接使用 NPM 包运行:通过 npx @advanced-communities/salesforce-mcp-server 启动服务器。
      • 或者本地构建后运行:克隆仓库后执行 npm install,随后 npm run build,然后使用 Node 启动构建产物(build/index.js)。
    • 依赖与构建
      • 依赖于 Model Context Protocol 的 MCP 服务器实现和相关工具包。
      • 需要在客户端配置 MCP 服务器以建立连接(后续在客户端配置中给出示例)。
  • 服务器配置(给 MCP 客户端的配置示例说明) 说明:MCP 客户端需要配置一个 MCP 服务器条目,用于建立连接。配置项通常包含服务器标识、启动命令及参数等信息,客户端不直接需要代码,只需要了解如何启动服务器即可。以下为合理的配置要素说明(非代码)。

    • server name(服务器标识名,唯一)
    • command(启动服务器的命令,示例值为 npx)
    • args(启动命令的参数数组,示例值为 ["@advanced-communities/salesforce-mcp-server"])
    • env(可选的环境变量,用于控制访问权限,如 READ_ONLY、ALLOWED_ORGS,示例见下方注释)
    • 注释:该 CONFIG 仅用于 MCP 客户端在客户端启动和连接时需要的元信息,不需要以代码形式嵌入到客户端程序中。

    具体示例(以文本形式描述,非代码块)

    • server name: salesforce-mcp-server
    • command: npx
    • args: ["@advanced-communities/salesforce-mcp-server"]
    • env(可选):
      • READ_ONLY: "true" 或 "false"(是否开启只读模式)
      • ALLOWED_ORGS: "ALL" 或 "org1,org2,org3"(允许的 Salesforce Org 列表)
  • 基本使用方法

    • 启动服务器
      • 通过 npx 启动:npx @advanced-communities/salesforce-mcp-server
      • 或在本地构建后直接运行构建产物:node build/index.js(确保依赖已安装)
    • 客户端接入
      • 使用 MCP 客户端配置连接到该服务器(示例如上所述的 server name、command、args 等信息)
      • 客户端即可以通过 MCP 协议向服务器发起请求,获取资源、调用工具、渲染 Prompts、以及接收 JSON-RPC 风格的响应与通知
    • 使用建议
      • 先在目标 Salesforce Org 中完成用户认证(sf org login),确保服务器能够通过 Salesforce CLI 访问目标 Org
      • 根据需要通过环境变量配置权限,例如只读模式或限制可访问的 Org 列表
      • 使用客户端对接后,按自然语言或定义好的工具调用模式向服务器发起请求
  • 说明与注意

    • 该实现以 STDIO 传输为初始通信方式,便于在本地快速开发与调试。理论上可以扩展为 SSE/WebSocket 等传输方式以满足不同客户端的需求。
    • MCP 服务端描述信息会在启动时动态生成,反映当前权限与能力。
    • 由于涉及对 Salesforce 的操作,请在生产环境使用前充分测试,特别是涉及写操作、数据创建/更新/删除等行为时的权限与审批流程。

服务器信息