使用说明
🧠 代理MCP:计算器、绘图和电子邮件代理
该项目展示了 代理工作流程 使用 **MCP(多工具通信协议)**该代理由 Gemini模型,能够通过顺序调用各种本地工具来解决复杂的多步骤问题,包括数学函数、图像绘制和通过Gmail API发送电子邮件。
🚀 关键组件
talk2mcp.py:定义和托管可用工具(计算器、绘图、电子邮件)的本地服务器。agent.py:连接到MCP服务器的客户端,向Gemini模型查询下一个操作,并执行模型建议的工具调用。- Gmail API集成:使代理能够发送真实的电子邮件,需要 OAuth 2.0配置.
🛠️ 设置和安装
1.项目结构
确保您的项目目录组织如下。标记为的文件 * 在设置过程中生成。
agentic-mcp/
├── .env
├── talk2mcp.py
├── agent.py
├── credentials.json
└── token.pickle* ```
### 2. Dependencies
Install all necessary Python packages using the following command. You may need to create a `requirements.txt` file first.
```bash
pip install google-genai google-api-python-client google-auth-oauthlib google-auth-httplib2 python-dotenv Pillow
3.API密钥配置
创建一个名为的文件 .env 在您的项目根目录中,并添加您的Gemini API密钥:
# .env file
GEMINI_API_KEY="YOUR_GEMINI_API_KEY_HERE"
📧 Gmail API配置(对于 send_email)
这 send_email 该工具依赖于全球 service 对象,它是通过使用以下命令对Python脚本进行身份验证而创建的 谷歌OAuth 2.0.
A.谷歌云控制台设置
- 创建/选择项目: 转到 谷歌云控制台 并创建一个项目。
- 启用API: 在 API和服务>库,搜索和 启用Gmail API.
- 配置OAuth同意屏幕:
- 设置 用户类型 (例如。, 外部).
- 在 范围 在第节中,添加以下范围,这足以发送电子邮件:
https://www.googleapis.com/auth/gmail.send
- 创建凭据:
- 首选 API和服务>凭据.
- 点击 +创建凭据 并选择 OAuth客户端ID.
- 对于 应用程序类型,选择 桌面应用.
- 点击 下载JSON 和 将文件重命名为
credentials.json。将此文件放置在项目根目录中。
B.初始身份验证运行
这 service 对象已在您的 talk2mcp.py 文件。您必须运行服务器一次才能完成所需的交互式身份验证流程。
- 运行服务器:
python talk2mcp.py - 浏览器登录: 一个网络浏览器窗口将自动打开,提示您使用您的谷歌帐户登录,并授予应用程序发送电子邮件的权限。
- 令牌生成: 成功授权后,一个名为
token.pickle将生成。此文件存储凭据,并允许您的脚本在以后的运行中自动进行身份验证。
如果你看到输出 Gmail API service authenticated successfully.,the service 对象是全局定义的,并且 send_email 工具已准备好使用。
🏃 运行代理
代理执行需要同时运行MCP服务器和代理客户端。这 agent.py 脚本自动管理 talk2mcp.py 过程通过 stdio_client.
1.启动代理客户端
执行主脚本:
python agent.py
2.多步查询示例
代理人被指示用链条锁住工具。示例查询设置在 agent.py 致:
- 呼叫
draw_image_with_text以创建图像。 - 呼叫
send_email报告任务的完成情况。
代理将在循环中运行,每次迭代生成一个函数调用,直到达到最终答案。
3.验证
- 图像输出: 图像文件(例如。,
final_drawing.png)将保存在您的项目根目录中。 - 电子邮件输出: 检查查询中指定的电子邮件地址的收件箱(
report@example.com在示例中)。应显示主题为“代理任务:绘图完成”的消息。