MCP客户端服务器:带Gemini的Outlook电子邮件摘要生成器
此项目演示了一个基于MCP的客户端-服务器应用程序,该应用程序可以获取最新的 Outlook电子邮件 通过 Microsoft Graph API 并用 谷歌双子座该系统使用模型上下文协议(MCP)在客户端和服务器之间进行结构化的实时交互。
______________________________________________________________________
概述
特征:
- 获取Outlook电子邮件 使用带有OAuth2的Microsoft Graph API(通过MSAL)。
- 总结电子邮件 使用Google Gemini获得清晰简洁的见解。
- 由...驱动 FastMCP 用于基于工具的实时界面。
- 模块化,易于使用其他工具扩展。
______________________________________________________________________
项目结构
.
├── pyproject.toml # Project configuration
├── README.md # Project documentation
├── requirements.txt # Project dependencies
├── client.py # MCP client implementation
├── server.py # MCP server with summarization tool
└── uv.lock # Dependency lock file______________________________________________________________________
服务器实现
服务器公开了以下工具:
summarize_outlook_emails
从经过身份验证的Outlook邮箱中获取最新电子邮件,并使用Gemini返回摘要视图。
论据:
limit(int):要获取的电子邮件数量(默认值:5)
退货:
- 发件人、主题和内容突出显示的文本摘要。
______________________________________________________________________
客户端实施
客户端连接到服务器,列出工具,并允许用户调用 summarize_outlook_emails 使用简单的命令行提示符。
______________________________________________________________________
先决条件
- Python 3.9+
- 紫外线
- 中的API凭据
.env文件:
所需的环境变量
GOOGLE_API_KEY=your_google_api_key
GEMINI_MODEL=gemini-pro
CLIENT_ID=your_azure_app_client_id
CLIENT_SECRET=your_azure_app_client_secret
TENANT_ID=your_azure_tenant_id______________________________________________________________________
安装
# Install all dependencies
uv add -r requirements.txt .______________________________________________________________________
运行示例
# Run the client (which starts the server)
uv run client.py______________________________________________________________________
交互示例
Available tools: ['summarize_outlook_emails']
You: summarize_outlook_emails limit=3
Assistant:
Here’s a summary of your latest 3 emails:
- From: Alice Smith – Subject: Q3 Report Reminder – Discusses upcoming Q3 deadlines.
- From: IT Support – Subject: Scheduled Maintenance – Notifies planned server downtime.
- From: John Doe – Subject: Lunch Meeting – Proposes rescheduling this week’s lunch.
You: Exit
Exiting...______________________________________________________________________
调试与检查
您可以使用MCP检查器检查工具调用和服务器行为。
- 直接启动服务器:
mcp dev server.py- 在浏览器中打开检查器:
______________________________________________________________________
资源
______________________________________________________________________
许可证
该项目根据MIT许可证获得许可。看 LICENSE 了解详情。
