Token导航 LogoToken导航TokenDH.com
Claude Salesforce MCP Server logo
AI代理stdio官方级别未说明来源级核验

Claude Salesforce MCP Server

MCP Server

一个生产就绪的Salesforce MCP服务器,提供全面的测试执行、详细的失败报告、智能认证和完整的Salesforce API覆盖,用于通用LLM集成。

工具数

17

提示词数

0

GitHub Stars

1

资源数

0
PythonClaudeAI代理Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

AmanNadaf

提供方

AmanNadaf

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 salesforce_mcp_server.py

详细介绍

Salesforce MCP服务器,具有增强的测试执行功能

一款可用于生产的Salesforce MCP(模型上下文协议)服务器,具有全面的测试执行、详细的故障报告、智能身份验证,以及用于通用LLM集成的完整Salesforce API覆盖范围。

✨ 主要特点

🧪 增强测试执行和覆盖

  • 详细故障报告 -行号、堆栈跟踪和错误上下文
  • 全面覆盖分析 -组织范围和特定类别的覆盖指标
  • 智能测试监控 -自动状态检测和结果检索
  • 多种执行方式 -工具API、REST API和基于队列的方法

🔐 智能身份验证

  • 简单的Salesforce后端 -可靠、久经考验的Salesforce客户端
  • 灵活的凭证管理 -具有安全令牌处理的环境变量
  • 连接重试逻辑 -指数回退自动重新连接
  • 会话管理 -具有验证功能的持久连接

📊 全面的Salesforce API覆盖范围

  • SOQL/SOSL查询 -具有智能规范化的完整查询功能
  • DML操作 -创建、读取、更新、删除并验证
  • 元数据管理 -自定义对象和字段的创建/修改
  • 批量操作 -基于CSV的高性能批量处理
  • 测试执行 -完整的Apex测试生命周期管理

🚀 快速开始

1.安装依赖项

pip3 install simple-salesforce python-dotenv requests

2.配置身份验证

创建一个 .env 使用Salesforce配置文件:

SALESFORCE_USERNAME=your_username@company.com
SALESFORCE_PASSWORD=your_password
SALESFORCE_SECURITY_TOKEN=your_security_token
SALESFORCE_INSTANCE_URL=https://your-domain.my.salesforce.com  # Optional

3.运行服务器

# Start MCP server
python3 salesforce_mcp_server.py

# Or run as module
python3 -m salesforce_mcp_server

4.测试设置

测试基本连接:

# Test connection
from salesforce_mcp_server import test_connection
result = test_connection()
print(result['message'])

概述

python3 -m pip install --user --upgrade pip
python3 -m pip install --user requests simple-salesforce python-dotenv
export PATH="$HOME/Library/Python/$(python3 -c 'import sys;print(f\"{sys.version_info.major}.{sys.version_info.minor}\")')/bin:$PATH"
python3 /Users/amnadaf/salesforce-mcp-server/server.py

🧪 增强的测试执行功能

详细故障报告

当测试失败时,获取全面的诊断信息:

🧪 **Apex Test Execution Complete**

📊 **Summary:**
   • Total Tests: 2
   • ✅ Passed: 0  
   • ❌ Failed: 2
   • Success Rate: 0.0%
   • Job ID: 707gL00000BEzFbQAL

❌ **Failed Tests (Detailed):**

**1. ContactManagerTest.testSyncMailingAddress_NoAccountFail**
   📍 **Line:** 17
   ⏱️ **Runtime:** 150ms
   🚨 **Error:** System.DmlException: Insert failed. FIELD_INTEGRITY_EXCEPTION, 
        There's a problem with this country: [BillingCountry]
   📋 **Stack Trace:**
      Class.ContactManagerTest.makeData: line 17, column 1

**2. ContactManagerTest.testSyncMailingAddress_Success**
   📍 **Line:** 17
   🚨 **Error:** System.DmlException: Insert failed. FIELD_INTEGRITY_EXCEPTION,
        There's a problem with this country: [BillingCountry]
   📋 **Stack Trace:**
      Class.ContactManagerTest.makeData: line 17, column 1

📈 **Code Coverage Details:**
   🟢 AccountManager: 100.0% (7/7 lines)
   🔴 ContactManager: 0.0% (0/14 lines)

💡 **Recommendations:**
   • Review failed test details above
   • Check the specific line numbers where failures occurred
   • Fix the underlying code issues causing test failures
   • Re-run tests after making corrections

