使用说明
Salesforce MCP服务器
此存储库显示 Salesforce组织和LLM代理之间的端到端管道 使用 模型上下文协议(MCP).
server.py--在上运行的FastMCP服务器本地主机 将Salesforce的核心REST操作公开为MCP 工具 和 资源.agent.py--一个GPT-4驱动的助手,可以自动发现这些工具(通过SSE或流式HTTP),并在需要时调用它们。
##目录
##先决条件
| 工具/帐户 | 为什么需要它 |
|---|---|
| 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设置
-
安装程序→ 应用程序→ 应用程序管理器→ 新连接的应用程序
-
OAuth设置
- 启用 OAuth 2.0 &选择 客户端凭据 (或JWT Bearer)。
- 添加
api范围。
-
点击 保存,然后复制 消费者密钥 & 消费者秘密.
-
在...之下 管理→ 编辑策略
- 允许用户 → 管理员批准的用户是预先授权的
- 指定锁定 集成用户 权限集。
🛡️最低特权很重要。 仅允许集成用户访问您希望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
##部署到生产环境
- Dockise (见评论
Dockerfile在repo中)并推送到Render/Fly.io/Cloud Run。 - 带有API网关的前部 (NGINX、AWS ALB、Cloud Armor)用于TLS、速率限制、WAF。
- 旋转令牌 --切换到OAuth 2.0 JWT承载或具有短期令牌的客户端凭据流。
- 可观测性 --记录每个
tool.invokeSalesforce事件监控或外部SIEM。
##模型上下文协议详细信息
- (https://modelcontextprotocol.io/docs/concepts/tools)
##许可证 麻省理工学院©2025吉安卢卡·特西托尔/大西洋科技
