日历与邮件管理服务器

一个基于Python的MCP服务器,提供Google日历和Gmail API的接口,支持高级日程安排、事件管理和邮件工作流。

  • by Unravel-Pranav
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 unravel-pranav/calender-gmail-mcp_server

使用说明

谷歌日历和Gmail MCP服务器(Python)

该项目实现了 基于Python的MCP(模型上下文协议)服务器 它提供了一个接口 大型语言模型(LLMs) 和那个 谷歌日历 和 Gmail API. 它实现了无缝的高级日程安排、事件管理和电子邮件工作流 MCP集成.


📖 文档


✨ 特性

🔑 认证

  • 安全 OAuth 2.0(桌面应用程序流) 谷歌API。
  • 自动令牌存储和刷新。

📅 谷歌日历

  • 核心行动

    • 列出日历→ mcp_google_calendar_list_calendars
    • 创建日历→ mcp_google_calendar_create_calendar
    • 查找事件(基本/高级筛选器)→ mcp_google_calendar_find_events
    • 创建详细事件→ mcp_google_calendar_create_event
    • 从文本快速添加事件→ mcp_google_calendar_quick_add_event
    • 更新事件→ mcp_google_calendar_update_event
    • 删除事件→ mcp_google_calendar_delete_event
    • 添加与会者→ mcp_google_calendar_add_attendee
  • 高级调度与分析

    • 检查与会者的反应→ mcp_google_calendar_check_attendee_status
    • 跨日历查询忙/闲时段→ mcp_google_calendar_query_free_busy
    • 自动安排相互免费时段→ mcp_google_calendar_schedule_mutual
    • 分析繁忙程度(每日事件计数和持续时间)→ mcp_google_calendar_analyze_busyness

📧 Gmail

  • 列出标签→ gmail_list_labels
  • 使用筛选器搜索/列出邮件→ gmail_list_messages
  • 获取多种格式的消息→ gmail_get_message
  • 发送电子邮件(简单或原始RFC 2822)→ gmail_compose_and_send, gmail_send_raw
  • 修改标签(添加/删除)→ gmail_modify_labels

⚡ 服务器

  • 基于FastAPI的REST API 暴露日历和Gmail端点。
  • MCP集成:使用stdio提供工具 mcp_sdk 图书馆。

⚙️ 设置

1.启用Google API

在您的 谷歌云项目:

  • 谷歌日历API
  • Gmail API

2.创建OAuth客户端

  • 创建一个 OAuth 2.0客户端(桌面应用程序).

  • 添加重定向URI:

    http://localhost:8080/oauth2callback
    
  • 配置同意屏幕并选择所需的范围。

3.配置环境

复制 example.env → .env 并更新您的凭据和范围。 推荐范围:

GOOGLE_SCOPES='https://www.googleapis.com/auth/calendar, https://www.googleapis.com/auth/gmail.readonly, https://www.googleapis.com/auth/gmail.send, https://www.googleapis.com/auth/gmail.labels, https://www.googleapis.com/auth/gmail.modify'

4.安装并运行

pip install -r requirements.txt
python run_server.py

有关详细演练,请参见 GETTING_STARTED.md.


🌐 HTTP端点

日历

  • GET /calendars
  • GET /calendars/{calendar_id}/events
  • POST /freeBusy
  • POST /schedule_mutual

Gmail

  • GET /gmail/labels
  • GET /gmail/messages
  • GET /gmail/messages/{message_id}
  • POST /gmail/messages:sendRaw
  • POST /gmail/messages:composeAndSend
  • POST /gmail/messages/{message_id}:modify

🛠️ MCP工具

日历

  • list_calendars
  • find_events
  • create_event
  • quick_add_event
  • update_event
  • delete_event
  • add_attendee
  • check_attendee_status
  • query_free_busy
  • schedule_mutual
  • analyze_busyness

Gmail

  • gmail_list_labels
  • gmail_list_messages
  • gmail_get_message
  • gmail_compose_and_send
  • gmail_send_raw
  • gmail_modify_labels

📌 备注

  • 配合使用效果最佳 LLM动力助手 用于智能日程安排和电子邮件管理。
  • 支持 MCP stdio集成 实现无缝的人工智能工作流程。