使用说明
Gmail MCP服务器
MCP(模型上下文协议)服务器,用于通过IMAP/SMTP读取和发送Gmail。将Gmail操作公开为Claude和其他AI模型可用的MCP工具,并包括一个直接在浏览器中管理收件箱的web UI。
特性
- 列出电子邮件:从任何Gmail文件夹中检索电子邮件
- 获取未读电子邮件:仅获取未读邮件
- 搜索电子邮件:使用IMAP搜索条件进行搜索(按发件人、日期、主题等)
- 从发件人处获取电子邮件:检索来自特定发件人的所有电子邮件
- 按主题获取电子邮件:按主题文本搜索
- 发送邮件:通过SMTP撰写和发送电子邮件
- 列出文件夹:查看所有可用的Gmail文件夹
- 获取电子邮件详细信息:获取特定电子邮件的完整详细信息
先决条件
- Docker已安装在您的系统上
- 启用IMAP并生成应用程序密码的Gmail帐户
快速开始
1.启用Gmail IMAP并生成应用程序密码
- 启用双因素身份验证:https://myaccount.google.com/security
- 为邮件生成应用程序密码:https://myaccount.google.com/apppasswords
- 记下你的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许可证