Gmail集成服务器

一个基于Rust构建的简化版Gmail集成服务器,通过OAuth2认证为AI助手和自动化工具提供安全的Gmail访问。

  • by RustSandbox
  • Rust
  • 本地部署
  • 6 星标
  • 更新于
在 GitHub 查看 rustsandbox/gmail_mcp

使用说明

Gmail MCP服务器📧

A. 干净、简化 用于Gmail集成的模型上下文协议(MCP)服务器。该服务器采用Rust构建,通过OAuth2身份验证为AI助手和自动化工具提供安全的Gmail访问。

🎯 学习历程与归因

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

🙏 灵感来自钻机框架:此实施复制并改编了优秀的示例 钻机框架 0xPlaygrounds。Rig是一个强大的Rust框架,用于构建可移植、模块化和轻量级的AI代理,支持多个LLM提供者和向量存储。这个Gmail MCP服务器是基于Rig的模式和架构构建的学习练习。

✨ 特性

  • 🔐 安全的OAuth2身份验证 -谷歌标准安全
  • 📬 Gmail集成 -从收件箱获取和处理电子邮件
  • 🧹 干净的电子邮件处理 -HTML到文本转换,并删除URL
  • 🚀 高性能 -采用Rust构建,速度和安全
  • 📡 MCP协议 -AI工具集成的标准接口
  • 🎯 简化的代码库 -干净、有教育意义且可维护

🏗️ 建筑

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

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

🚀 快速开始

先决条件

  • 锈 (1.70+)
  • 启用Gmail API的谷歌云项目
  • OAuth2凭据(client_secret.json)

设置

  1. 克隆和构建

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

    • 首选 谷歌云控制台
    • 启用Gmail API
    • 创建OAuth2凭据
    • 下载为 client_secret.json 在项目根中
  3. 运行服务器

    cargo run
    

    服务器启动于 http://localhost:3003/sse

用法

服务器提供了一个工具:

gmail_reader -阅读Gmail电子邮件

  • action (string):要执行的操作(“读取”)
  • 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 server setup and tool registration
├── lib.rs           # Gmail API integration and OAuth2 
├── reademail.rs     # Email processing and URL cleanup
└── Cargo.toml       # Dependencies and metadata

应用的干净代码原则:

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

🛠️ 发展

测试

cargo test

代码检查

cargo clippy

格式化

cargo fmt

🤝 贡献

  1. 分叉存储库
  2. 创建特征分支(git checkout -b feature/amazing-feature)
  3. 提交更改(git commit -m 'Add amazing feature')
  4. 推送到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

📝 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🔗 相关项目

🙏 致谢

  • Google for Gmail API
  • MCP规范的拟人化
  • 优秀生态系统的Rust社区

由以下材料制成❤️ 和🦀 锈