Gmail MCP服务器

一个通过IMAP/SMTP读取和发送Gmail的MCP服务器,为Claude和其他AI模型提供Gmail操作工具,并包含一个直接在浏览器中管理收件箱的Web界面。

  • by chinmay4382
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 chinmay4382/gmail-mcp-server

使用说明

Gmail MCP服务器

MCP(模型上下文协议)服务器,用于通过IMAP/SMTP读取和发送Gmail。将Gmail操作公开为Claude和其他AI模型可用的MCP工具,并包括一个直接在浏览器中管理收件箱的web UI。

特性

  • 列出电子邮件:从任何Gmail文件夹中检索电子邮件
  • 获取未读电子邮件:仅获取未读邮件
  • 搜索电子邮件:使用IMAP搜索条件进行搜索(按发件人、日期、主题等)
  • 从发件人处获取电子邮件:检索来自特定发件人的所有电子邮件
  • 按主题获取电子邮件:按主题文本搜索
  • 发送邮件:通过SMTP撰写和发送电子邮件
  • 列出文件夹:查看所有可用的Gmail文件夹
  • 获取电子邮件详细信息:获取特定电子邮件的完整详细信息

先决条件

  • Docker已安装在您的系统上
  • 启用IMAP并生成应用程序密码的Gmail帐户

快速开始

1.启用Gmail IMAP并生成应用程序密码

  1. 启用双因素身份验证:https://myaccount.google.com/security
  2. 为邮件生成应用程序密码:https://myaccount.google.com/apppasswords
  3. 记下你的Gmail地址和生成的应用程序密码——你需要在下面找到它们

2.克隆和配置

git clone https://github.com/chinmay4382/gmail-mcp-server.git
cd gmail-mcp-server
cp .env.example .env

编辑 .env 使用您的凭据:

EMAIL_ADDRESS=your_email@gmail.com
EMAIL_PASSWORD=your_app_password
IMAP_SERVER=imap.gmail.com
SMTP_SERVER=smtp.gmail.com
ANTHROPIC_API_KEY=your_anthropic_api_key

3.使用Docker运行

选项——Web UI(浏览器APP):

docker compose up email-ui

然后打开http://localhost:8000在您的浏览器中。

选项B——MCP服务器(适用于克劳德桌面/MCP客户端):

docker compose up email-mcp-server

可用的MCP工具

list_邮件

列出文件夹中的电子邮件。

参数:

  • max_results (int,默认值:10):要检索的电子邮件数量
  • unread_only (bool,默认值:false):仅返回未读电子邮件
  • folder (字符串,默认值:“收件箱”):Gmail文件夹名称

get_unread_emails

从文件夹中获取未读电子邮件。

参数:

  • max_results (int,默认值:10):要检索的未读电子邮件数
  • folder (字符串,默认值:“收件箱”):Gmail文件夹名称

get_emails_from_sender

获取来自特定发件人的电子邮件。

参数:

  • sender (string):发件人的电子邮件地址
  • max_results (int,默认值:10):要检索的电子邮件数量
  • folder (字符串,默认值:“收件箱”):Gmail文件夹名称

搜索邮件

使用IMAP搜索条件搜索电子邮件。

参数:

  • query (字符串):IMAP搜索查询
  • max_results (int,默认值:10):返回的最大结果
  • folder (字符串,默认值:“收件箱”):要搜索的Gmail文件夹

查询示例:

  • UNSEEN --未读邮件
  • FROM "user@example.com" --来自特定发件人的电子邮件
  • SUBJECT "invoice" --主题中包含“发票”的电子邮件
  • FLAGGED --带星号的电子邮件
  • SINCE "1-Jan-2024" --自某个日期以来的电子邮件
  • UNSEEN FROM "user@example.com" --合并标准

get_emails_by_subject

按主题文本获取电子邮件。

参数:

  • subject (string):要搜索的主题文本
  • max_results (int,默认值:10):可检索的最大电子邮件数
  • folder (字符串,默认值:“收件箱”):要搜索的Gmail文件夹

send_邮件

发送一封电子邮件。

参数:

  • recipient (string):收件人电子邮件地址
  • subject (string):电子邮件主题
  • body (string):电子邮件正文
  • html (bool,默认值:false):如果为true,则正文被视为HTML

get_email_details

获取特定电子邮件的完整详细信息。

参数:

  • message_id (字符串):来自IMAP的电子邮件ID

list_folders

列出所有可用的Gmail文件夹。

配置

变量 必填 默认 描述
EMAIL_ADDRESS 是 -- 您的Gmail地址
EMAIL_PASSWORD 是 -- Gmail应用程序密码
IMAP_SERVER 没有 imap.gmail.com IMAP服务器
SMTP_SERVER 没有 smtp.gmail.com SMTP服务器
ANTHROPIC_API_KEY 是(Web UI) - 人工智能聊天的API键

故障排除

“身份验证失败”

  • 确保你使用的是Gmail 应用程序密码,不是您的常规Gmail密码
  • 确认Gmail设置中已启用IMAP→ 查看所有设置→ 转发和POP/IMAP

“连接被拒绝”

  • 验证您的Gmail帐户设置中是否启用了IMAP
  • 检查防火墙是否未阻止端口993(IMAP)或587(SMTP)

“没有名为'mcp'的模块”

  • 重建Docker镜像: docker compose build

文件结构

gmail-mcp-server/
├── gmail_mcp_server.py   # MCP server entry point
├── gmail_client.py       # IMAP/SMTP client wrapper
├── api_server.py         # FastAPI REST server for the web UI
├── ui/
│   ├── index.html        # Web UI markup
│   ├── app.js            # Web UI JavaScript
│   └── styles.css        # Web UI styles
├── Dockerfile            # Docker build configuration
├── docker-compose.yml    # Docker Compose services
├── requirements.txt      # Python dependencies
├── .env.example          # Example environment variables
└── mcp-config.json       # MCP configuration example

安全须知

  • 永远不要承诺你的 .env 文件——它包含实时凭据
  • 始终使用Gmail应用程序密码,而不是您的帐户密码
  • 应用程序密码仅授予对IMAP/SMTP的访问权限,而不是您的完整Google帐户

许可证

MIT许可证