MCP Headless Gmail Server

MCP Headless Gmail Server

site icon
2025.03.24 16
PythonGmail 服务邮件管理交流协作
MCP Headless Gmail Server 是一个基于 MCP(Model Context Protocol)的服务,提供无需本地凭证或令牌设置的 Gmail 获取和发送功能。该服务的主要优势包括无头远程操作、解耦架构、专注于 Gmail 功能、Docker 支持和可靠的依赖库。
View on GitHub

Overview

基本能力

产品定位

MCP Headless Gmail Server 是一个专注于 Gmail 功能的 MCP 服务,提供无需本地凭证或令牌设置的 Gmail 获取和发送功能。

核心功能

  • 获取最近的 Gmail 邮件(包含邮件正文的前 1k 字符)
  • 使用偏移参数获取完整的邮件正文内容(1k 字符块)
  • 通过 Gmail 发送邮件
  • 单独刷新访问令牌
  • 自动刷新令牌处理

适用场景

  • 营销应用
  • 远程环境中的 Gmail 访问
  • 需要解耦凭证存储和服务器实现的场景

工具列表

  1. 获取最近邮件:获取最近的 Gmail 邮件,包含邮件正文的前 1k 字符。
  2. 获取完整邮件正文:使用偏移参数获取完整的邮件正文内容。
  3. 发送邮件:通过 Gmail 发送邮件。
  4. 刷新令牌:单独刷新访问令牌。

常见问题解答

  1. 如何获取 Google API 凭证?
  2. 前往 Google Cloud Console 创建新项目,启用 Gmail API,配置 OAuth 同意屏幕,创建 OAuth 客户端 ID 凭证(选择"桌面应用"作为应用程序类型),保存客户端 ID 和客户端密钥,使用 OAuth 2.0 获取访问和刷新令牌。

  3. 如何处理令牌过期?

  4. 服务器实现了自动令牌刷新。当访问令牌过期时,Google API 客户端将使用刷新令牌、客户端 ID 和客户端密钥来获取新的访问令牌,无需用户干预。

使用教程

使用依赖

  • Python 3.10 或更高版本
  • Google API 凭证(客户端 ID、客户端密钥、访问令牌和刷新令牌)

安装教程

# 克隆仓库
git clone https://github.com/yourusername/mcp-headless-gmail.git
cd mcp-headless-gmail

# 安装依赖
pip install -e .

Docker 构建

# 构建 Docker 镜像
docker build -t mcp-headless-gmail .

调试方式

# 启动服务器
mcp-server-headless-gmail

使用工具

刷新令牌

{
  "google_access_token": "your_access_token",
  "google_refresh_token": "your_refresh_token",
  "google_client_id": "your_client_id",
  "google_client_secret": "your_client_secret"
}

获取最近邮件

{
  "google_access_token": "your_access_token",
  "max_results": 5,
  "unread_only": false
}

获取完整邮件正文

{
  "google_access_token": "your_access_token",
  "message_id": "message_id_from_get_recent_emails",
  "offset": 0
}

发送邮件

{
  "google_access_token": "your_access_token",
  "to": "[email protected]",
  "subject": "Hello from MCP Gmail",
  "body": "This is a test email sent via MCP Gmail server",
  "html_body": "<p>This is a <strong>test email</strong> sent via MCP Gmail server</p>"
}

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。