智能覆盖集成

通过自动故障检测检查覆盖范围:

# After running tests, check coverage to see detailed results
check_test_status_and_coverage(class_names=['ContactManagerTest'])

🛠️ 可用工具(共15个)

测试执行工具(3)

  • run_apex_tests_comprehensive -运行带有详细故障报告的测试
  • check_test_status_and_coverage -获取故障详细信息的覆盖范围
  • get_current_org_coverage -全组织覆盖范围分析

数据查询工具(3)

  • salesforce_query -使用智能规范化执行SOQL查询
  • query_tooling_api_direct -直接使用工具API访问元数据
  • salesforce_connection_test -测试和验证连接

数据操作工具(2)

  • get_object_required_fields -获取验证所需的字段
  • create_records_with_validation -创建具有全面验证的记录

元数据管理工具(6)

  • create_custom_object -使用标准字段创建自定义对象
  • create_custom_field -向对象添加自定义字段
  • update_custom_object -修改对象属性
  • update_custom_field -修改字段属性
  • delete_custom_object -删除自定义对象(带警告)
  • delete_custom_field -删除自定义字段(带警告)

批量操作工具(2)

  • salesforce_bulk_insert_simple -从CSV数据批量插入
  • salesforce_bulk_update_simple -从CSV数据批量更新
  • salesforce_describe_object -获取详细的对象元数据

📋 综合测试执行示例

1. 使用增强的报告运行测试

# Run specific test classes
run_apex_tests_comprehensive(
    class_names=['ContactManagerTest', 'AccountManagerTest'],
    test_level='RunSpecifiedTests',
    code_coverage=True,
    verbose=True
)

输出:

✅ Successfully enqueued 2 test classes!

📋 **Enqueued Tests:**
• ContactManagerTest (Queue ID: 709gL000003EcbdQAC)
• AccountManagerTest (Queue ID: 709gL000003EcbeQAC)

💡 **Monitor Progress:** Check Setup → Apex Test Execution
⏳ **Note:** Tests are now running. Use 'check coverage' to see results once complete.

2. 检查带有详细故障的结果

# Get comprehensive results including failures and coverage
check_test_status_and_coverage(class_names=['ContactManagerTest'])

输出包括:

  • 测试执行总结 带有通过/失败计数
  • 🚨 详细的故障分析 带有行号和堆栈痕迹
  • 📈 代码覆盖率指标 按班级细分
  • 💡 可采取行动的建议 用于解决问题

3. 组织范围覆盖分析

# Get org-wide coverage without running tests
get_current_org_coverage()

输出:

📈 **Current Org Code Coverage**

📊 **Overall Statistics:**
   • Total Classes: 127
   • Overall Coverage: 82.3%
   • Total Lines: 15,847
   • Covered Lines: 13,042
   • Uncovered Lines: 2,805

🟢 **High Coverage (≥85%):** 89 classes
   🟢 AccountManager: 100.0% (156/156 lines)
   🟢 ContactProcessor: 94.2% (243/258 lines)

🔴 **Low Coverage (<75%):** 12 classes  
   🔴 ContactManager: 0.0% (0/14 lines)
   🔴 DataHelper: 45.2% (67/148 lines)

🔧 智能功能

查询规范化

自动修复常见的SOQL问题:

  • COUNT()COUNT(Id) 为了更好的兼容性
  • ✅ 去除 LIMITCOUNT 查询(不支持)
  • ✅ 处理环境变量替换

智能错误处理

  • 🔄 连接重试 指数回退
  • 📝 详细的错误消息 附上下文和建议
  • 🛡️ 安全凭证记录 (隐藏敏感数据)
  • 优美的倒退 跨多种API方法

全面验证

在创建记录之前,请验证:

  • 必填字段 提供
  • 数据类型 匹配字段定义
  • 选择列表值 是有效的选项
  • 字段长度 不要超过限制
  • 格式要求 (日期、电子邮件等)

🏗️ 建筑

清洁模块化设计

