Salesforce LLM代理集成服务

通过Model Context Protocol (MCP)实现Salesforce组织与LLM代理之间的端到端集成,提供REST操作工具和资源。

  • by Gianloko
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 Gianloko/sf-mcp-server

使用说明

Salesforce MCP服务器

此存储库显示 Salesforce组织和LLM代理之间的端到端管道 使用 模型上下文协议(MCP).

  • server.py --在上运行的FastMCP服务器本地主机 将Salesforce的核心REST操作公开为MCP 工具 和 资源.
  • agent.py --一个GPT-4驱动的助手,可以自动发现这些工具(通过SSE或流式HTTP),并在需要时调用它们。

##目录

  1. 先决条件
  2. 文件夹布局
  3. Salesforce Connected‑App设置
  4. 环境变量
  5. 快速启动
  6. 测试服务器
  7. 故障排除
  8. 部署到生产环境
  9. 许可证

##先决条件

工具/帐户 为什么需要它
Python 3.11+ FastMCP/OpenAI代理的语言功能和轮子
Salesforce组织 (prod或sandbox) MCP服务器将读取/写入数据的位置
OpenAI帐户和API密钥 代理在GPT-4-o或任何具有功能的模型上运行
(可选) uv 超快Python包管理器(可替代 pip)

##文件夹布局

salesforce-mcp-demo/
├── server.py            # FastMCP server (localhost)
├── agent.py             # GPT‑4o agent
├── requirements.txt     # Python deps
├── .env.example         # copy → .env, add secrets
└── README.md            # this doc

##Salesforce Connected‑App设置

  1. 安装程序→ 应用程序→ 应用程序管理器→ 新连接的应用程序

  2. OAuth设置

    • 启用 OAuth 2.0 &选择 客户端凭据 (或JWT Bearer)。
    • 添加 api 范围。
  3. 点击 保存,然后复制 消费者密钥 & 消费者秘密.

  4. 在...之下 管理→ 编辑策略

    • 允许用户 → 管理员批准的用户是预先授权的
    • 指定锁定 集成用户 权限集。

🛡️最低特权很重要。 仅允许集成用户访问您希望LLM触摸的对象和字段。


##环境变量 创建 .env 从模板中选择并填写空白:

# ── Salesforce ───────────────────────────────
SF_CLIENT_ID=
SF_CLIENT_SECRET=
SF_TOKEN_URL=https://login.salesforce.com/services/oauth2/token   # sandbox? use https://test.salesforce.com/...
SF_API_VERSION=60.0

# ── OpenAI ───────────────────────────────────
OPENAI_API_KEY=sk‑...
OPENAI_MODEL=gpt-4o-mini      # any model that supports function calling

##快速启动

# 1 · clone & enter folder
$ git clone https://github.com/your‑org/salesforce‑mcp‑demo.git
$ cd salesforce‑mcp‑demo

# 2 · create / activate virtual‑env
$ python -m venv .venv && source .venv/bin/activate   # PowerShell: .\.venv\Scripts\activate

# 3 · install deps (pip or uv)
$ pip install -r requirements.txt
#  or : uv pip install -r requirements.txt

# 4 · copy env file & add secrets
$ cp .env.example .env && nano .env

# 5 · start the MCP client (this will start also mcp-server as a subprocess)
$ py mcp-agent.py

如果一切都连接好了,你会看到这样的线条:

=== Agent reply ===
Here are some Leads:

1. **Bertha Boxer**
   - Company: Farmers Coop. of Florida
   - Status: Working - Contacted

2. **Phyllis Cotton**
   - Company: Abbott Insurance
   - Status: Open - Not Contacted

3. **Jeff Glimpse**
   - Company: Jackson Controls
   - Status: Open - Not Contacted

4. **Mike Braund**
   - Company: Metropolitan Health Services
   - Status: Open - Not Contacted

5. **Patricia Feager**
   - Company: International Shipping Co.
   - Status: Working - Contacted

##部署到生产环境

  1. Dockise (见评论 Dockerfile 在repo中)并推送到Render/Fly.io/Cloud Run。
  2. 带有API网关的前部 (NGINX、AWS ALB、Cloud Armor)用于TLS、速率限制、WAF。
  3. 旋转令牌 --切换到OAuth 2.0 JWT承载或具有短期令牌的客户端凭据流。
  4. 可观测性 --记录每个 tool.invoke Salesforce事件监控或外部SIEM。

##模型上下文协议详细信息

  • (https://modelcontextprotocol.io/docs/concepts/tools)

##许可证 麻省理工学院©2025吉安卢卡·特西托尔/大西洋科技