Salesforce协议服务

一个用于Salesforce的模型上下文协议服务器,支持通过标准化协议实现AI助手与Salesforce组织的交互。

  • by exiahuang
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 exiahuang/salesforce-mcp

使用说明

@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

优先顺序

  1. 构造函数参数(库模式)
  2. SF_ACCESS_TOKEN+SF_INSTANCE_URL(环境变量)
  3. SF_ALIAS(通过SF组织显示获取)
  4. 默认组织(从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组织经过身份验证

许可证

麻省理工学院