Back to MCP directory
publicPublicdnsLocal runtime

gmail-mcp-server-15s

一个集成Gmail与FastMCP协议的AI助手系统,提供自然语言交互的邮件管理功能,包括发送、读取、标记邮件等操作。

article

README

🚀 Gmail MCP 服务器

Gmail MCP 服务器是一个集成了 FastMCP(模型控制协议)的 Gmail 系统,它为 AI 助手搭建了桥梁,使其能借助一系列工具和提示与 Gmail 进行交互,极大地拓展了 Gmail 的使用场景和便捷性。

🚀 快速开始

此项目采用服务器 - 客户端架构,让 AI 助手可以执行多种 Gmail 操作,如发送邮件、查看未读邮件等。使用 OAuth 2.0 进行身份验证,并结合 Gmail API 实现各项功能。

启动服务器

python3 gmail_server.py

使用客户端

from gmail_client import GmailClient
client = GmailClient()
result = client.send_email(to="recipient@example.com", subject="Test", message="Hello World!")
print(result)

✨ 主要特性

  • 功能丰富:支持发送邮件、查看未读邮件、浏览邮件内容、将邮件移到垃圾箱、在浏览器中打开邮件以及标记邮件为已读等操作。
  • 身份验证:采用 OAuth 2.0 进行身份验证,保障系统安全。
  • LLM 集成:使用 LLM(如 Gemini 1.5 Flash)理解自然语言请求,实现更智能的交互。

📦 安装指南

先决条件

  • 环境要求:需要 Python 3.6 或更高版本。
  • 库安装:安装必要的库,包括 google-authgoogle-api-python-clientfastmcp
  • 文件准备
    • credentials.json:OAuth 凭证文件,由 Google 开发者控制台生成。
    • token.json:存储 OAuth 认证后的令牌。
    • .env:包含 API 密钥和相关配置。

🔧 技术细节

组件

Gmail Server

负责 FastMCP 集成、身份验证、邮件操作(发送、接收等)以及错误处理和日志记录。

Smart Gmail Client

使用 LLM(如 Gemini 1.5 Flash)来理解自然语言请求,提取参数并执行相应的邮件操作。

邮件内容处理

支持 MIME 消息解析、多部分邮件和附件处理,确保正确解码邮件头和正文。

LLM 集成

使用 Gemini 1.5 Flash 将自然语言请求转换为结构化的工具调用,并通过回退机制处理不规范的响应。

📚 详细文档

开发扩展

添加新的 Gmail 操作

  1. gmail_server.py 中实现新工具。
  2. 系统将自动发现并暴露新功能。

自定义 LLM 提示

可以通过修改 test_gmail_server.py 中的提示词,优化参数提取和特定请求处理。

⚠️ 安全注意事项

  • 项目不包含凭证文件,请勿提交以下文件到版本控制系统:
    • credentials.json
    • token.json
    • .env

这些文件已添加到 .gitignore 中以防止意外提交。

📄 参考资料

Medium 文章

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client