Gmail Drive MCP
by gvbigdata
README.md
# ā” Quick Start Guide - Gmail & Drive MCP
## šÆ Goal
Access your Gmail and Google Drive data through a beautiful Streamlit interface.
---
## š¦ Step 1: Install (2 minutes)
```bash
# Install dependencies
pip install -r requirements.txt
```
---
## š Step 2: Get Google Credentials (5 minutes)
### A. Create Project
1. Go to https://console.cloud.google.com/
2. Click "New Project" ā Name: `gmail-drive-mcp` ā Create
### B. Enable APIs
1. Go to "APIs & Services" ā "Library"
2. Search and **Enable**:
- Gmail API
- Google Drive API
### C. Create OAuth Credentials
1. "APIs & Services" ā "Credentials"
2. "Create Credentials" ā "OAuth client ID"
3. First time? Click "Configure Consent Screen":
- User Type: **External**
- App name: `Gmail Drive MCP`
- Add your email twice (support + developer)
- Scopes: Add these URLs:
```
https://www.googleapis.com/auth/gmail.readonly
https://www.googleapis.com/auth/drive.readonly
```
- Test users: Add your Gmail
- Save
4. Now "Create Credentials" ā "OAuth client ID":
- Type: **Desktop app**
- Name: `Gmail Drive Desktop`
- **Download JSON**
5. **Rename downloaded file to `credentials.json`**
6. **Put it in your project folder**
---
## š Step 3: First Run & Authentication (2 minutes)
```bash
# This will open browser for authentication
python gmail_drive_rest.py
```
**What happens:**
1. ā
Browser opens automatically
2. ā
Sign in with your Google account
3. ā
Click "Allow"
4. ā
`token.json` created (your access token)
5. ā
Server starts on port 8000
Keep this terminal running!
---
## šØ Step 4: Open Streamlit UI (1 minute)
**New terminal:**
```bash
streamlit run gmail_drive_ui.py
```
**Access:** http://localhost:8501
---
## š You're Done!
### What you can do now:
**š Dashboard Tab:**
- See inbox count
- See spam count
- See total Drive files
- View storage usage
- Recent emails & files
**š§ Gmail Manager Tab:**
- Count emails by label
- List recent emails
- Search emails (e.g., `from:boss@company.com`)
**š Drive Manager Tab:**
- Count all files
- List recent files
- Search files by name
- Check storage quota
---
## š§ Troubleshooting
### "credentials.json not found"
ā Download it from Google Cloud Console, rename it, put it in project folder
### "Access blocked"
ā Make sure you enabled both Gmail API and Drive API
### Browser doesn't open
ā Copy the URL from terminal and paste in browser
### "Invalid grant"
ā Delete `token.json` and run again to re-authenticate
### Connection error in Streamlit
ā Make sure `gmail_drive_rest.py` is still running in another terminal
---
## š File Structure
```
your-project/
āāā credentials.json ā Download from Google
āāā token.json ā Auto-generated after auth
āāā requirements.txt
āāā gmail_drive_mcp.py ā MCP Server (for Claude)
āāā gmail_drive_rest.py ā REST API (run this!)
āāā gmail_drive_ui.py ā Streamlit UI (run this!)
āāā .gitignore
```
---
## š Next Steps
### Use with Claude Desktop:
1. Run MCP server:
```bash
python gmail_drive_mcp.py
```
2. Add to Claude config (`~/Library/Application Support/Claude/claude_desktop_config.json`):
```json
{
"mcpServers": {
"gmail-drive": {
"command": "python",
"args": ["/full/path/to/gmail_drive_mcp.py"]
}
}
}
```
3. Restart Claude Desktop
4. Ask Claude:
- "How many emails do I have?"
- "Search my emails for messages from John"
- "How many files are in my Drive?"
---
## ā” Quick Commands Reference
```bash
# Install
pip install -r requirements.txt
# Run REST API (Terminal 1)
python gmail_drive_rest.py
# Run Streamlit (Terminal 2)
streamlit run gmail_drive_ui.py
# Run MCP for Claude (Alternative)
python gmail_drive_mcp.py
```
---
## š Security Reminder
**NEVER commit these files to Git:**
- ā credentials.json
- ā token.json
They contain your private keys! Already added to `.gitignore` ā
---
## šÆ Summary
| Terminal | Command | Purpose |
|----------|---------|---------|
| 1 | `python gmail_drive_rest.py` | REST API server |
| 2 | `streamlit run gmail_drive_ui.py` | Web interface |
**Access UI:** http://localhost:8501
That's it! šThis server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues