一个模型上下文协议(MCP)服务器,提供AI代理安全访问Salesforce数据和操作的功能。专为销售、市场和执行团队设计,通过自然语言与他们的Salesforce CRM进行交互。
SALESFORCE_READ_ONLY_MODE=false🚀 有关完整的安装说明,请参阅SETUP.md
这包括:
选项1:从GitHub使用NPX
npx github:tomnagengast/mcp-server-salesforce
选项2:克隆并构建
git clone https://github.com/tomnagengast/mcp-server-salesforce.git
cd mcp-server-salesforce
npm install
npm run build
配置:请参阅SETUP.md,获取完整的安装说明,包括Salesforce连接应用配置。
创建一个.env文件,包含以下配置:
# Salesforce配置
SALESFORCE_LOGIN_URL=https://login.salesforce.com
SALESFORCE_CLIENT_ID=your_connected_app_client_id
SALESFORCE_CLIENT_SECRET=your_connected_app_client_secret
SALESFORCE_USERNAME=your_salesforce_username
SALESFORCE_PASSWORD=your_salesforce_password
SALESFORCE_SECURITY_TOKEN=your_security_token
# 对于沙盒(可选)
# SALESFORCE_LOGIN_URL=https://test.salesforce.com
# 服务器配置
PORT=3000
LOG_LEVEL=info
# 安全 - 服务器默认以只读模式启动
SALESFORCE_READ_ONLY_MODE=true
🔒 安全提示:服务器默认以只读模式启动。仅在您对写操作感到舒适时,才将
SALESFORCE_READ_ONLY_MODE设置为false。
在您的Claude Desktop配置中添加以下内容(在macOS上位于~/Library/Application Support/Claude/claude_desktop_config.json):
对于NPX安装:
{
"mcpServers": {
"salesforce": {
"command": "npx",
"args": ["github:tomnagengast/mcp-server-salesforce"],
"env": {
"SALESFORCE_CLIENT_ID": "your_client_id",
你的客户端ID,
"SALESFORCE_CLIENT_SECRET": "your_client_secret",
你的客户端密钥,
"SALESFORCE_USERNAME": "your_username",
你的用户名,
"SALESFORCE_PASSWORD": "your_password",
你的密码,
"SALESFORCE_SECURITY_TOKEN": "your_token",
你的安全令牌,
"SALESFORCE_READ_ONLY_MODE": "true"
}
}
}
}
对于本地安装:
{
"mcpServers": {
"salesforce": {
"command": "node",
"args": ["/path/to/your/mcp-server-salesforce/dist/index.js"],
"cwd": "/path/to/your/mcp-server-salesforce"
}
}
}
请参阅SETUP.md,获取完整的集成说明。
# 开发模式,支持热重载
npm run dev
# 生产模式
npm run start
search_records - 跨多个Salesforce对象搜索
{
"query": "Acme Corp",
"objects": ["Account", "Contact", "Lead"],
"limit": 20
}
soql_query - 执行自定义SOQL查询
{
"query": "SELECT Id, Name, Email FROM Contact WHERE Account.Name = 'Acme Corp'"
}
global_search - 全局搜索所有对象
{
"searchTerm": "john@example.com",
"limit": 20
}
get_record - 检索特定记录
{
"objectType": "Account",
"recordId": "001XXXXXXXXXX",
"fields": ["Name", "Type", "Industry"]
}
get_related_records - 获取相关记录
{
"objectType": "Account",
"recordId": "001XXXXXXXXXX",
"relationship": "Contacts",
"limit": 20
}
get_record_history - 查看字段历史
{
"objectType": "Opportunity",
"recordId": "006XXXXXXXXXX",
"limit": 20
}
SALESFORCE_READ_ONLY_MODE=false)⚠️ 这些操作会修改您的Salesforce数据。仅在您对服务器的行为感到舒适时启用。
create_record - 创建新记录
{
"objectType": "Contact",
"data": {
"FirstName": "John",
"LastName": "Doe",
"Email": "john@example.com"
}
}
update_record - 更新现有记录
{
"objectType": "Account",
"recordId": "001XXXXXXXXXX",
"data": {
"Phone": "+1-555-0123"
}
}
delete_record - 删除记录
{
"objectType": "Lead",
"recordId": "00QXXXXXXXXXX"
}
当您准备好启用写入操作时:
更新环境:
# 在您的.env文件中
SALESFORCE_READ_ONLY_MODE=false
或在Claude Desktop配置中:
{
"mcpServers": {
"salesforce": {
"command": "node",
"args": ["/path/to/your/mcp-server-salesforce/dist/index.js"],
"env": {
"SALESFORCE_READ_ONLY_MODE": "false",
// ... 其他环境变量
}
}
}
}
重启服务器 和 Claude Desktop
npm run build # 构建TypeScript
npm run dev # 开发模式,支持热重载
npm run start # 启动生产服务器
npm run lint # 运行ESLint
npm run test # 运行测试(待实现)
src/
├── auth/ # Salesforce认证
├── tools/ # MCP工具实现
│ ├── search-tools.ts # 搜索和查询工具
│ ├── crud-tools.ts # CRUD操作
│ └── relationship-tools.ts # 关系导航
├── types/ # TypeScript类型定义
├── utils/ # 工具和辅助函数
│ ├── config.ts # 配置管理
│ ├── logger.ts # 日志工具
│ └── error-handler.ts # 错误处理
└── index.ts # 主服务器入口点
身份验证失败
权限被拒绝
API限制
MIT许可 - 详情请参阅LICENSE文件。