Salesforce数据交互服务

一个用于Salesforce集成的MCP服务器实现,使AI助手能够通过标准化工具与Salesforce数据进行交互。

  • by aiyanbo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aiyanbo/mcp-salesforce

使用说明

Salesforce MCP 服务器

一个用于Salesforce集成的MCP(模型上下文协议)服务器实现,使AI助手能够通过标准化工具与Salesforce数据进行交互。

特点/功能

这个MCP服务器提供了三种强大的工具用于Salesforce集成:

  • 列出对象列出所有可用的Salesforce对象及其元数据
  • 描述对象获取特定Salesforce对象的详细字段信息
  • 执行SOQL查询在您的Salesforce实例上执行SOQL查询

先决条件

  • Python 3.13及以上版本
  • 一个具有API访问权限的Salesforce账户
  • Salesforce安全令牌(请参阅下方的设置说明)

安装

  1. 克隆此存储库:
git clone <repository-url>
cd mcp-salesforce
  1. 使用 uv 创建并激活一个虚拟环境:
uv venv
source .venv/bin/activate  # On Unix/macOS
# or
.venv\Scripts\activate     # On Windows
  1. 安装依赖项:
uv pip install -e .

配置

  1. 复制示例环境文件:
cp .env.example .env
  1. 编辑 .env 并添加您的Salesforce凭据:
SALESFORCE_USERNAME=your_username@example.com
SALESFORCE_PASSWORD=your_password
SALESFORCE_SECURITY_TOKEN=your_security_token

获取您的Salesforce安全令牌

  1. 登录Salesforce
  2. 首选 设置 > 个人设置 > 我的个人信息 > 重置我的安全令牌
  3. 点击 重置安全令牌
  4. 检查您的电子邮件以获取新的安全令牌

使用方法

运行服务器

使用以下任一方法启动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

这将会:

  1. 启动MCP Inspector网页界面
  2. 启动您的Salesforce MCP服务器
  3. 打开一个浏览器窗口,在其中您可以:
    • 查看所有可用工具
    • 使用自定义参数测试每个工具
    • 查看JSON响应
    • 调试任何问题

注: 确保你的 .env 在运行检查器之前,请确保文件已配置有效的Salesforce凭据。

可用工具

1. 列出对象(或:列出物体)

列出您组织中所有可用的Salesforce对象。

返回值:

  • 包含以下内容的字典:
    • objects对象元数据数组,每个元数据包含:
      • name对象的API名称
      • label显示标签
      • custom无论是自定义对象
      • queryable是否可以通过SOQL进行查询
      • searchable是否可搜索
      • createable是否能创造新的纪录
      • updateable记录是否可以更新
      • deletable是否可以删除记录

2. 描述对象

获取特定Salesforce对象的所有字段。

参数:

  • object_name Salesforce对象的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规则:

  1. 不能使用 SELECT * - 您必须明确指定列名
  2. 聚合查询不能使用 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
  • 定期更换你的安全令牌

许可证

[在此添加您的许可证]

做出贡献

[在此添加贡献指南]

支持

对于问题和疑问: