返回市场
Gmail企业邮件服务器

Gmail企业邮件服务器

作者:ivanlhz7 星标更新:2025-04-23

项目介绍

gmail-mcp-server

GitHub stars GitHub issues GitHub forks MIT License Python Version

官方仓库:https://github.com/ivanlhz/gmail-mcp-server

通过模型上下文协议(MCP)暴露Gmail API的服务器,旨在与大型语言模型(LLMs)集成,并在如Claude Desktop等环境中使用。

描述

该项目允许通过MCP暴露Gmail API,便于与大型语言模型集成并在如Claude Desktop等环境中使用。

可用的MCP工具

该服务器暴露以下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/                       # 虚拟环境(不纳入版本控制)

要求

  • Python 3.11 或更高版本
  • uv(用于依赖管理和虚拟环境)
  • build(仅当需要打包模块时)
  • Claude Desktop(如果要在其中使用)

安装依赖项

  1. 克隆仓库:
    git clone <URL_DEL_REPOSITORIO>
    cd gmail-mcp-server
    
  2. 使用uv安装项目依赖项:
    uv pip install -r uv.lock
    

构建和打包

  1. (可选)安装build工具:
    uv pip install build
    
  2. 打包模块:
    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来管理依赖项和虚拟环境。

  • 安装所有项目依赖项:
    uv pip install -r uv.lock
    
  • 安装新依赖项:
    uv pip install <package>
    uv pip freeze > uv.lock
    

更多详情请参阅uv官方文档

获取Google凭证(GOOGLE_CLIENT_ID 和 SECRET)

为了让服务器能够访问Gmail API,你需要在Google Cloud上创建OAuth 2.0凭证:

  1. 前往Google Cloud Console
  2. 创建一个新的项目或选择现有的项目。
  3. 转到“API和服务” > “库”,搜索“Gmail API”,点击“启用”。
  4. 转到“API和服务” > “凭证”,点击“创建凭证” > “OAuth客户端ID”。
  5. 选择“桌面应用”作为应用类型。
  6. 输入名称并点击“创建”。
  7. 下载JSON文件,打开它并复制client_idclient_secret的值。
  8. 启动服务器时,使用这些值作为环境变量GOOGLE_CLIENT_IDGOOGLE_CLIENT_SECRET

更多信息请参阅Google官方指南

与Claude Desktop和其他MCP客户端的集成

Windows

  • 可执行文件位于:
    C:\Users\<usuario>\develop\proyectos\mcp\gmail-mcp-server\.venv\Scripts\gmail-mcp-server.exe
    
  • 你可以直接从该路径运行它,或者将.venv\Scripts\添加到PATH中,以便可以在任何终端中使用gmail-mcp-server
  • 如果已将脚本文件夹添加到PATH(推荐): 现在你可以简单地使用gmail-mcp-server作为全局命令。
  • 对于Claude Desktop的建议: 在你的配置文件(例如claude.config.json)中:
    • 如果没有配置PATH:
      {
        "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"
            }
          }
        }
      }
      
    • 如果已经配置了PATH:
      {
        "mcpServers": {
          "gmail": {
            "command": "gmail-mcp-server",
            "env": {
              "GOOGLE_CLIENT_ID": "TU_ID",
              "GOOGLE_CLIENT_SECRET": "TU_SECRET"
            }
          }
        }
      }
      
  • <usuario>替换为你的Windows用户名,并填写你的凭证。

Mac/Linux

  • 可执行文件位于:
    /ruta/a/tu/proyecto/.venv/bin/gmail-mcp-server
    
  • 你可以直接从该路径运行它。

要永久将可执行文件添加到PATH:

  1. 打开你的shell配置文件(~/.bashrc~/.zshrc等)。
  2. 添加以下行:
    export PATH="/ruta/a/tu/proyecto/.venv/bin:$PATH"
    
  3. 保存文件并执行source ~/.bashrcsource ~/.zshrc(根据你的shell),或重新启动终端。

现在你可以简单地使用gmail-mcp-server作为全局命令。

  • 对于Claude Desktop的建议:

    • 如果没有配置PATH:
      {
        "mcpServers": {
          "gmail": {
            "command": "/ruta/a/tu/proyecto/.venv/bin/gmail-mcp-server",
            "env": {
              "GOOGLE_CLIENT_ID": "TU_ID",
              "GOOGLE_CLIENT_SECRET": "TU_SECRET"
            }
          }
        }
      }
      
    • 如果已经配置了PATH:
      {
        "mcpServers": {
          "gmail": {
            "command": "gmail-mcp-server",
            "env": {
              "GOOGLE_CLIENT_ID": "TU_ID",
              "GOOGLE_CLIENT_SECRET": "TU_SECRET"
            }
          }
        }
      }
      
  • /ruta/a/tu/proyecto/替换为实际路径,并填写你的凭证。

  • 修改后,请重启Claude Desktop以正确检测和执行MCP服务器。

参考资料

社区和贡献