返回市场
销售力-MCP服务器

销售力-MCP服务器

作者:jaworjar9531 星标更新:2025-06-19

项目介绍

Salesforce MCP Server

一个全面的模型上下文协议(MCP)服务器,提供与Salesforce无缝集成的功能,适用于像Claude Desktop、Cline和其他兼容MCP客户端的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 - 部署单个元数据组件(如ApexClass、CustomObject),从文件或JSON中部署
  • deploy-bundle - 部署元数据包(如LWC),从目录路径中部署
  • retrieve-metadata - 检索单个元数据组件,可选保存到文件
  • check-deploy-status - 检查部署状态

🔗 连接工具

  • test-connection - 连接验证和健康监控

主要能力

  • 🔄 自动批量切换 - 智能选择API以实现最佳性能
  • 🔐 双重认证 - 支持OAuth2和用户名/密码
  • ⚡ 智能缓存 - SObject元数据缓存1小时
  • 🛡️ 类型安全 - 完整的TypeScript实现,运行时验证
  • 📝 综合日志 - 详细的调试和监控
  • 🔍 原始错误暴露 - 保留精确的Salesforce错误用于调试

🚀 安装

要在桌面应用程序(如Claude Desktop、Cline、Cursor等)中使用,请添加以下MCP服务器配置。

在macOS/Linux系统上:

<details> <summary><strong>用户名/密码认证</strong></summary>
{
  "mcp.servers": {
    "salesforce": {
      "command": "npx",
      "args": [
        "-y",
        "@jjar/salesforce-mcp-server"
      ],
      "env": {
        "SF_USERNAME": "your-username@company.com",
        "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"
      ]
    }
  }
}
</details> <details> <summary><strong>OAuth 2.0认证</strong></summary>
{
  "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"
      ]
    }
  }
}
</details>

在Windows系统上:

<details> <summary><strong>用户名/密码认证</strong></summary>
{
  "mcp.servers": {
    "salesforce": {
      "command": "cmd",
      "args": [
        "/c",
        "npx",
        "-y",
        "@jjar/salesforce-mcp-server"
      ],
      "env": {
        "SF_USERNAME": "your-username@company.com",
        "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"
      ]
    }
  }
}
</details> <details> <summary><strong>OAuth 2.0认证</strong></summary>
{
  "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"
      ]
    }
  }
}
</details>

配置文件位置

<details> <summary>Claude Desktop</summary>
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
</details> <details> <summary>Cline (VS Code)</summary>
  • 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才能使更改生效。

</details> <details> <summary>Cursor</summary>
  • Windows: %USERPROFILE%\.cursor\mcp.json
  • macOS: ~/.cursor/mcp.json
  • Linux: ~/.cursor/mcp.json
</details>

工具安全级别

✅ 自动批准安全 (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设置中获取您的安全令牌 → 个人信息 → 重置安全令牌(仅当IP未被信任时需要)
  2. 如配置部分所示设置环境变量
  3. 使用https://login.salesforce.com进行生产环境或https://test.salesforce.com进行沙盒环境

💡 安全令牌:只有当Salesforce要求连接时才添加安全令牌。如果不需要,请留空SF_SECURITY_TOKEN

OAuth2认证

  1. 在Salesforce设置中创建一个已连接的应用程序
  2. 配置OAuth设置并获取客户端凭证
  3. 使用OAuth2流程生成刷新令牌
  4. 如配置部分所示设置环境变量

🏗️ 架构

核心组件

  • 认证管理器 - 支持双重OAuth2/用户名-密码
  • 连接管理器 - 单例模式,带有健康监控
  • 工具类 - 按功能组织(查询、Apex、数据、元数据)
  • 错误处理器 - 综合错误格式化,附带上下文
  • 缓存管理器 - 基于TTL的缓存,优化性能

性能特征

  • 自动批量切换 - 对大型操作自动使用批量API
  • 智能缓存 - SObject元数据缓存1小时
  • 连接复用 - 所有操作共用单个连接
  • 轮询优化 - 高效监控长时间运行的操作

🧪 测试

# 测试各个工具
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. 分叉仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m '添加精彩功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开Pull Request

🔗 相关项目

👨‍💻 作者

Jarosław Jaworski

🤖 开发贡献

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

📄 许可

此项目采用MIT许可 - 查看LICENSE文件了解详情。