邮件摘要服务

一个基于MCP的客户端-服务器应用,通过Microsoft Graph API获取Outlook邮件并使用Google Gemini进行摘要生成。

  • by LariZia
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 larizia/mcp-client-server-email

使用说明

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检查器检查工具调用和服务器行为。

  1. 直接启动服务器:
mcp dev server.py
  1. 在浏览器中打开检查器: http://localhost:5173

资源


许可证

该项目根据MIT许可证获得许可。看 LICENSE 了解详情。