gmail-drive-mcp-server

gmail-drive-mcp-server

Enables Claude to manage Gmail, Google Calendar, and Google Drive, including sending emails, scheduling meetings, and organizing files, with integrated workflows.

Category
Visit Server

README

Gmail Drive Calendar MCP Server

Transform Claude into a Google Workspace powerhouse with this comprehensive MCP server integration.

Node.js License: MIT MCP Google APIs

What This Does

Turn Claude into your personal productivity assistant that can:

  • Manage Gmail - Send, organize, search, and analyze emails
  • Control Google Calendar - Create meetings, schedule events, send invites
  • Organize Google Drive - Create, share, and manage files and folders
  • Generate Google Meet links - Instant video conferencing setup
  • Execute complex workflows - Multi-step automation across all services

Key Features

Email Management

  • Search emails with advanced Gmail queries
  • Send professional emails with attachments
  • Organize with labels, archive, star, delete
  • Analyze email patterns and statistics
  • Auto-manage inbox organization

Meeting & Calendar

  • Create Google Meet meetings instantly
  • Schedule with natural language ("2 PM today")
  • Automatic timezone handling for global teams
  • Send calendar invites and reminders
  • List and manage upcoming meetings

File Operations

  • Create and edit Google Docs, Sheets, Slides
  • Organize files into structured folders
  • Share files with granular permissions
  • Collaborate with teams seamlessly
  • Bulk file operations and management

🔄 Intelligent Workflows

  • Project Setup: Create meeting + folder + invites in one command
  • Event Coordination: Full event planning automation
  • Research Management: Organize academic/professional research
  • Team Collaboration: Streamline group project workflows

Architecture

---
config:
  theme: default
