Gmail Drive MCP

Gmail Drive MCP

Enables users to access and manage their Gmail and Google Drive data via a Streamlit UI or Claude Desktop, supporting email counts, searches, file listings, and storage queries using OAuth authentication.

Category
Visit Server

README

⚔ Quick Start Guide - Gmail & Drive MCP

šŸŽÆ Goal

Access your Gmail and Google Drive data through a beautiful Streamlit interface.


šŸ“¦ Step 1: Install (2 minutes)

# 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)

# 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:

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:

    python gmail_drive_mcp.py
    
  2. Add to Claude config (~/Library/Application Support/Claude/claude_desktop_config.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

# 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! šŸŽ‰

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured