mcpField
S
Salesforce MCP Server

Salesforce MCP Server

本地服务
github.com/jaworjar95数据与分析4271 周前更新

关于 Salesforce MCP Server

Salesforce MCP Server 是一个面向 Salesforce 的 MCP 服务,可供 Claude Desktop、Cline 等 MCP 客户端调用。它提供 17 个工具,覆盖 SOQL/SOSL 查询、记录增删改、Apex 执行与测试、元数据部署等操作。

主要功能

  1. 01SOQL 与 SOSL 查询工具
  2. 02单条与批量记录操作
  3. 03Apex 匿名执行与测试运行
  4. 04元数据组件部署与检索
  5. 05OAuth2 与用户名密码认证
  6. 06SObject 元数据缓存 1 小时

适用场景

  1. 01在 AI 开发工具中查询 Salesforce 数据
  2. 02通过 Agent 批量创建或更新记录
  3. 03部署 Apex 类或 LWC 等元数据组件

MCP 相关

该项目是一个 MCP 服务,将 Salesforce 的 17 个工具暴露给 MCP 客户端调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Salesforce MCP 服务

一个功能全面的 Model Context Protocol(MCP)服务,可为 Claude Desktop、Cline 和其他兼容 MCP 的客户端提供无缝的 Salesforce 集成,适用于 AI 开发工具。

🚀 功能

17 个全面的工具
🔍 查询与搜索工具
  • execute-soql - 执行 SOQL 查询,并自动切换批量模式和分页
  • execute-sosl - 跨多个对象搜索并汇总结果
  • describe-sobject - 提供 SObject 元数据,并进行智能缓存
⚡ Apex 开发工具
  • execute-apex - 执行匿名 Apex 并捕获调试日志
  • run-apex-tests - 运行 Apex 测试并报告覆盖率
  • get-apex-logs - 获取调试日志并进行筛选
📊 数据管理工具
  • create-record - 创建单条或批量记录,并自动切换批量模式
  • get-record - 获取记录并选择字段
  • update-record - 更新单条或批量记录,并进行验证
  • delete-record - 删除单条或批量记录
  • upsert-record - 基于外部 ID 执行插入或更新操作
🔧 元数据工具(基于组件)
  • list-metadata-types - 发现元数据类型
  • deploy-metadata - 从文件或 JSON 部署单个元数据组件(例如 ApexClass、CustomObject)
  • deploy-bundle - 从目录路径部署元数据包(例如 LWC)
  • retrieve-metadata - 检索单个元数据组件,并可选择保存到文件
  • check-deploy-status - 检查部署状态
🔗 连接工具
  • test-connection - 验证连接并监控运行状况
主要功能
  • 🔄 自动切换批量模式 - 智能选择 API,以获得最佳性能
  • 🔐 双重身份验证 - 支持 OAuth2 和用户名/密码
  • ⚡ 智能缓存 - SObject 元数据的 TTL 为 1 小时
  • 🛡️ 类型安全 - 完整的 TypeScript 实现,并进行运行时验证
  • 📝 全面日志记录 - 详细的调试和监控信息
  • 🔍 原始错误透传 - 保留准确的 Salesforce 错误信息以便调试

🚀 安装

如需与 Claude Desktop、Cline、Cursor 等桌面应用配合使用,请添加以下 MCP 服务配置。

在 macOS / Linux 系统上:
用户名/密码身份验证
{
  "mcp.servers": {
    "salesforce": {
      "command": "npx",
      "args": [
        "-y",
        "@jjar/salesforce-mcp-server"
      ],
      "env": {
        "SF_USERNAME": "[email protected]",
        "SF_PASSWORD": "your-password",
        "SF_SECURITY_TOKEN": "",
        "SF_LOGIN_URL": "https://login.salesforce.com"
      },
      "disabled": false,
      "alwaysAllow": [
        "test-connection",
        "execute-soql",
        "describe-sobject",
        "get-record",
        "get-apex-logs",
        "list-metadata-types"
      ]
    }
  }
}
OAuth 2.0 身份验证
{
  "mcp.servers": {
    "salesforce": {
      "command": "npx",
      "args": [
        "-y",
        "@jjar/salesforce-mcp-server"
      ],
      "env": {
        "SF_CLIENT_ID": "your-oauth2-client-id",
        "SF_CLIENT_SECRET": "your-oauth2-client-secret",
        "SF_REFRESH_TOKEN": "your-refresh-token",
        "SF_INSTANCE_URL": "https://yourorg.my.salesforce.com"
      },
      "disabled": false,
      "alwaysAllow": [
        "test-connection",
        "execute-soql",
        "describe-sobject",
        "get-record",
        "get-apex-logs",
        "list-metadata-types"
      ]
    }
  }
}

