订单处理代理

一个通过协调两个MCP服务器处理客户订单的自主操作代理。

  • by aandreeva13
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aandreeva13/MCP_agent

使用说明

自主操作代理(MCP)

该项目展示了 解耦 通过协调处理客户订单的主机/代理 两台MCP服务器 使用标准MCP stdio “墙壁插座” 图案。

文件

建筑

  • 主持人在 main.py 有 无硬编码API逻辑 用于CRM或电子邮件。
  • 它只:
    1. 通过stdio墙壁插座连接到MCP服务器,
    2. 列出来自每个服务器的工具,
    3. 让模型决定调用哪些工具,
    4. 执行工具调用并将结果返回给模型。

可以通过更改中的墙插座描述符(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.

  1. 复制模板:
    • cmd.exe: copy .env.example .env
    • PowerShell: Copy-Item .env.example .env
  2. 编辑 .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"

预期行为:

  1. 代理人打电话来 get_customer_email() 在CRM服务器上。
  2. 然后它叫 send_shipping_confirmation() 在电子邮件服务器上。
  3. 电子邮件服务器将确认行记录到stdout。