Salesforce MCP服务器

一个轻量级的Model Context Protocol (MCP)服务器,用于在Claude Desktop中快速登录Salesforce、运行SOQL查询、部署元数据以及创建/更新Apex/LWC代码。

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

使用说明

Salesforce MCP服务器——迈里迪斯(Aethereus)

“如果你的法学硕士可以 实际上 Salesforce做什么?”
这个回购规模很小 模型上下文协议(MCP) 插入的服务器 克劳德桌面 所以你可以 登录, 运行SOQL, 部署元数据,以及 Apex/LWC船 --快。引擎盖下的专业,有点✨混乱善良✨ 表面上。

  • 初学者友好:复制→ 粘贴→ go.
  • 精益生产:OAuth、部署轮询、幂等异常。
  • 零绒毛:你问,工具运行。没有秘密的握手。 😎

✨ 功能(一目了然)

  • 🔐 一键OAuth (浏览器重定向)到 Prod/沙盒/自定义域
  • 🧰 方便的工具:SOQL、对象/字段异常、Apex+LWC创建/更新、部署状态
  • ⚡️ 克劳德准备好了: --mcp-stdio 烤熟的
  • 🧹 最低存款:Python 3.11+,就是这样

🧪 快速入门-macOS/Linux

# 1) Clone
git clone https://github.com/niteshsinwar/sfmcp && cd sfmcp

# 2) Create & activate venv

#first check python version:
python --version
# Make sure the the python version is greater then  or equal to 3.11
python -m venv venv
source venv/bin/activate

# 3) Install deps
pip install -r requirements.txt

# 4) (Optional) Test run (stdio mode for Claude)
python -m app.main --mcp-stdio

添加到克劳德桌面(2次点击,1次粘贴)

克劳德桌面→ 设置→ 开发者→ 编辑配置,然后粘贴(交换绝对路径):

{
  "mcpServers": {
    "salesforce-mcp-server-local": {
      "command": "/bin/bash",
      "args": [
        "-lc",
        "cd '/ABS/PATH/TO/sfmcp' && source venv/bin/activate && python -m app.main --mcp-stdio"
      ]
    }
  }
}

重新启动克劳德桌面。(是的,经典的“关闭并重新打开”。)


🪟 快速入门--Windows(命令提示符)

# 1) Clone
git clone https://github.com/niteshsinwar/sfmcp
cd sfmcp

# 2) Create & activate venv
#first check python version:
python --version
# Make sure the the python version is greater then  or equal to 3.11
python -m venv venv
venv\Scripts\activate

# 3) Install deps
pip install -r requirements.txt

# 4) (Optional) Test run
python -m app.main --mcp-stdio

Windows上的Claude配置

克劳德桌面→ 设置→ 开发者→ 编辑配置:

{
  "mcpServers": {
    "salesforce-mcp-server-local": {
      "command": "C:\\to\\your\\actual\\path\\sfmcp\\start_mcp.bat"
    }
  }
}

🕹 在Claude中使用它(有趣的部分)

  1. 在Claude聊天中,键入: “登录Salesforce产品” (或 沙盒 / 定制).
  2. 浏览器弹出→ 登录→ 允许.
  3. 回到克劳德,像向导一样运行工具:

例子

  • “运行SOQL: SELECT Id, Name FROM Account LIMIT 5”
  • “创建文本字段 Customer_Code__c (长度50)暂记”
  • “创建/更新Apex类 HelloWorld”
  • “创建/更新LWC helloWorldCard”

一次性典型流量

- salesforce_production_login
- salesforce_auth_status
- upsert_custom_field (Account.Customer_Code__c, type=Text, length=50)
- execute_soql_query (SELECT DurableId FROM FieldDefinition WHERE EntityDefinition.QualifiedApiName='Account' AND QualifiedApiName='Customer_Code__c')

🧩 内置工具

这些自动注册服务器启动:

工具 你为什么关心
salesforce_production_login OAuth到 生产环境 通过浏览器。
salesforce_sandbox_login OAuth到 沙盒 (test.salesforce.com).
salesforce_custom_login OAuth到a 自定义域 org
salesforce_logout 清除活动会话(礼貌地)。
salesforce_auth_status 显示当前会话+活动路由。
execute_soql_query 运行SOQL。你知道你想
get_metadata_deploy_status 轮询部署(支持 includeDetails).
fetch_object_metadata sObject describe 快速查看。
upsert_custom_object 创建/更新 自定义对象.
fetch_custom_field 检查 工具字段定义 先(新鲜)然后 describe().
upsert_custom_field 在上创建/更新字段 标准/定制 物体。
fetch_apex_class 获取Apex(body+meta)。
create_apex_class 部署新的Apex类。
upsert_apex_class 创建或更新,幂等。
fetch_lwc_component 阅读LWC捆绑包和资源。
create_lwc_component 构建新的LWC(html/js/xml/css)。
upsert_lwc_component 安全更新LWC捆绑包。

🎯 演示场景(E2E健全性)

python -m test.run_dynamic_scenarios --target prod --user "your.user@domain.com" --inputs test/scenario_inputs.json --verbose

它的作用:
创建对象→ 添加字段→ 创建/更新Apex→ 创建/更新LWC→ 民意调查部署→ 取东西。
结果:一边喝咖啡,一边看着工作完成。

⚠️ 重要提示:
当你添加一个 新工具 或修改现有功能,您 必须:

  1. 🧪 将您的工具添加到测试场景中 在……里面 test/scenario_inputs.json
  2. 🔍 运行完整的测试套件 确保一切都能端到端地工作
  3. ✅ 验证无回归 在提交PR之前

这个E2E测试是我们的安全网——把它当作生产验证!


🤝 贡献(带上你的大脑)

🚨 测试第一规则:
在您考虑提交PR之前:

  1. 📝 将新工具/功能添加到 test/scenario_inputs.json
  2. 🏃‍♂️ 运行测试套件: python -m test.run_dynamic_scenarios --target sandbox --user "your.test@domain.com" --inputs test/scenario_inputs.json --verbose
  3. ✅ 确保所有测试通过 --没有例外,没有“它在我的机器上工作”

贡献指南:

  • 想法/错误 → GitHub问题(clear repro=即时业力)。
  • 公共关系 → 小而专注,如果你改变了行为,就要进行测试。
  • 新工具? 调整形状:
    • 名称和意图
    • 输入/输出JSON
    • 误差模型
    • Claude的示例提示
    • 测试场景 演示工具的工作原理

路线图(发送PR):

  • 带覆盖率摘要的Apex测试运行器
  • 配置文件/权限集帮助程序
  • 健康检查

如果这为您节省了一个小时,请在回购中加星⭐.