在 Windows 系统上:
用户名/密码身份验证
{
  "mcp.servers": {
    "salesforce": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@jjar/salesforce-mcp-server"
      ],
      "env": {
        "SF_USERNAME": "[email protected]",
        "SF_PASSWORD": "your-password",
        "SF_SECURITY_TOKEN": "",
        "SF_LOGIN_URL": "https://login.salesforce.com"
      },
      "disabled": false,
      "alwaysAllow": [
        "test-connection",
        "execute-soql",
        "describe-sobject",
        "get-record",
        "get-apex-logs",
        "list-metadata-types"
      ]
    }
  }
}
OAuth 2.0 身份验证
{
  "mcp.servers": {
    "salesforce": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@jjar/salesforce-mcp-server"
      ],
      "env": {
        "SF_CLIENT_ID": "your-oauth2-client-id",
        "SF_CLIENT_SECRET": "your-oauth2-client-secret",
        "SF_REFRESH_TOKEN": "your-refresh-token",
        "SF_INSTANCE_URL": "https://yourorg.my.salesforce.com"
      },
      "disabled": false,
      "alwaysAllow": [
        "test-connection",
        "execute-soql",
        "describe-sobject",
        "get-record",
        "get-apex-logs",
        "list-metadata-types"
      ]
    }
  }
}
配置文件位置
Claude Desktop
  • Windows:%APPDATA%\Claude\claude_desktop_config.json
  • macOS:~/Library/Application Support/Claude/claude_desktop_config.json
Cline(VS Code)
  • Windows:%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
  • macOS:~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  • Linux:~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

⚠️ 重要:添加或修改 MCP 服务配置后,必须重启 VS Code 才能使更改生效。

Cursor
  • Windows:%USERPROFILE%\.cursor\mcp.json
  • macOS:~/.cursor/mcp.json
  • Linux:~/.cursor/mcp.json
#### 工具安全级别

✅ 可自动批准(alwaysAllow)

  • test-connection - 连接验证(只读)
  • execute-soql - SOQL 查询(只读)
  • describe-sobject - 元数据检查(只读)
  • get-record - 获取单条记录(只读)
  • get-apex-logs - 访问调试日志(只读)
  • list-metadata-types - 发现元数据类型(只读)

⚠️ 需要手动批准

  • create-record、update-record、delete-record、upsert-record - 数据修改
  • deploy-metadata - 部署元数据
  • execute-apex、run-apex-tests - 代码执行
  • execute-sosl - 搜索操作(可能会占用大量资源)
  • retrieve-metadata - 检索元数据(可能会产生大量数据)

身份验证

用户名/密码身份验证
  1. 从 Salesforce Setup → Personal Information → Reset Security Token 获取安全令牌(仅当你的 IP 不受信任时才需要)
  2. 按照配置部分所示设置环境变量
  3. 生产环境使用 https://login.salesforce.com,沙盒环境使用 https://test.salesforce.com

💡 安全令牌:仅在 Salesforce 要求连接时才添加安全令牌。若不需要,请将 SF_SECURITY_TOKEN 留空。

OAuth2 身份验证
  1. 在 Salesforce Setup 中创建 Connected App
  2. 配置 OAuth 设置并获取客户端凭据
  3. 使用 OAuth2 流程生成刷新令牌
  4. 按照配置部分所示设置环境变量

🏗️ 架构

核心组件
  • 身份验证管理器 - 支持 OAuth2 和用户名-密码双重身份验证
  • 连接管理器 - 使用单例模式并进行运行状况监控
  • 工具类 - 按功能组织(查询、Apex、数据、元数据)
  • 错误处理器 - 提供包含上下文信息的全面错误格式化
  • 缓存管理器 - 基于 TTL 的缓存,用于优化性能
性能特性
  • 自动切换批量处理 - 对大型操作自动使用 Bulk API
  • 智能缓存 - SObject 元数据缓存 1 小时
  • 连接复用 - 所有操作共用单个连接
  • 轮询优化 - 高效监控长时间运行的操作

🧪 测试

# Test individual tools
node tests/test-query-tools.js
node tests/test-data-tools.js
node tests/test-apex-tools.js
node tests/test-metadata-tools.js

🤝 贡献

  1. Fork 此仓库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 发起 Pull Request

🔗 相关项目

👨‍💻 作者

Jarosław Jaworski

🤖 开发鸣谢

此实现的部分内容是在 Claude Sonnet 4 的协助下,使用 Cline VS Code 扩展开发的,展现了 AI 辅助开发在创建全面开发者工具方面的强大能力。

📄 许可证

此项目采用 MIT License 许可,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。