使用说明
Salesforce MCP 服务器
一个用于Salesforce集成的MCP(模型上下文协议)服务器实现,使AI助手能够通过标准化工具与Salesforce数据进行交互。
特点/功能
这个MCP服务器提供了三种强大的工具用于Salesforce集成:
- 列出对象列出所有可用的Salesforce对象及其元数据
- 描述对象获取特定Salesforce对象的详细字段信息
- 执行SOQL查询在您的Salesforce实例上执行SOQL查询
先决条件
- Python 3.13及以上版本
- 一个具有API访问权限的Salesforce账户
- Salesforce安全令牌(请参阅下方的设置说明)
安装
- 克隆此存储库:
git clone <repository-url>
cd mcp-salesforce
- 使用 uv 创建并激活一个虚拟环境:
uv venv
source .venv/bin/activate # On Unix/macOS
# or
.venv\Scripts\activate # On Windows
- 安装依赖项:
uv pip install -e .
配置
- 复制示例环境文件:
cp .env.example .env
- 编辑
.env并添加您的Salesforce凭据:
SALESFORCE_USERNAME=your_username@example.com
SALESFORCE_PASSWORD=your_password
SALESFORCE_SECURITY_TOKEN=your_security_token
获取您的Salesforce安全令牌
- 登录Salesforce
- 首选 设置 > 个人设置 > 我的个人信息 > 重置我的安全令牌
- 点击 重置安全令牌
- 检查您的电子邮件以获取新的安全令牌
使用方法
运行服务器
使用以下任一方法启动MCP服务器:
# Method 1: Run directly with Python
python main.py
# Method 2: Use the installed command
mcp-salesforce
# Method 3: Run with uv (recommended)
uv run mcp-salesforce
使用MCP Inspector进行测试
MCP Inspector 是一个强大的工具,用于测试和调试您的 MCP 服务器。它提供了一个交互式界面,让您能够探索可用的工具并使用不同的参数进行测试。
方法1:使用mcp-salesforce命令运行uv(推荐)
npx @modelcontextprotocol/inspector uv run mcp-salesforce
方法2:直接使用Python运行UV(这里UV可能指某种工具或脚本,具体含义需根据上下文确定)
npx @modelcontextprotocol/inspector uv run python main.py
这将会:
- 启动MCP Inspector网页界面
- 启动您的Salesforce MCP服务器
- 打开一个浏览器窗口,在其中您可以:
- 查看所有可用工具
- 使用自定义参数测试每个工具
- 查看JSON响应
- 调试任何问题
注: 确保你的 .env 在运行检查器之前,请确保文件已配置有效的Salesforce凭据。
可用工具
1. 列出对象(或:列出物体)
列出您组织中所有可用的Salesforce对象。
返回值:
- 包含以下内容的字典:
objects对象元数据数组,每个元数据包含:name对象的API名称label显示标签custom无论是自定义对象queryable是否可以通过SOQL进行查询searchable是否可搜索createable是否能创造新的纪录updateable记录是否可以更新deletable是否可以删除记录
2. 描述对象
获取特定Salesforce对象的所有字段。
参数:
object_nameSalesforce对象的API名称(例如,“Account”、“Contact”、“CustomObject__c”)
返回:
- 包含以下内容的词典:
name对象API名称fields字段定义数组,其中包含:name字段API名称label字段显示标签type数据类型(字符串、数字、日期、选择列表等)length,precision,scale尺寸限制required该字段是否为必填项unique值是否必须唯一createable,updateable字段权限calculated无论是公式字段defaultValue该字段的默认值picklistValues可用值(用于下拉列表字段)referenceTo引用对象(用于查找/主从字段)
3. 执行SOQL查询
执行SOQL(Salesforce对象查询语言)查询。
参数:
query(字符串):SOQL 查询字符串(例如,'SELECT Id, Name FROM Account LIMIT 10')
返回值:
- 包含以下内容的字典:
query执行的SOQL查询字符串rows包含查询字段的记录数组row_count返回的记录总数columns结果集中的列名数组
重要的SOQL规则:
- 不能使用 SELECT * - 您必须明确指定列名
- 聚合查询不能使用 LIMIT - 使用 COUNT、SUM、AVG、MIN、MAX 的查询不能包含 LIMIT 子句
示例查询:
-- Get first 10 accounts
SELECT Id, Name, Industry FROM Account LIMIT 10
-- Get contacts with filters
SELECT Id, FirstName, LastName, Email FROM Contact WHERE Email != null LIMIT 20
-- Join query (using relationship)
SELECT Id, Name, Owner.Name FROM Account WHERE CreatedDate = TODAY
发展
项目结构
mcp-salesforce/
├── main.py # Main MCP server implementation
├── pyproject.toml # Project configuration and dependencies
├── .env.example # Example environment variables
├── .env # Your actual credentials (git-ignored)
└── README.md # This file
依赖项
- fastmcp构建MCP服务器的框架
- **simple-salesforce(可译为“简易Salesforce库”或根据上下文简化为“Salesforce简易工具”)**Salesforce REST API的Python客户端
- **python-dotenv(用于加载环境变量的Python库)**从.env文件加载环境变量
添加到Claude Desktop
要在Claude Desktop中使用此MCP服务器,请在您的Claude Desktop配置中添加以下内容:
MacOS(苹果电脑操作系统): ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"salesforce": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/mcp-salesforce",
"run",
"mcp-salesforce"
]
}
}
}
替换 /absolute/path/to/mcp-salesforce 替换为您的项目目录的实际路径。
使用Python直接进行替代配置:
{
"mcpServers": {
"salesforce": {
"command": "uv",
"args": [
"--directory",
"/absolute/path/to/mcp-salesforce",
"run",
"python",
"main.py"
]
}
}
}
错误处理
该服务器具备全面的错误处理功能:
- 缺少凭据如果环境变量未设置,则显示明确的错误信息
- 认证错误Salesforce API认证失败报告
- 无效查询SOQL 语法错误会返回带有帮助信息的提示
- API限制遵守Salesforce API速率限制
安全注意事项
- 永远不要把你的
.env将文件提交到版本控制系统 - 确保您的Salesforce安全令牌安全无虞
- 考虑在生产环境中使用 OAuth 2.0
- 定期更换你的安全令牌
许可证
[在此添加您的许可证]
做出贡献
[在此添加贡献指南]
支持
对于问题和疑问:
- 检查一下 simple-salesforce 文档
- 评论 Salesforce API 文档
- 在该仓库中打开一个问题(或:提交一个问题)
