Gmail MCP Server
by Uncommontayo
README.md
# Gmail MCP Server š§
A high-performance Model Context Protocol (MCP) server that enables AI assistants to interact with Gmail securely.



## ⨠Features
- **Smart Email Retrieval**: Fetch unread messages with rich metadata.
- **Thread-Aware Drafting**: Create replies that maintain conversation context.
- **Secure Authentication**: Robust OAuth 2.0 implementation with token management.
- **Enterprise Ready**: Structured for scalability and maintainability.
## šļø Architecture
### System Data Flow
```mermaid
graph TD
User(["š¤ User"]) <-->|"Natural Language"| Claude(["š¤ Claude Desktop"])
subgraph "MCP Server (Local Machine)"
Claude <-->|"JSON-RPC (stdio)"| Main["src/main.py"]
Main -->|Dispatch| Handler["src/handlers.py"]
Handler -->|Call| Client["src/client.py"]
end
Client <-->|"HTTPS / OAuth 2.0"| Gmail(["āļø Google Gmail API"])
style User fill:#f9f,stroke:#333
style Claude fill:#e1f5fe,stroke:#01579b
style Gmail fill:#fce4ec,stroke:#880e4f
```
The project follows standard engineering practices:
```
MLI/
āāā src/
ā āāā main.py # Application Entry Point
ā āāā client.py # Gmail API Client
ā āāā handlers.py # Request Handlers
āāā config/ # Configuration & Credentials
āāā tests/ # Unit Tests
āāā requirements.txt # Dependencies
```
## š Quick Start
### 1. Prerequisite
- Python 3.8+
- Google Cloud Project with Gmail API enabled
### 2. Installation
```bash
# Clone and setup environment
python -m venv .venv
.venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
```
### 3. Configuration
1. Place your Google Cloud `credentials.json` in `config/`.
2. Copy the environment config:
```bash
copy .env.example .env
```
### 4. Claude Integration
Add to your **Claude Desktop** config (`%APPDATA%\Claude\claude_desktop_config.json`):
```json
{
"mcpServers": {
"gmail": {
"command": "C:\\Path\\To\\MLI\\.venv\\Scripts\\python.exe",
"args": ["-m", "src.main"],
"cwd": "C:\\Path\\To\\MLI",
"env": {
"CREDENTIALS_PATH": "config/credentials.json",
"TOKEN_PATH": "config/token.json"
}
}
}
}
```
## š ļø Usage
**Check Emails:**
> "Check my unread emails"
**Draft Reply:**
> "Draft a reply to the email from [Name]"
## š”ļø Security
- Credentials are never committed to version control.
- Tokens are stored locally in `config/`.
- Communication happens directly between your machine and Google API.
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues