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.
README
Gmail Drive Calendar MCP Server
Transform Claude into a Google Workspace powerhouse with this comprehensive MCP server integration.
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
-
Create Google Cloud Project
- Go to Google Cloud Console
- Create new project or select existing one
-
Enable Required APIs
- Gmail API - Google Calendar API - Google Drive API -
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.jsonandtoken.jsonsecure - 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
-
Create Service Method
// In appropriate service file async newFeature(params) { // Implementation } -
Define Tool Schema
// In tool-definations.js { name: 'new_feature', description: 'What it does', inputSchema: { /* schema */ } } -
Add Tool Handler
// In tool-handlers.js async handleNewFeature(args) { // Handle the tool call } -
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
- Code Style: Follow existing patterns and ESLint rules
- Documentation: Update README and add code comments
- Commits: Use conventional commit messages
Pull Request Process
- 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
- LinkedIn: Your Profile
<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
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
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.
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.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
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.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.