---
graph TB
    User[User<br/>Master's Student] --> Claude[🤖 Claude AI<br/>Chat Interface]
    Claude <==> MCP[MCP Server<br/>The Brain<br/>Node.js + ES Modules]
    MCP --> Auth[OAuth2 Auth<br/>Token Management<br/>Security Layer]
    MCP --> Gmail[Gmail Service<br/>Email Operations]
    MCP --> Calendar[Calendar Service<br/>Meeting Management]
    MCP --> Drive[Drive Service<br/>File Operations]
    MCP --> Meet[Meet Integration<br/>Video Conferencing]
    Auth --> GoogleAuth[Google OAuth2<br/>Secure Authentication]
    Gmail --> GmailAPI[Gmail API<br/>Google Servers]
    Calendar --> CalendarAPI[Calendar API<br/>Google Servers]
    Drive --> DriveAPI[Drive API<br/>Google Servers]
    Meet --> MeetAPI[Meet API<br/>Google Servers]
    Claude -.->|"Create meeting for 2 PM"| MCP
    MCP -.->|"Tool Call: create_meeting"| Calendar
    Calendar -.->|"API Request"| CalendarAPI
    CalendarAPI -.->|"Meeting Created"| Calendar
    Calendar -.->|"Success Response"| MCP
    MCP -.->|"Meeting created successfully!"| Claude
    classDef userStyle fill:#e1f5fe,stroke:#0277bd,stroke-width:2px
    classDef claudeStyle fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
    classDef mcpStyle fill:#e8f5e8,stroke:#2e7d32,stroke-width:3px
    classDef serviceStyle fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    classDef apiStyle fill:#fce4ec,stroke:#c2185b,stroke-width:2px
    classDef authStyle fill:#fff8e1,stroke:#f9a825,stroke-width:2px
    class User userStyle
    class Claude claudeStyle
    class MCP mcpStyle
    class Gmail,Calendar,Drive,Meet serviceStyle
    class GmailAPI,CalendarAPI,DriveAPI,MeetAPI apiStyle
    class Auth,GoogleAuth authStyle

Workflow

---
config:
  theme: redux-dark
---
sequenceDiagram
    participant U as User
    participant C as Claude
    participant MCP as MCP Server
    participant Auth as Auth Manager
    participant Gmail as Gmail Service
    participant Cal as Calendar Service
    participant Drive as Drive Service
    participant G as Google APIs
    Note over U,G: Example: "Create team meeting and send invites"
    U->>C: "Create a meeting for 2 PM today and invite the team"
    C->>MCP: Tool Call: create_meeting_and_send
    MCP->>Auth: Check authentication
    Auth-->>MCP: Tokens valid
    par Create Meeting
        MCP->>Cal: Create calendar event
        Cal->>G: POST /calendar/events
        G-->>Cal: Event created with Meet link
        Cal-->>MCP: Meeting details
    and Send Invites
        MCP->>Gmail: Send calendar invites
        Gmail->>G: POST /gmail/send
        G-->>Gmail: Emails sent
        Gmail-->>MCP: Invites sent
    and Create Document
        MCP->>Drive: Create meeting notes doc
        Drive->>G: POST /drive/files
        G-->>Drive: Document created
        Drive-->>MCP: Document ready
    end
    MCP->>MCP: Compile results
    MCP-->>C: Success response with details
    C-->>U: "Meeting created! Invites sent to team. Notes doc ready."
    Note over U,G: Total time: ~10 seconds for complex workflow

Server Component

---
config:
  layout: dagre
  theme: base
  look: classic
---
flowchart LR
 subgraph subGraph0["Core Components"]
        Server["MCP Server<br>- Request Handler<br>- Tool Registry<br>- Response Formatter"]
        Auth["Auth Manager<br>- OAuth2 Flow<br>- Token Management<br>- Security Layer"]
  end
 subgraph subGraph1["Service Layer"]
        Gmail["Gmail Service<br>- Search emails<br>- Send emails<br>- Manage labels<br>- Email analysis"]
        Calendar["Calendar Service<br>- Create events<br>- Schedule meetings<br>- Generate Meet links<br>- Timezone handling"]
        Drive["Drive Service<br>- Create files<br>- Share documents<br>- Organize folders<br>- Manage permissions"]
        Meet["Meet Integration<br>- Coordinate workflows<br>- Format invitations<br>- Send reminders<br>- Handle RSVPs"]
  end
 subgraph subGraph2["Tool Handlers"]
        EmailTools["Email Tools<br>- search_emails<br>- send_email<br>- delete_email<br>- create_label"]
        CalendarTools["Calendar Tools<br>- create_meeting<br>- schedule_event<br>- send_reminder<br>- list_meetings"]
        DriveTools["Drive Tools<br>- create_file<br>- share_file<br>- organize_folder<br>- update_permissions"]
        WorkflowTools["Workflow Tools<br>- create_and_send_meet<br>- project_setup<br>- bulk_operations<br>- smart_scheduling"]
  end
 subgraph subGraph3["Schema Definitions"]
        Schemas["Tool Schemas<br>- Input validation<br>- Response formatting<br>- Error handling<br>- Type definitions"]
  end
 subgraph subGraph4["MCP Server (The Brain)"]
    direction TB
        subGraph0
        subGraph1
        subGraph2
        subGraph3
  end
 subgraph subGraph5["External Services"]
        GoogleAPIs["Google APIs<br>- Gmail API<br>- Calendar API<br>- Drive API<br>- OAuth2 API"]
  end
 subgraph subGraph6["Claude Integration"]
        Claude["Claude AI<br>- Natural language<br>- Tool discovery<br>- Response parsing<br>- Context management"]
  end
    Server --> Auth & Gmail & Calendar & Drive & Meet
    Gmail --> EmailTools & GoogleAPIs
    Calendar --> CalendarTools & GoogleAPIs
    Drive --> DriveTools & GoogleAPIs
    Meet --> WorkflowTools
    EmailTools --> Schemas
    CalendarTools --> Schemas
    DriveTools --> Schemas
    WorkflowTools --> Schemas
    Auth --> GoogleAPIs
    Claude <--> Server
     Server:::coreStyle
     Auth:::coreStyle
     Gmail:::serviceStyle
     Calendar:::serviceStyle
     Drive:::serviceStyle
     Meet:::serviceStyle
     EmailTools:::toolStyle
     CalendarTools:::toolStyle
     DriveTools:::toolStyle
     WorkflowTools:::toolStyle
     Schemas:::toolStyle
     GoogleAPIs:::externalStyle
     Claude:::claudeStyle
    classDef coreStyle fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px
    classDef serviceStyle fill:#fff3e0,stroke:#f57c00,stroke-width:2px
    classDef toolStyle fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
    classDef externalStyle fill:#fce4ec,stroke:#c2185b,stroke-width:2px
    classDef claudeStyle fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px

Installation

Prerequisites

  • Node.js 18+ installed
  • Google Cloud Project with APIs enabled
  • Claude Pro subscription (for MCP support)
  • OAuth2 credentials from Google Cloud Console

Step 1: Clone Repository

git clone https://github.com/SmitPatel-31/gmail-drive-mcp-server
cd gmail-drive-mcp-server
npm install

Step 2: Google Cloud Setup

  1. Create Google Cloud Project

  2. Enable Required APIs

    - Gmail API
    - Google Calendar API  
    - Google Drive API
    
  3. Create OAuth2 Credentials

    • Go to "APIs & Services" → "Credentials"
    • Create "OAuth 2.0 Client IDs"
    • Download as credentials.json
    • Place in project root directory

Step 3: Authentication Setup

# Run interactive authentication setup
node auth.js

# Follow the prompts to:
# 1. Visit the authorization URL
# 2. Grant permissions
# 3. Enter the authorization code
# 4. Tokens will be saved automatically

Step 4: Start the Server

# Start the MCP server
npm start


### Step 5: Configure Claude

Add the MCP server to your Claude configuration:

```json
{
  "mcpServers": {
    "gmail-drive-server": {
      "command": "node",
      "args": ["path/to/your/server.js"],
      "env": {}
    }
  }
}

Available Tools

Gmail Operations

Tool Description Example
search_emails Search emails with Gmail queries "Find emails from john@company.com about project"
send_email Send emails with attachments "Send progress update to the team"
delete_email Delete specific emails "Delete that spam email"
archive_email Archive emails "Archive all newsletters"
create_label Create Gmail labels "Create 'Important Projects' label"
analyze_email_patterns Email statistics and analytics "Show my email patterns from last month"

Calendar & Meetings

Tool Description Example
create_meeting Schedule meetings with Meet links "Create team meeting for 2 PM today"
create_quick_meet Instant meeting in 5 minutes "Quick standup meeting with the team"
create_instant_meet Meeting starting in 2 minutes "Emergency call right now"
create_meeting_natural Natural language scheduling "6 PM to 8 PM today for study group"
send_meet_reminder Send meeting reminders "Remind everyone about tomorrow's demo"
list_upcoming_meetings Show upcoming meetings "What meetings do I have this week?"

Google Drive Operations

Tool Description Example
create_file Create documents, sheets, slides "Create project proposal document"
update_file Edit existing files "Update the meeting notes"
share_file Share with permissions "Share with edit access to the team"
create_folder Organize with folders "Create Q4 Planning folder"
move_file Reorganize files "Move all drafts to Final folder"
search_drive_files Find files quickly "Find all files containing 'budget'"

Workflow Automation

Tool Description Example
create_meet_and_send Meeting + email automation "Create client call and send professional invite"
project_setup Complete project initialization "Set up new website project with all resources"
bulk_email_management Process multiple emails "Organize my inbox and respond to urgent items"

Usage Examples

Academic Use Cases

// Thesis defense preparation
"Set up my thesis defense for next Friday at 2 PM, invite my committee, create presentation template, and send preparation checklist"

// Group project coordination  
"Create our capstone project workspace: weekly meeting, shared folder, task tracking document, and team communication setup"

// Research organization
"Organize my literature review: create categorized folders, move research papers, and set up citation tracking"

Professional Workflows

// Client meeting setup
"Schedule client presentation for Thursday 10 AM, create agenda document, invite stakeholders, and send professional confirmation"

// Team collaboration
"Set up sprint planning: create meeting, invite dev team, prepare backlog document, and schedule follow-up sessions"

// Event coordination
"Organize company hackathon: create event calendar, set up registration, prepare resource folders, and coordinate communications"

Personal Productivity

// Weekly planning
"Set up my weekly review meeting, create planning template, organize last week's documents, and prepare agenda"

// Travel coordination
"Plan conference trip: create itinerary, share with team, set up out-of-office, and coordinate coverage meetings"

🔒 Security & Privacy

Data Protection

  • OAuth2 Authentication: Industry-standard secure authentication
  • Local Token Storage: Tokens stored locally, never transmitted to third parties
  • Minimal Permissions: Only requests necessary Google API scopes
  • No Data Collection: Your data stays between you, Claude, and Google

Best Practices

  • Keep credentials.json and token.json secure
  • Never commit authentication files to version control
  • Regularly review Google account permissions
  • Use environment variables for sensitive configuration

Compliance

  • GDPR compliant (no data collection)
  • Student-friendly (works with educational accounts)
  • Enterprise-ready (supports G Suite/Workspace)

Troubleshooting

Common Issues

Authentication Errors

# Clear tokens and re-authenticate
rm token.json
node auth.js
node test-auth.js

API Rate Limits

# Check quota usage in Google Cloud Console
# Implement exponential backoff (already included)

Permission Errors

# Verify API enablement
# Check OAuth2 scope configuration
# Confirm credentials.json format

Error Codes

Code Description Solution
AUTH_FAILED Authentication issues Re-run auth setup
API_QUOTA_EXCEEDED Rate limit reached Wait and retry
INVALID_PERMISSIONS Scope issues Check OAuth2 scopes
NETWORK_ERROR Connection problems Check internet connection

Adding New Features

  1. Create Service Method

    // In appropriate service file
    async newFeature(params) {
      // Implementation
    }
    
  2. Define Tool Schema

    // In tool-definations.js
    {
      name: 'new_feature',
      description: 'What it does',
      inputSchema: { /* schema */ }
    }
    
  3. Add Tool Handler

    // In tool-handlers.js
    async handleNewFeature(args) {
      // Handle the tool call
    }
    
  4. Register Tool

    // In server.js switch statement
    case 'new_feature':
      return await this.handleNewFeature(args);
    

Contributing

We welcome contributions! Here's how to get started:

Development Setup

# Fork the repository
git clone https://github.com/your-username/gmail-drive-mcp-server
cd gmail-drive-mcp-server

# Create feature branch
git checkout -b feature/amazing-feature

# Install dependencies
npm install

Contribution Guidelines

  1. Code Style: Follow existing patterns and ESLint rules
  2. Documentation: Update README and add code comments
  3. Commits: Use conventional commit messages

Pull Request Process

  1. Submit pull request with clear description

Roadmap

Current Version (v2.0)

  • ✅ Gmail, Calendar, Drive integration
  • ✅ Google Meet automation
  • ✅ Natural language time parsing
  • ✅ Comprehensive error handling
  • ✅ Security best practices

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Anthropic for Claude and the MCP framework
  • Google for comprehensive APIs and documentation
  • Open Source Community for inspiration and best practices
  • Contributors who make this project better

Support

Getting Help

  • Documentation: Check docs/ folder for detailed guides
  • Bug Reports: Create GitHub issue with reproduction steps
  • Feature Requests: Open GitHub discussion
  • Direct Contact: [patel.smit3131@gmail.com]

Community


<div align="center">

⭐ Star this repository if it helped you be more productive!

🔗 Share with friends who need workflow automation

🤝 Contribute to make it even better

</div>


Built with ❤️ by a productivity-obsessed master's student who got tired of manual workflows.

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