返回市场
MCP服务器销售力

MCP服务器销售力

作者:tomnagengast4 星标更新:2025-06-05

项目介绍

Salesforce MCP Server

一个模型上下文协议(MCP)服务器,提供AI代理安全访问Salesforce数据和操作的功能。专为销售、市场和执行团队设计,通过自然语言与他们的Salesforce CRM进行交互。

功能

核心能力

  • 🔍 搜索与查询:跨多个对象搜索记录,执行SOQL查询,并进行全局搜索
  • 📖 读取操作:检索特定记录并导航关系
  • 🔒 安全第一:默认以只读模式启动,以便安全测试
  • 🔐 安全认证:集成OAuth 2.0并进行适当的令牌管理
  • ⚡ 错误处理:全面的错误处理,带有详细的反馈信息

安全特性

  • 默认只读:服务器默认以安全的只读模式启动
  • 可配置写入权限:仅在准备就绪时启用写操作,设置SALESFORCE_READ_ONLY_MODE=false
  • 清晰的操作指示器:写工具在描述中明确标记

支持的Salesforce对象

  • 账户:公司和组织记录
  • 联系人:个人联系信息
  • 潜在客户:潜在客户记录
  • 机会:销售管道和交易
  • 案例:客户服务和支持工单
  • 活动:任务和事件

快速开始

🚀 有关完整的安装说明,请参阅SETUP.md

这包括:

  • Salesforce连接应用配置
  • Claude Desktop集成
  • 分步截图和故障排除

安装选项

选项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集成

在您的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"
}

启用写入操作

当您准备好启用写入操作时:

  1. 更新环境:

    # 在您的.env文件中
    SALESFORCE_READ_ONLY_MODE=false
    
  2. 或在Claude Desktop配置中:

    {
      "mcpServers": {
        "salesforce": {
          "command": "node",
          "args": ["/path/to/your/mcp-server-salesforce/dist/index.js"],
          "env": {
            "SALESFORCE_READ_ONLY_MODE": "false",
            // ... 其他环境变量
          }
        }
      }
    }
    
  3. 重启服务器 和 Claude Desktop

使用场景

销售团队

  • 管道管理:"展示本季度关闭的所有机会"
  • 账户研究:"查找Acme Corp的所有联系人及其最近的活动"
  • 潜在客户跟进:"查找昨天贸易展上的所有潜在客户"(只读)或"为昨天贸易展上的所有潜在客户创建任务"(写入模式)

市场团队

  • 活动分析:"展示第四季度数字活动的投资回报率"
  • 潜在客户评分:"查找尚未联系的高分潜在客户"
  • 内容表现:"哪些活动产生了最多的合格潜在客户?"

执行团队

  • 收入预测:"下个季度各地区的管道情况如何?"
  • 绩效指标:"展示本月按关闭收入排名的顶级员工"
  • 客户健康状况:"列出前20个账户及其最近的互动"

开发

脚本

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           # 主服务器入口点

安全性

  • OAuth 2.0:与Salesforce的安全认证
  • 权限尊重:所有操作都尊重Salesforce用户的权限
  • 输入验证:防止SOQL注入并进行输入清理
  • 错误处理:安全的错误消息,不暴露敏感数据

故障排除

常见问题

身份验证失败

  • 验证您的Salesforce凭据
  • 检查您的IP是否被列入Salesforce白名单
  • 确保安全令牌是最新的

权限被拒绝

  • 验证用户是否有适当的对象权限
  • 检查字段级安全性设置
  • 确保配置文件已启用API访问

API限制

  • 在Salesforce设置中监控API使用情况
  • 如需,实施速率限制
  • 考虑使用批量操作处理大量数据集

贡献

  1. 分叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 运行测试和代码检查
  5. 提交拉取请求

许可

MIT许可 - 详情请参阅LICENSE文件。