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 的操作,请在生产环境使用前充分测试,特别是涉及写操作、数据创建/更新/删除等行为时的权限与审批流程。