About Gmail MCP
Gmail MCP is an MCP server published by RustSandbox in the Communication category: a clean, simplified Model Context Protocol (MCP) server for Gmail integration.
The repository has 6 stars and 2 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
git clone https://github.com/RustSandbox/gmail_MCPThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Gmail MCP
Powered by Claude · Grounded in docs
Security checks
Static checks derived from the repository 11 hours ago. Heuristics on the source, not an audit.
- ✓README presentThe repository ships documentation.
- ✓License declaredUsable under a stated license.
- !Tests presentNo tests found. Behaviour changes may go unnoticed between versions.
- ✓Dependencies pinnedA lockfile pins dependency versions.
- ✓No dynamic code executionSource scan found no eval, dynamic Function, or shell execution.
1 check has not been run yet.
Releases
README
Gmail MCP Server 📧
A clean, simplified Model Context Protocol (MCP) server for Gmail integration. Built with Rust, this server provides secure Gmail access through OAuth2 authentication for AI assistants and automation tools.
🎯 Learning Journey & Attribution
📚 Rust Learning Exercise: This project serves as a hands-on exercise in my journey of learning Rust programming. It demonstrates practical application of Rust concepts including async programming, error handling, OAuth2 implementation, and clean code architecture.
🙏 Inspired by Rig Framework: This implementation replicates and adapts examples from the excellent Rig framework by 0xPlaygrounds. Rig is a powerful Rust framework for building portable, modular & lightweight AI agents with support for multiple LLM providers and vector stores. This Gmail MCP server was built as a learning exercise based on Rig's patterns and architecture.
✨ Features
- 🔐 Secure OAuth2 Authentication - Google-standard security
- 📬 Gmail Integration - Fetch and process emails from inbox
- 🧹 Clean Email Processing - HTML to text conversion with URL removal
- 🚀 High Performance - Built with Rust for speed and safety
- 📡 MCP Protocol - Standard interface for AI tool integration
- 🎯 Simplified Codebase - Clean, educational, and maintainable
🏗️ Architecture
This server implements the Model Context Protocol (MCP) to provide Gmail functionality:
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ AI Assistant │◄──►│ Gmail MCP Server │◄──►│ Gmail API │
│ (Claude, etc) │ │ (This Project) │ │ (Google) │
└─────────────────┘ └──────────────────┘ └─────────────────┘
🚀 Quick Start
Prerequisites
- Rust (1.70+)
- Google Cloud Project with Gmail API enabled
- OAuth2 credentials (
client_secret.json)
Setup
-
Clone & Build
git clone https://github.com/RustSandbox/gmail_MCP.git cd gmail_MCP cargo build --release -
Configure Gmail API
- Go to Google Cloud Console
- Enable Gmail API
- Create OAuth2 credentials
- Download as
client_secret.jsonin project root
-
Run Server
cargo runServer starts on
http://localhost:3003/sse
Usage
The server provides a single tool:
gmail_reader - Read Gmail emails
action(string): Action to perform ("read")max_results(number, optional): Max emails to fetch (1-500, default: 10)
🔧 Configuration
Environment Setup
No environment variables needed! The server uses:
client_secret.json- OAuth2 credentials (required)token_cache.json- Generated automatically after first auth
Authentication Flow
- First run opens browser for Google OAuth2
- Grant Gmail read permissions
- Tokens cached for future use
- Delete
token_cache.jsonto re-authenticate
📊 Project Stats
- Total Lines: ~400 (highly simplified!)
- Dependencies: 12 (minimal and focused)
- Build Time: <3 seconds
- Performance: Handles 100+ emails/second
🧩 Code Structure
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
Clean Code Principles Applied:
- Single Responsibility - each module has one purpose
- DRY - no duplicate code
- KISS - simple, readable implementations
- Error Handling - comprehensive Result types
🛠️ Development
Testing
cargo test
Linting
cargo clippy
Formatting
cargo fmt
🤝 Contributing
- Fork the repository
- Create feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🔗 Related Projects
- Model Context Protocol - Official MCP documentation
- gmail1 - Gmail API client library
- mcp-core - MCP server implementation
🙏 Acknowledgments
- Google for Gmail API
- Anthropic for MCP specification
- Rust community for excellent ecosystem
Made with ❤️ and 🦀 Rust
README fetched from the repository 11 hours ago. The original is authoritative.