Gmail集成服务器

一个基于MCP框架构建的强大且灵活的Gmail集成服务器,提供与Gmail API交互的健壮接口,支持编程方式读取、发送和管理邮件。

  • by Quantum-369
  • Python
  • 本地部署
  • 17 星标
  • 更新于
在 GitHub 查看 Quantum-369/Gmail-mcp-server

使用说明

Gmail MCP服务器

一个使用MCP(消息控制协议)框架构建的强大而灵活的Gmail集成服务器。该服务器提供了一个与Gmail API交互的强大接口,提供了以编程方式读取、发送和管理电子邮件的功能。

特性

  • 阅读来自多个Gmail帐户的电子邮件
  • 发送带有附件的电子邮件
  • 使用高级查询选项搜索电子邮件
  • 下载电子邮件附件
  • 处理电子邮件对话和线程
  • 实时电子邮件监控
  • 支持多个Gmail帐户

先决条件

在运行Gmail MCP服务器之前,请确保您拥有以下内容:

  1. Python 3.12或更高版本
  2. 启用Gmail API的谷歌云项目
  3. OAuth 2.0客户端ID凭据
  4. 必需的Python包(在pyproject.toml中指定)

安装

通过Smithery安装

通过以下方式自动安装适用于Claude Desktop的Gmail集成服务器 史密瑟里:

npx -y @smithery/cli install @Quantum-369/Gmail-mcp-server --client claude
  1. 克隆存储库:
git clone <your-repository-url>
cd gmail-mcp-server
  1. 创建并激活虚拟环境:
python -m venv venv
# On Windows
venv\Scripts\activate
# On Unix/MacOS
source venv/bin/activate
  1. 安装依赖项:
pip install .

在Ubuntu上运行

  1. 安装Python 3.12并创建一个虚拟环境(如果还没有):
    sudo apt install python3.12 python3.12-venv -y
    python3.12 -m venv venv
    source venv/bin/activate
    
  2. 放置您下载的 client_secret.json 在项目根中。
  3. 为您要使用的Gmail帐户生成OAuth令牌。复制URL 将脚本打印到web浏览器中并完成登录过程:
    python gmail_token_creator.py
    
  4. 启动服务器:
    python gmail_server.py
    

设置谷歌云项目

  1. 转到 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 为您的项目启用Gmail API
  4. 创建OAuth 2.0凭据:
    • 转到“API和服务”>“凭据”
    • 点击“创建凭据”>“OAuth客户端ID”
    • 选择“桌面应用程序”作为应用程序类型
    • 下载客户端配置文件
  5. 将下载的文件重命名为 client_secret.json 并将其放置在项目根目录中

配置

  1. 在中设置电子邮件标识符 gmail_token_creator.py:
email_identifier = 'your.email@gmail.com'  # Change this for each account
  1. 运行令牌创建者以验证您的Gmail帐户:
python gmail_token_creator.py

脚本会打印一个授权URL。将此URL复制到您的web浏览器中, 完成谷歌同意流程,并将验证码复制回 终端(如果提示)。将在内部创建令牌文件 token_files/ 为了 未来使用。

  1. 对每个要集成的Gmail帐户重复此过程

服务器结构

  • gmail_server.py:主MCP服务器实现
  • gmail_api.py:Gmail API交互功能
  • google_apis.py:Google API身份验证实用程序
  • 支持文件:
    • read_emails.py:电子邮件阅读功能
    • search_emails.py:电子邮件搜索功能
    • send_emails.py:电子邮件发送功能

用法

启动服务器

python gmail_server.py

使用Docker运行

您还可以使用提供的 Dockerfile:

docker build -t gmail-mcp-server .
docker run -v $(pwd)/client_secret.json:/app/client_secret.json \
           -v $(pwd)/token_files:/app/token_files gmail-mcp-server

容器运行相同的服务器,并将身份验证令牌存储在 token_files 主机上的目录,以便它们在运行之间保持不变。

可用工具

  1. 发送电子邮件:
await send_gmail(
    email_identifier="your.email@gmail.com",
    to="recipient@example.com",
    subject="Test Subject",
    body="Email body content",
    attachment_paths=["path/to/attachment"]
)
  1. 搜索电子邮件:
await search_email_tool(
    email_identifier="your.email@gmail.com",
    query="from:someone@example.com",
    max_results=30,
    include_conversations=True
)
  1. 阅读最新电子邮件:
await read_latest_emails(
    email_identifier="your.email@gmail.com",
    max_results=5,
    download_attachments=False
)
  1. 下载附件:
await download_email_attachments(
    email_identifier="your.email@gmail.com",
    msg_id="message_id",
    download_all_in_thread=False
)

安全考虑

  • 商店 client_secret.json 安全,从不将其提交给版本控制
  • 确保令牌文件的安全,并将其添加到 .gitignore
  • 对敏感信息使用环境变量
  • 定期轮换OAuth凭据
  • 监控API使用情况并设置适当的配额

错误处理

服务器包括全面的错误处理和日志记录:

  • 日志被写入 gmail_mcp.log
  • 文件和控制台日志都已启用
  • 调试的详细错误消息

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 提交您的更改
  4. 推到分支
  5. 创建拉取请求

许可证

塞舌尔2.0

支持

对于问题和功能请求,请使用GitHub问题跟踪器。