Salesforce TypeScript连接器

一个用于Salesforce集成的TypeScript实现的Model Context Protocol (MCP)服务器,允许LLM通过SOQL查询、SOSL搜索和CRUD操作与Salesforce数据交互。

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

使用说明

MCP Salesforce TypeScript 连接器

用于Salesforce集成的模型上下文协议(MCP)服务器的TypeScript实现,允许LLM通过SOQL查询、SOSL搜索和CRUD操作与Salesforce数据交互。

特性

  • 🔐 简化密码验证:安全OAuth 2.0资源所有者密码凭据流
  • 📊 SOQL和SOSL:对Salesforce执行查询和搜索
  • 🔍 元数据访问:检索对象字段、标签和类型
  • ✏️ CRUD操作:创建、读取、更新和删除记录
  • 🛠️ 工具API:执行工具API请求
  • ⚡ Apex REST:执行Apex REST请求
  • 🌐 REST API:直接对Salesforce进行REST API调用
  • 🐳 Docker就绪:无硬编码值,可通过环境变量完全配置
  • 🔄 令牌刷新:长时间运行的会话的自动令牌刷新

可用工具

  • authenticate_password -使用OAuth的用户名/密码进行身份验证
  • run_soql_query -执行SOQL查询
  • run_sosl_search -执行SOSL搜索
  • get_object_fields -获取Salesforce对象的元数据
  • get_record -按ID检索特定记录
  • create_record -创建新记录
  • update_record -更新现有记录
  • delete_record -删除记录
  • tooling_execute -执行工具API请求
  • apex_execute -执行Apex REST请求
  • restful -直接调用REST API

Docker快速入门

先决条件

  1. 在Salesforce中创建互联应用程序:

    • 转到设置→ Apps → 应用程序管理器→ 新连接的应用程序
    • 填写基本信息(应用程序名称、API名称、联系邮箱)
    • 启用OAuth设置
    • 设置回调URL: http://localhost:8080/callback (必需但未使用)
    • 选择OAuth作用域:
      • 访问您的基本信息(id、个人资料、电子邮件、地址、电话)
      • 随时代表您执行请求(refresh_token、offline_access)
      • 访问和管理您的数据(api)
    • 保存并记下消费者密钥和消费者密码
  2. 获取您的安全令牌:

    • 转到设置→ 个人信息→ 重置安全令牌
    • 检查您的电子邮件以获取新的安全令牌

使用Docker镜像

拉取并运行最新的Docker镜像:

# Pull the image
docker pull steffensbola/salesforce-mcp-ts:latest

# Run with your credentials
docker run -p 3000:3000 \
  -e SALESFORCE_CLIENT_ID=your_consumer_key \
  -e SALESFORCE_CLIENT_SECRET=your_consumer_secret \
  -e SALESFORCE_USERNAME=your_username@domain.com \
  -e SALESFORCE_PASSWORD=your_password \
  -e SALESFORCE_SECURITY_TOKEN=your_security_token \
  -e SALESFORCE_SANDBOX=true \
  steffensbola/salesforce-mcp-ts:latest

MCP配置

使用Docker镜像的VS代码

添加到您的 .vscode/mcp.json:

{
  "servers": {
    "salesforce": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "SALESFORCE_CLIENT_ID=your_consumer_key",
        "-e", "SALESFORCE_CLIENT_SECRET=your_consumer_secret",
        "-e", "SALESFORCE_USERNAME=your_username@domain.com",
        "-e", "SALESFORCE_PASSWORD=your_password",
        "-e", "SALESFORCE_SECURITY_TOKEN=your_token",
        "-e", "SALESFORCE_SANDBOX=true",
        "steffensbola/salesforce-mcp-ts:latest"
      ]
    }
  }
}

您还可以使用卷来挂载配置文件,而不是传递环境变量:

{
  "servers": {
    "salesforce": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-v", "${workspaceFolder}/.env:/app/.env",
        "steffensbola/salesforce-mcp-ts:latest"
      ]
    }
  }
}

