Salesforce MCP服务器

将AI代理连接到Salesforce的MCP(模型上下文协议)服务器, 实现与Salesforce数据和元数据的自然语言交互。
______________________________________________________________________
运作原理
- 客户端(例如LibreChat)处理完整的OAuth流程,并获得
Salesforce访问令牌。
- 在每次工具调用时,客户端都会向发送一个标准的MCP JSON-RPC请求
POST/mcp,令牌在 标准HTTP授权标头:
Authorization: Bearer - 服务器调用Salesforce 用户信息端点 使用该令牌
自动发现组织的实例URL——无实例URL,客户端 需要配置密钥、密钥或任何其他凭证。
- 对发现的实例执行请求的Salesforce工具。
服务器是 无状态和多租户:每个请求都是完整的 独立的,连接到不同组织的多个用户可以使用相同的 服务器实例同时。
______________________________________________________________________
特性
- 对象和字段管理 --创建和更新自定义对象和字段
- 智能对象搜索 --按部分名称或标签查找对象
- 详细的架构信息 --字段类型、选择列表、关系
- 灵活的数据查询 --具有关系支持和复杂过滤器的SOQL
- 聚集查询 --GROUP BY、HAVING、日期函数
- 数据操作 --插入、更新、删除、追加销售
- 跨对象搜索 --跨越多个对象的SOSL
- Apex管理 --读取、创建、更新Apex类和触发器
- 匿名Apex执行 --运行带有调试日志访问权限的ad-hoc Apex
- 调试日志管理 --为每个用户启用、禁用和检索跟踪日志
- 无国籍和多租户 --没有存储凭证;一台服务器,多个组织
- 自动实例URL发现 --启动时不需要Salesforce实例URL
______________________________________________________________________
安装
npm install -g @federico-alunni/mcp-server-salesforce______________________________________________________________________
快速开始
# 1. Copy and configure environment
cp .env.example .env
# Edit .env: set SALESFORCE_LOGIN_URL to test.salesforce.com for sandboxes
# 2. Build
npm run build
# 3. Start
node dist/index.js
# Server starts on http://localhost:3000______________________________________________________________________
认证
服务器在每个MCP请求上接受一个标头:
| 标题 | 值 | 必填 |
|---|---|---|
| 授权 | 承载者\ | 是 |
不需要实例URL、客户端ID、客户端机密或用户名标头。 令牌按原样用于调用Salesforce用户信息端点;这 实例URL会自动从响应中导出。
沙盒/自定义域支持
将.env中的SALESFORCE_LOGIN_URL设置为指向正确的身份服务器:
SALESFORCE_LOGIN_URL=https://test.salesforce.com # sandbox
SALESFORCE_LOGIN_URL=https://login.salesforce.com # production (default)______________________________________________________________________
工具
salesforce_search_objects
通过部分名称或标签匹配查找标准和自定义对象。
salesforce_describe_object
获取对象的完整模式:字段、类型、选择列表值、关系。
salesforce_query_records
支持父/子关系、WHERE、ORDER BY、LIMIT的SOQL查询。
对于GROUP BY和聚合函数,请使用salesforce_aggregate_query。
salesforce_aggregate_query
使用GROUP BY(单个或多个字段)、HAVING和日期/时间聚合SOQL 分组函数(COUNT、SUM、AVG、MIN、MAX、COUNT_DISTINCT)。
salesforce_dml_records
插入、更新、删除或追加销售记录(追加销售支持外部ID)。
salesforce_manage_object
通过元数据API创建或更新自定义对象。配置共享模型, 活动、描述和部署状态。
salesforce_manage_field
通过元数据API创建或更新自定义字段。自动授予字段 将安全级别设置为系统管理员;对其他配置文件使用grantAccessTo。
salesforce_manage_field_权限
在指定配置文件的字段上授予、撤销或查看读取/编辑FLS。
salesforce_search_all
使用每个对象的WHERE/ORDER BY/LIMIT跨多个对象进行SOSL搜索, WITH子句和可更新/可查看的过滤器。
salesforce_read_apex
按确切名称或通配符模式(\*,?)检索Apex类源。
salesforce_write_apex
通过工具API创建或更新Apex类。
salesforce_read_apex_trigger
按确切名称或通配符模式检索Apex触发器源。
salesforce_write_apextrigger
通过工具API创建或更新Apex触发器。
salesforce_execute_匿名
执行匿名Apex并返回编译/运行状态和调试日志。
salesforce_manage_debug_logs
为每个Salesforce用户启用、禁用或检索TraceFlag/DebugLevel条目。
______________________________________________________________________
日志记录
MCP_LOG_LEVEL=DEBUG # ERROR | WARN | INFO (default) | DEBUG | VERBOSE
MCP_LOG_TIMESTAMPS=true # ISO-8601 timestamps (default: true)日志转到 标准错误访问令牌从不被记录;只有它们的长度 在DEBUG级别记录。看 LOGGING_GUIDE.md 了解详情。
______________________________________________________________________
错误处理
工具错误作为有效的MCP响应(未抛出)返回,并带有 按类型分类的人类可读消息:
INVALID_SESSION·INVALID_ACCESS·INVALID字段· 无效操作·QUERY_TIMEOUT·API_LIMIT_EXCEEDED·未知
______________________________________________________________________
使用示例
"Find all objects related to Accounts"
"What fields are on the Opportunity object?"
"Get all Accounts created this month"
"Count open Opportunities by Stage"
"Create a Customer Feedback custom object"
"Add a Rating picklist field to Account"
"Grant read access to Rating__c for Marketing User"
"Search for 'cloud' across Accounts and Opportunities"
"Show me the AccountController Apex class"
"Enable debug logs for user@example.com"
"Execute Apex: System.debug(UserInfo.getUserId());"______________________________________________________________________
发展
git clone https://github.com/federico-alunni/mcp-server-salesforce.git
cd mcp-server-salesforce
npm install
npm run build看 交通指南.md 有关端点和请求格式的详细信息。
______________________________________________________________________
贡献
欢迎捐款。请提交拉取请求。
许可证
麻省理工学院——见 许可证.
问题和支持
在 .
