官方仓库:https://github.com/ivanlhz/gmail-mcp-server
通过模型上下文协议(MCP)暴露Gmail API的服务器,旨在与大型语言模型(LLMs)集成,并在如Claude Desktop等环境中使用。
该项目允许通过MCP暴露Gmail API,便于与大型语言模型集成并在如Claude Desktop等环境中使用。
该服务器暴露以下MCP工具以与Gmail交互:
| 工具 | 描述 |
|---|---|
get_labels() | 获取用户Gmail的所有标签。 |
get_label_by_id(label_id) | 根据ID获取特定标签的数据。 |
create_label(name, bg_color, text_color) | 在Gmail中创建新的标签,可选名称和颜色。 |
update_label(label_id, name, bg_color, text_color) | 更新现有标签。 |
delete_label(label_id) | 根据ID删除Gmail中的标签。 |
mark_emails_as_read(emails_ids: List[str]) | 将列表中指定ID的邮件标记为已读。 |
mark_emails_as_unread(emails_ids: List[str]) | 将列表中指定ID的邮件标记为未读。 |
add_labels(emails_ids: List[str], labels: List[str]) | 将一个或多个标签分配给列表中指定ID的所有邮件。 |
get_all_emails_ids_by_query(query: str, max_results: int, next_page_token: str = None) | 根据Gmail查询返回分页的邮件ID列表。使用next_page_token进行分页。 |
get_email_detail(email_id: str) | 根据ID返回特定邮件的详细信息。 |
.
├── src/
│ ├── gmail/ # 与Gmail集成的逻辑
│ │ ├── __init__.py
│ │ ├── auth.py # 认证和OAuth
│ │ ├── service.py # 业务逻辑(消息、标签)
│ │ └── models/
│ │ └── label_model.py # Gmail标签模型
│ ├── gmail_mcp_server/
│ │ ├── __init__.py
│ │ └── main.py # MCP入口点和工具定义
│ └── gmail_mcp_server.egg-info/ # 打包信息
├── pyproject.toml # 包配置和依赖项
├── uv.lock # 依赖项锁文件(由uv使用)
├── README.md # 此文件
├── LICENSE # MIT许可证
└── .venv/ # 虚拟环境(不纳入版本控制)
git clone <URL_DEL_REPOSITORIO>
cd gmail-mcp-server
uv pip install -r uv.lock
uv pip install build
uv run -m build
这将在dist/目录下生成.whl和.tar.gz文件。在你的环境中安装包:
uv pip install dist/gmail_mcp_server-0.1.1-py3-none-any.whl
(确保根据版本调整.whl文件名。)
此项目使用uv来管理依赖项和虚拟环境。
uv pip install -r uv.lock
uv pip install <package>
uv pip freeze > uv.lock
更多详情请参阅uv官方文档。
为了让服务器能够访问Gmail API,你需要在Google Cloud上创建OAuth 2.0凭证:
client_id和client_secret的值。GOOGLE_CLIENT_ID和GOOGLE_CLIENT_SECRET。更多信息请参阅Google官方指南。
C:\Users\<usuario>\develop\proyectos\mcp\gmail-mcp-server\.venv\Scripts\gmail-mcp-server.exe
.venv\Scripts\添加到PATH中,以便可以在任何终端中使用gmail-mcp-server。gmail-mcp-server作为全局命令。claude.config.json)中:
{
"mcpServers": {
"gmail": {
"command": "C:\\Users\\<usuario>\\develop\\proyectos\\mcp\\gmail-mcp-server\\.venv\\Scripts\\gmail-mcp-server.exe",
"env": {
"GOOGLE_CLIENT_ID": "TU_ID",
"GOOGLE_CLIENT_SECRET": "TU_SECRET"
}
}
}
}
{
"mcpServers": {
"gmail": {
"command": "gmail-mcp-server",
"env": {
"GOOGLE_CLIENT_ID": "TU_ID",
"GOOGLE_CLIENT_SECRET": "TU_SECRET"
}
}
}
}
<usuario>替换为你的Windows用户名,并填写你的凭证。/ruta/a/tu/proyecto/.venv/bin/gmail-mcp-server
要永久将可执行文件添加到PATH:
~/.bashrc,~/.zshrc等)。export PATH="/ruta/a/tu/proyecto/.venv/bin:$PATH"
source ~/.bashrc或source ~/.zshrc(根据你的shell),或重新启动终端。现在你可以简单地使用gmail-mcp-server作为全局命令。
对于Claude Desktop的建议:
{
"mcpServers": {
"gmail": {
"command": "/ruta/a/tu/proyecto/.venv/bin/gmail-mcp-server",
"env": {
"GOOGLE_CLIENT_ID": "TU_ID",
"GOOGLE_CLIENT_SECRET": "TU_SECRET"
}
}
}
}
{
"mcpServers": {
"gmail": {
"command": "gmail-mcp-server",
"env": {
"GOOGLE_CLIENT_ID": "TU_ID",
"GOOGLE_CLIENT_SECRET": "TU_SECRET"
}
}
}
}
将/ruta/a/tu/proyecto/替换为实际路径,并填写你的凭证。
修改后,请重启Claude Desktop以正确检测和执行MCP服务器。