返回市场
gmail_mcp服务器

gmail_mcp服务器

作者:RustSandbox6 星标更新:2025-05-24

项目介绍

Gmail MCP Server 📧

<div align="center"> <img src="gmail_mcp_logo.png" alt="Gmail MCP Server Logo" width="200"/> </div>

一个用于Gmail集成的简洁、简化的模型上下文协议(MCP)服务器。该服务器使用Rust构建,通过OAuth2认证为AI助手和自动化工具提供安全的Gmail访问。

🎯 学习旅程与归属

📚 Rust学习练习:这个项目作为我学习Rust编程过程中的实践练习。它展示了Rust概念的实际应用,包括异步编程、错误处理、OAuth2实现以及干净的代码架构。

🙏 受Rig框架启发:此实现复制并改编了由0xPlaygrounds提供的Rig框架中的例子。Rig是一个强大的Rust框架,用于构建便携式、模块化且轻量级的AI代理,支持多个LLM提供商和向量存储。这个Gmail MCP服务器是基于Rig的模式和架构构建的学习练习。

✨ 特性

  • 🔐 安全的OAuth2认证 - 遵循Google标准的安全措施
  • 📬 Gmail集成 - 获取并处理收件箱中的邮件
  • 🧹 干净的邮件处理 - 将HTML转换为文本,并移除URL
  • 🚀 高性能 - 使用Rust构建,确保速度和安全性
  • 📡 MCP协议 - 用于AI工具集成的标准接口
  • 🎯 简化的代码库 - 清晰、教育性和可维护性

🏗️ 架构

此服务器实现了模型上下文协议(MCP),以提供Gmail功能:

┌─────────────────┐    ┌──────────────────┐    ┌─────────────────┐
│   AI Assistant  │◄──►│  Gmail MCP Server │◄──►│   Gmail API     │
│   (Claude, etc) │    │   (本项目)        │    │   (Google)      │
└─────────────────┘    └──────────────────┘    └─────────────────┘

🚀 快速开始

前提条件

  • Rust (1.70+)
  • 启用了Gmail API的Google云项目
  • OAuth2凭证 (client_secret.json)

设置

  1. 克隆并构建

    git clone https://github.com/RustSandbox/gmail_MCP.git
    cd gmail_MCP
    cargo build --release
    
  2. 配置Gmail API

    • 访问Google Cloud Console
    • 启用Gmail API
    • 创建OAuth2凭证
    • 下载为client_secret.json并放置在项目根目录
  3. 运行服务器

    cargo run
    

    服务器将在http://localhost:3003/sse启动

使用

服务器提供了一个工具:

gmail_reader - 读取Gmail邮件

  • action (字符串):要执行的操作 ("read")
  • max_results (数字,可选):要获取的最大邮件数 (1-500,默认值:10)

🔧 配置

环境设置

无需环境变量!服务器使用:

  • client_secret.json - OAuth2凭证 (必需)
  • token_cache.json - 在首次认证后自动生成

认证流程

  1. 第一次运行时会打开浏览器进行Google OAuth2认证
  2. 授予Gmail读取权限
  3. 令牌缓存供未来使用
  4. 删除token_cache.json以重新认证

📊 项目统计

  • 总行数:约400行 (高度简化!)
  • 依赖项:12个 (最小化且专注)
  • 构建时间:<3秒
  • 性能:每秒处理100+封邮件

🧩 代码结构

src/
├── main.rs          # MCP服务器设置和工具注册
├── lib.rs           # Gmail API集成和OAuth2
├── reademail.rs     # 邮件处理和URL清理
└── Cargo.toml       # 依赖项和元数据

应用的清晰编码原则:

  • 单一职责 - 每个模块只有一个目的
  • DRY - 不重复代码
  • KISS - 简单、易读的实现
  • 错误处理 - 全面的结果类型

🛠️ 开发

测试

cargo test

代码检查

cargo clippy

格式化

cargo fmt

🤝 贡献

  1. 分叉仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m '添加惊人的功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求

📝 许可证

本项目采用MIT许可证 - 详情见LICENSE文件。

🔗 相关项目

🙏 致谢

  • Google提供Gmail API
  • Anthropic提供MCP规范
  • Rust社区提供了优秀的生态系统

用❤️ 和 🦀 Rust制作