使用说明
@exiahuang/salesforce mcp
Salesforce MCP Server-Salesforce的模型上下文协议服务器,使Claude等AI助手能够通过标准化协议与Salesforce组织进行交互。
概述
此MCP服务器使用Salesforce CLI(sf)为身份验证和直接REST API调用提供全面的Salesforce集成。它支持独立服务器模式和库模式进行编程访问。
特性
- 连接管理:自动检测默认组织,支持显式别名,直接注入令牌
- SOQL查询:执行查询、分页支持、聚合函数、关系查询
- 工具API:查询元数据(ApexClass、CustomField、FlowDefinition等)
- CRUD操作:创建、读取、更新、删除、更新记录
- 元数据操作:描述全局、描述SObject、描述字段
- Apex执行:执行匿名Apex,运行测试,获取Apex类/触发器体
- 除错记录:检索组织调试日志
- 用户管理:分配权限集
- 最新记录:获取最近访问、更新、删除的记录
- API限值:查询API使用限制
- 喋喋不休:后馈送项目
安装
npm install
配置
环境变量
复制 .env.example 到 .env 并配置:
# Option 1: Direct token injection (highest priority)
SF_ACCESS_TOKEN=your_access_token_here
SF_INSTANCE_URL=https://yourinstance.salesforce.com
# Option 2: Use org alias
SF_ALIAS=myorg
# API Version (default: 65.0)
SF_API_VERSION=65.0
优先顺序
- 构造函数参数(库模式)
- SF_ACCESS_TOKEN+SF_INSTANCE_URL(环境变量)
- SF_ALIAS(通过SF组织显示获取)
- 默认组织(从sf配置自动检测)
用法
作为图书馆
import { SalesforceClient } from '@exiahuang/salesforce-mcp';
const client = new SalesforceClient({
apiVersion: '65.0',
alias: 'myorg'
});
// Query
const accounts = await client.query('SELECT Id, Name FROM Account LIMIT 10');
// CRUD
await client.create('Account', [{ Name: 'Test Account' }]);
await client.update('Account', [{ Id: 'xxx', Name: 'Updated' }]);
await client.delete('Account', ['xxx']);
// Metadata
const sobjects = await client.describeGlobal();
const fields = await client.describe('Account');
作为独立服务器
npm run build
npm run start
或者使用CLI:
sf-mcp
发展
# Setup
chmod +x init.sh
./init.sh
# Build
npm run build
# Test
npm test
# Type check
npm run typecheck
项目结构
src/
├── index.ts # Main exports
├── client.ts # SalesforceClient class
├── server.ts # MCP server wrapper
├── cli.ts # CLI entry point
├── config.ts # Configuration
├── types.ts # TypeScript types
├── errors.ts # Error classes
├── connection/ # Connection management
├── salesforce/ # REST API calls
├── sfcli/ # SF CLI wrapper
├── mcp/ # MCP tool definitions
└── tools/ # Tool implementations
MCP工具
| 类别 | 工具 |
|---|---|
| 连接 | salesforce_get_org_info,salesforce_set_Connection |
| 查询 | salesforce_Query、salesforce_6query_more、salesfonce_search、salesfoance_tooling_Query |
| CRUD | salesforce_create、salesforce_read、salesfonce_update、salesforge_delete、salesfoce_upsert |
| 元数据 | salesforce_describe_global、salesforce-describe_field |
| Apex | salesforce_execute_appex、salesforce_run_tests、salesfonce_get_Apex_body |
| 日志记录 | salesforce_get_logs |
| 用户管理 | salesforce_assign_permission_set |
| 最近记录 | salesforce_recentury_accessed_updated,salesforce-recentury_deleted |
| ,salesforce_re限制 | salesforce_get_Limits |
| 聊天 | salesforce_Chatter_post_feed_item |
先决条件
- Node.js 18+
- npm或纱线
- Salesforce CLI(sf)已安装并配置
- 至少有一个Salesforce组织经过身份验证
许可证
麻省理工学院
