使用说明
自主操作代理(MCP)
该项目展示了 解耦 通过协调处理客户订单的主机/代理 两台MCP服务器 使用标准MCP stdio “墙壁插座” 图案。
文件
crm_server.py--MCP服务器暴露get_customer_email()email_server.py--MCP服务器暴露send_shipping_confirmation()main.py--使用OpenAI SDK和MCP客户端会话的主机/代理.env.example--环境变量模板
建筑
- 主持人在
main.py有 无硬编码API逻辑 用于CRM或电子邮件。 - 它只:
- 通过stdio墙壁插座连接到MCP服务器,
- 列出来自每个服务器的工具,
- 让模型决定调用哪些工具,
- 执行工具调用并将结果返回给模型。
可以通过更改中的墙插座描述符(command/args)来交换服务器 run_agent() 而不改变工具调用逻辑。
设置
1) 安装依赖项
创建并激活虚拟环境(推荐),然后:
pip install "mcp" "openai"
2) 提供您的OpenAI API密钥
您可以通过以下两种方式之一完成此操作:
选项A:设置环境变量(快速)
Windows(cmd.exe):
set OPENAI_API_KEY=YOUR_KEY
可选择设置模型:
set OPENAI_MODEL=gpt-4.1-mini
选项B:使用本地 .env 文件(推荐)
如果您正在使用 OpenAI兼容网关 (不是直接OpenAI),也设置:
OPENAI_BASE_URL=https://...
主持人将此内容读入 run_agent() 并将其传递给 AsyncOpenAI() 通过 base_url.
- 复制模板:
- cmd.exe:
copy .env.example .env - PowerShell:
Copy-Item .env.example .env
- cmd.exe:
- 编辑
.env并设置OPENAI_API_KEY=...(或OPENAI_KEY=...).
最简单的Windows方法: 不装填 .env;只需在运行的同一命令中设置变量:
cmd.exe:
set OPENAI_API_KEY=YOUR_KEY && python main.py "Process new order #XYZ-789"
如果你真的想加载 .env 在当前的shell会话中,请注意Windows cmd.exe 批处理文件中需要双倍百分比。
cmd.exe(交互式):
for /f "usebackq tokens=1,* delims==" %A in (".env") do set "%A=%B"
cmd.exe(在.bat文件中):
for /f "usebackq tokens=1,* delims==" %%A in (".env") do set "%%A=%%B"
PowerShell:
Get-Content .env | ForEach-Object { if ($_ -match '^(\w+)\s*=\s*(.*)$') { [Environment]::SetEnvironmentVariable($matches[1], $matches[2]) } }
跑
运行主机/代理(它将生成两个MCP服务器作为子进程):
python main.py "Process new order #XYZ-789"
预期行为:
- 代理人打电话来
get_customer_email()在CRM服务器上。 - 然后它叫
send_shipping_confirmation()在电子邮件服务器上。 - 电子邮件服务器将确认行记录到stdout。
