该项目实现了一个模型上下文协议 (MCP) 服务器,可借助 IMAP 和 SMTP 与 Gmail 账户进行交互。它提供了一系列实用工具,能用于搜索邮件、检索邮件内容、管理标签(创建、删除、重命名、应用、移除)以及发送/转发邮件。
X - GM - RAW 扩展,能实现高效的收件箱搜索(例如按 category:primary 过滤)。.
├── .gitignore # 指定 Git 应忽略的文件
├── .python-version # 指定 Python 版本(用于 pyenv)
├── LICENSE # 项目许可证文件
├── pyproject.toml # Python 项目配置(依赖项、构建系统)
├── README.md # 此文件
├── task_list.md # 跟踪开发进度
├── uv.lock # uv 包管理器的锁定文件
├── src/
│ └── email_client/
│ ├── __init__.py
│ ├── config.py # 处理从环境变量(.env)加载配置
│ ├── handlers.py # 实现处理 MCP 工具调用逻辑
│ ├── imap_client.py # 包含与 IMAP 服务器交互的函数
│ ├── server.py # 使用 @modelcontextprotocol/sdk 的主 MCP 服务器脚本
│ ├── smtp_client.py # 包含与 SMTP 服务器交互的函数
│ └── tool_definitions.py # 定义所有可用工具及其详细输入模式
search - emails:搜索邮件。get - email - content:获取完整的邮件详情。count - daily - emails:统计每天收到的邮件数量。list - labels:列出所有标签/文件夹。create - label:创建新的标签。rename - label:重命名现有标签。delete - label:删除标签。apply - label:将标签应用到单个邮件上。remove - label:移除单个邮件上的标签。apply - label - batch:批量为多个邮件应用标签。remove - label - batch:从多个邮件上批量移除标签。move - email:将单个邮件移动到一个标签中。move - email - batch:将多个邮件移动到一个标签中。send - email:发送新邮件。forward - email:转发现有邮件。有关每个工具的详细输入模式,请参阅 src/email_client/tool_definitions.py。
git clone https://github.com/yourusername/gmail-mcp-server.git
cd gmail-mcp-server
python -m venv .venv
source .venv/bin/activate # 在 Windows 上使用 .venv\Scripts\activate
pip install -r requirements.txt
.env 文件,添加以下内容:Gmail_IMAP_HOST=imap.gmail.com
Gmail_SMTP_HOST=smtp.gmail.com
Gmail_PORT=143 # IMAP 端口
Gmail_SSL_PORT=465 # SMTP SSL 端口
Gmail_EMAIL=your_email@gmail.com
Gmail_PASSWORD=your_app_specific_password
source .venv/bin/activate # 在 Windows 上使用 .venv\Scripts\activate
python src/email_client/server.py