Gmail邮件助手服务

一个允许AI助手读取Gmail邮件并创建草稿回复的MCP服务器。

  • by GeorgeKlemperer
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 GeorgeKlemperer/mcp-project

使用说明

Gmail MCP服务器

MCP(模型上下文协议)服务器,允许AI助手阅读Gmail电子邮件并创建草稿回复。

特性

  • 🔍 搜索电子邮件 通过查询、标记或获取所有电子邮件
  • 📧 获取未读电子邮件 来自收件箱
  • 📄 获取电子邮件详细信息 包括发件人、主题、正文和线程ID
  • ✍️ 创建答复草稿 与原始电子邮件正确关联
  • 🔒 安全OAuth 2.0 使用Gmail API进行身份验证

先决条件

  • Python 3.11+
  • Gmail帐户
  • 启用Gmail API的Google云控制台项目
  • Claude Desktop(用于使用AI助手进行测试)
  • 人类API密钥(console.anthropic.com)
  • 一个OpenAI API密钥(platform.openai.com)

安装说明

1.谷歌云设置

  1. 首选 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用 Gmail API:
    • 导航到“API和服务”>“库”
    • 搜索“Gmail API”并启用它
  4. 创建OAuth 2.0凭据:
    • 转到“API和服务”>“凭据”
    • 点击“创建凭据”>“OAuth 2.0客户端ID”
    • 选择“桌面应用程序”
    • 下载JSON文件并将其另存为 client-secret.json 在项目根中

2.项目设置

# Clone the repository
git clone <your-repo-url>
cd mcp-project

# Create virtual environment
python -m venv .venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt
or
pip install -U mcp 'mcp[cli]' google-api-python-client google-auth-httplib2 google-auth-oauthlib

3.身份验证

运行初始身份验证设置(确保您的令牌已过期,并事先将其删除):

ALLOW_INTERACTIVE_OAUTH=1 .venv/bin/python mcp_gmail.py

这将:

  • 打开浏览器获取Gmail OAuth同意
  • 在本地保存身份验证令牌
  • 允许MCP服务器在没有浏览器弹出窗口的情况下访问Gmail

4.克劳德桌面配置

我的Claude桌面配置文件(Claude/Claude_Desktop_config.json):

{
  "mcpServers": {
    "Gmail": {
      "command": "/Users/georgeklemperer/se-projects/mcp-project/.venv/bin/python",
      "args": ["/Users/georgeklemperer/se-projects/mcp-project/mcp_gmail.py"],
      "env": { "PYTHONUNBUFFERED": "1" }
    }
  }
}

注: 更新路径以匹配您的实际项目位置。

工具名称 描述 参数
Gmail-Search-Emails 按查询/标签搜索电子邮件 query, label, max_results, next_page_token
Gmail-Get-Unread-Emails 从收件箱获取未读电子邮件 max_results
Gmail-Get-Email-Message-Details 通过邮件ID获取电子邮件详细信息 msg_id
Gmail-Get-Email-Message-Body 获取完整的电子邮件正文内容 msg_id
Gmail-Create-Draft-Reply 创建线程化草稿回复 thread_id, reply_body, body_type

MCP与Claude Desktop合作阅读电子邮件和起草回复的截图

安全和权限

  • 只读访问 到Gmail邮件(gmail.readonly 范围)
  • 仅创建草稿 (gmail.compose 范围-无法发送电子邮件)
  • 本地令牌存储 在 token-files/ 目录
  • 没有电子邮件发送功能 -草稿必须从Gmail手动发送

文件结构

mcp-project/
├── tools/
│   └── google/
│       ├── __init__.py
│       ├── gmail_tools.py      # Gmail API wrapper
│       ├── rag_tool.py         # RAG tools
│       └── google_apis.py      # OAuth & service creation
├── mcp_gmail.py               # MCP server entry point
├── requirements.txt          # Python dependencies
└── README.md

依赖项

mcp
google-api-python-client
google-auth-httplib2
google-auth-oauthlib
pydantic