内容
# Salesforce MCP 示例集成
本项目提供了一个使用模型上下文协议(MCP)与 Salesforce 进行集成的基本示例。它允许通过 MCP 工具与 Salesforce 功能(如发送电子邮件和部署 Apex 代码)进行交互。
## 前置条件
* 已安装 Node.js 和 npm(或 yarn)。
* 可以创建连接应用的 Salesforce 组织。
## 设置
1. **安装依赖项:**
```bash
npm install
# 或
yarn install
```
2. **配置 Salesforce 凭证:**
* 您必须在 `utils` 文件夹(./utils/credentials.js)中创建一个 `credentials.js` 文件。
* 此文件需要导出一个 `getSalesforceCredentials()` 函数,该函数返回用于 JWT 承载流身份验证的 Salesforce 连接详细信息。
* **重要:** 确保您已在 Salesforce 中配置了用于 JWT 身份验证的[连接应用](https://help.salesforce.com/s/articleView?id=sf.connected_app_create_api_integration.htm&type=5),允许适当的范围并预授权相关的用户配置文件。
**`utils/credentials.js` 示例:**
```javascript
import fs from 'fs';
import path from 'path';
// 您可能从环境变量、配置文件等加载这些内容。
export function getSalesforceCredentials() {
// --- 实现您的逻辑以安全加载凭证 ---
const loginUrl = "您的 Salesforce 登录 URL"; // 例如,https://login.salesforce.com 或 https://yourdomain.my.salesforce.com
const username = "您的 Salesforce 用户名";
const clientId = "您的连接应用消费者密钥";
// 加载用于签名 JWT 断言的私钥
// 确保密钥格式正确,包括 BEGIN/END 行。
const privateKey = fs.readFileSync(path.resolve(__dirname, 'path/to/your/server.key'), 'utf8');
// 示例:const privateKey = process.env.SF_PRIVATE_KEY;
if (!loginUrl || !username || !clientId || !privateKey) {
throw new Error("utils/credentials.js 中缺少必需的 Salesforce 凭证");
}
return {
loginUrl,
username,
clientId,
privateKey
};
}
```
3. **配置文件:**
* 仓库中包含一个示例 `claude_desktop_config.json` 文件,可用作配置 MCP 服务器的模板。
* 根据您的环境设置更新此文件中的路径和凭证。
## 运行服务器
```bash
node server.js
```
## 演示
https://github.com/user-attachments/assets/08c8015a-bc57-4c5e-9f3d-4a9d9d310f4c
[更高质量的视频](https://www.youtube.com/watch?v=T883nXqatZ4)。