salesforce_mcp_server.py
├── 🔐 Authentication & Connection Management
│   ├── initialize_salesforce()       # Smart connection with retry
│   ├── ensure_connection()           # Connection validation  
│   └── test_connection()             # Connection diagnostics
│
├── 🧪 Enhanced Test Execution Engine  
│   ├── run_apex_tests_comprehensive() # Multi-method test execution
│   ├── check_test_status_and_coverage() # Results with failure details
│   ├── get_test_results_for_classes() # Detailed result retrieval
│   └── parse_line_number_from_stack_trace() # Error analysis
│
├── 📊 Coverage Analysis System
│   ├── get_comprehensive_coverage_data() # Multi-source coverage
│   ├── get_current_org_coverage() # Org-wide analysis
│   └── format_comprehensive_test_results() # Rich formatting
│
├── 📝 Data Management Tools
│   ├── salesforce_query() # Smart SOQL execution
│   ├── create_records_with_validation() # Validated record creation
│   ├── get_object_required_fields() # Field requirement analysis
│   └── bulk operations # CSV-based bulk processing
│
├── 🏗️ Metadata Management
│   ├── create_custom_object() # Object creation with standards
│   ├── create_custom_field() # Field creation with validation
│   └── describe_object() # Detailed metadata retrieval
│
└── 🔧 MCP Protocol Integration
    ├── do_list_tools() # Tool discovery and registration
    ├── do_call_tool() # Tool execution with error handling
    └── main() # MCP server event loop

多方法测试执行

智能回退系统,实现最大兼容性:

  1. 🚀 ApexTestQueueItem (主要)-直接基于队列的执行
  2. 🔧 工具API增强 -具有适当有效载荷的先进API
  3. 📊 分析模式 -执行不可用时的信息收集

全面覆盖检索

多个数据源确保完整的覆盖信息:

  1. 🎯 特定工作覆盖范围 -使用AsyncApexJobId工具API
  2. 📈 总覆盖范围 -ApexCodeCoverageAggregate查询
  3. 🔍 详细覆盖范围 -使用方法级数据的ApexCodeCoverage
  4. ⏰ 最近的报道 -基于时间的覆盖率查询

📊 配置选项

环境变量

变量描述必填默认
SALESFORCE_USERNAMESalesforce用户名-
SALESFORCE_PASSWORDSalesforce密码-
SALESFORCE_SECURITY_TOKEN Salesforce 安全令牌✅-
SALESFORCE_INSTANCE_URL自定义实例URL自动检测

测试执行选项

run_apex_tests_comprehensive(
    class_names=['TestClass1', 'TestClass2'],  # Specific classes
    test_level='RunSpecifiedTests',            # Test scope
    async_execution=False,                     # Wait for completion
    code_coverage=True,                        # Include coverage
    verbose=True                               # Detailed output
)

覆盖率分析选项

check_test_status_and_coverage(
    class_names=['MyTestClass']  # Optional: specific classes
)

get_current_org_coverage()  # Org-wide analysis

🧪 测试与验证

连接测试

# Test basic connectivity
python3 -c "
from salesforce_mcp_server import test_connection
result = test_connection()
print(f'Status: {result[\"status\"]}')
print(f'Message: {result[\"message\"]}')
"

查询测试

# Test SOQL execution
python3 -c "
from salesforce_mcp_server import do_call_tool
result = do_call_tool({
    'name': 'salesforce_query',
    'arguments': {'query': 'SELECT COUNT(Id) FROM Account'}
})
print(result)
"

测试执行验证

# Run and check a test class
python3 -c "
from salesforce_mcp_server import run_apex_tests_comprehensive, check_test_status_and_coverage
import time

# Run tests
result = run_apex_tests_comprehensive(class_names=['MyTestClass'])
print('Test Execution:', result['message'])

# Wait and check results  
time.sleep(30)
coverage = check_test_status_and_coverage(class_names=['MyTestClass'])
print('Coverage Results:', coverage['message'])
"

🚀 MCP客户端集成

Claude桌面配置

添加到MCP设置文件中:

{
  "mcpServers": {
    "salesforce": {
      "command": "python3",
      "args": ["salesforce_mcp_server.py"],
      "cwd": "/path/to/your/salesforce-mcp-server",
      "env": {
        "SALESFORCE_USERNAME": "your_username@company.com",
        "SALESFORCE_PASSWORD": "your_password",
        "SALESFORCE_SECURITY_TOKEN": "your_token"
      }
    }
  }
}

在Claude Desktop中的使用

"Run tests for ContactManagerTest and show me detailed failure information"

"Check the code coverage for my org and tell me which classes need improvement"

"Create a new custom object called ProjectTracker with fields for Name, Status, and Due Date"

"Query all Accounts created this month and show me the first 10 results"

🔐 安全功能