使用Docker镜像的Claude Desktop

添加到您的 claude_desktop_config.json:

{
  "mcpServers": {
    "salesforce": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e", "SALESFORCE_CLIENT_ID=your_consumer_key",
        "-e", "SALESFORCE_CLIENT_SECRET=your_consumer_secret",
        "-e", "SALESFORCE_USERNAME=your_username@domain.com",
        "-e", "SALESFORCE_PASSWORD=your_password",
        "-e", "SALESFORCE_SECURITY_TOKEN=your_token",
        "-e", "SALESFORCE_SANDBOX=true",
        "steffensbola/salesforce-mcp-ts:latest"
      ]
    }
  }
}

环境变量

服务器需要以下环境变量:

必需(OAuth身份验证)

  • SALESFORCE_CLIENT_ID -从您的互联应用中获取消费者密钥
  • SALESFORCE_CLIENT_SECRET -来自互联应用的消费者秘密
  • SALESFORCE_USERNAME -您的Salesforce用户名
  • SALESFORCE_PASSWORD -您的Salesforce密码
  • SALESFORCE_SECURITY_TOKEN -您的Salesforce安全令牌

可选的

  • SALESFORCE_SANDBOX -设置为 "true" 对于沙盒, "false" 用于生产(默认值: "false")

替代方案(直接令牌身份验证)

代替用户名/密码,您可以使用:

  • SALESFORCE_ACCESS_TOKEN -直接访问令牌
  • SALESFORCE_INSTANCE_URL -Salesforce实例URL(例如。, https://your-instance.my.salesforce.com)

向后兼容

服务器还支持替换变量名:

  • SF_CONSUMER_KEY / SF_CONSUMER_SECRET
  • SF_USERNAME / SF_PASSWORD / SF_SECURITY_TOKEN

使用Docker Compose

  1. 创建一个 .env 包含环境变量的文件:
SALESFORCE_CLIENT_ID=your_consumer_key
SALESFORCE_CLIENT_SECRET=your_consumer_secret
SALESFORCE_USERNAME=your_username@domain.com
SALESFORCE_PASSWORD=your_password
SALESFORCE_SECURITY_TOKEN=your_token
SALESFORCE_SANDBOX=true
DOCKER_HUB_USERNAME=steffensbola
  1. 使用Docker Compose运行:
docker-compose up -d

例子

使用工具

连接后,您可以通过MCP客户端使用这些工具:

身份验证:

Please authenticate with Salesforce using my credentials

查询数据:

Run this SOQL query: SELECT Id, Name, Industry FROM Account WHERE Industry = 'Technology' LIMIT 10

搜索:

Search for contacts named "John" using SOSL

获取元数据:

Get all the fields for the Contact object

创建记录:

Create a new Account with Name "Test Company" and Industry "Technology"

故障排除

常见问题

  1. 认证失败

    • 验证凭据是否正确
    • 检查连接的应用程序OAuth范围包括“访问和管理您的数据(api)”
    • 确保安全令牌是最新的(必要时重置)
    • 验证沙盒设置是否与您的组织类型匹配
  2. 容器无法启动

    • 确保提供CLIENT_ID和CLIENT_SECRET
    • 检查是否设置了所有必需的环境变量
    • 验证Docker是否有权拉取镜像
  3. 网络错误

    • 检查互联网连接
    • 验证Salesforce服务状态
    • 检查防火墙设置是否允许出站HTTPS连接

调试模式

对于详细日志记录,请添加调试环境变量:

docker run -e DEBUG=true \
  -e SALESFORCE_CLIENT_ID=... \
  # ... other variables
  steffensbola/salesforce-mcp-ts:latest

贡献

看 贡献.md 有关以下信息:

  • 项目架构和开发设置
  • 从源代码运行
  • 贡献指南和拉取请求流程

许可证

MIT许可证-请参阅 许可证 文件以获取详细信息。

链接