凭证保护

  • 屏蔽测井 -敏感数据从不出现在日志中
  • 环境隔离 -凭据存储在 .env 文件
  • 连接验证 -对身份验证问题的即时反馈
  • 会话管理 -自动刷新令牌并重试

错误处理

  • 🛡️ 安全错误消息 -无证书暴露错误
  • 📝 详细诊断 -无敏感数据的丰富上下文
  • 🔄 自动重试 -身份验证失败时的智能重新连接
  • 优雅降级 -功能不可用时的回退

📈 性能优化

智能连接管理

  • 🔄 连接复用 -跨操作的持续会话
  • 惰性初始化 -仅在需要时连接
  • 🧠 连接验证 -手术前快速健康检查
  • 🔁 自动重试 -智能重新连接策略

高效的测试执行

  • 🎯 有针对性的查询 -特定作业结果检索
  • 📊 平行覆盖 -多个覆盖数据源
  • 🏃 队列优化 -高效使用ApexTestQueueItem
  • 💾 结果缓存 -避免多余的API调用

优化批量操作

  • 📦 批量处理 -可配置的批量大小
  • 🔄 CSV流媒体 -内存高效的数据处理
  • API批量使用 -高性能简单销售批量
  • 📈 进度跟踪 -实时运行监控

🆘 故障排除

常见连接问题

# Test connection with detailed logging
PYTHONPATH=. python3 -c "
import logging
logging.basicConfig(level=logging.DEBUG)
from salesforce_mcp_server import test_connection
result = test_connection()
print(result)
"

测试执行问题

  1. 未找到测试 -验证类名是否完全匹配
  2. 权限错误 -确保用户具有测试执行权限
  3. 超时问题 -检查组织性能和测试复杂性
  4. 保险范围缺失 -验证组织中是否启用了代码覆盖率

身份验证故障排除

  1. 无效凭证 -检查用户名、密码和令牌
  2. 安全令牌问题 -如果IP限制更改,则重置令牌
  3. 实例URL问题 -验证自定义域配置
  4. API版本兼容性 -更新到最新支持版本

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 为新功能添加全面的测试
  4. 确保所有测试通过并保持覆盖率
  5. 用示例更新文档
  6. 提交带有详细描述的拉取请求

开发设置

# Clone and setup
git clone https://github.com/your-username/salesforce-mcp-server
cd salesforce-mcp-server

# Install dependencies  
pip3 install -r requirements.txt

# Setup environment
cp .env.example .env
# Edit .env with your credentials

# Run tests
python3 -m pytest tests/ -v

# Test MCP integration
python3 salesforce_mcp_server.py

📝 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🆕 最近的更新

最新功能(生产就绪)

🧪 增强型测试执行引擎

  • 行号提取 -从堆栈跟踪中精确定位错误
  • 详细错误上下文 -带有截断处理的完整错误消息
  • 智能作业检测 -自动发现最近的作业ID
  • 多方法执行 -最大兼容性的回退策略

📊 高级覆盖分析

  • 综合数据源 -工具API+常规API覆盖范围
  • 班级级别细分 -具有洞察力的个人课程覆盖率
  • 方法级别详细信息 -可用时的测试方法覆盖范围
  • 组织范围分析 -完整的组织覆盖分析

🔧 改进的工具架构

  • 增强的错误处理 -更好的带有上下文的错误消息
  • 智能查询规范化 -自动SOQL修复和改进
  • 全面验证 -创建前字段验证,并提供有用的指导
  • 灵活的身份验证 -具有重试逻辑的多种连接策略

🚀 性能和可靠性

  • 连接优化 -智能连接重用和验证
  • 强大的错误恢复 -指数回退自动重试
  • 内存效率 -优化批量操作和数据处理
  • 生产硬化 -全面的日志记录和监控

______________________________________________________________________

⭐ 如果此存储库有助于您将Salesforce与LLM工作流集成,请将其标记为星号!

克劳德salesforce mcp服务器

自定义Python MCP服务器将Claude AI与Salesforce API连接起来,实现自然语言查询、自动化数据管理和智能销售洞察。Claude以对话方式处理SOQL查询,而服务器则处理批量操作、自定义对象和实时同步。提供75%的数据处理速度和AI驱动的CRM自动化。

目录标签

目录标签

PythonClaudeAI代理Salesforce集成本地部署测试执行代码覆盖率API管理LLM集成

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

17

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP