The Google MCP server enables integration with multiple Google services:
Calendar: Set default calendar, list calendars, create/update/delete events, find free time slots, and view event details.
Gmail: List labels, send/draft/delete emails, modify email labels, and retrieve email content by ID or index.
Drive: List, search, create, update, delete, and share files; retrieve file content and metadata.
Tasks: Manage task lists (create, delete, set default), list tasks, create/update/complete/delete tasks, and view task details.
Workflows: Chain commands for complex operations, like drafting emails and scheduling meetings in one step.
Enables sending emails with attachments, listing emails with custom queries, reading specific emails, managing labels, and drafting emails.
Provides integration with Google Calendar (creating events, listing events, finding free time slots) and Google Drive (searching files, managing file content, sharing files) and Google Tasks (managing task lists and tasks).
Google MCP Tools
This is a collection of Google-native tools (e.g., Gmail, Calendar) for the MCP protocol, designed to integrate seamlessly with AI clients like Claude or Cursor.
Quick Install
Click below for one-click install with .mcpb:
Related MCP server: Google News MCP Server
What's New in v1.1.0
๐ Major Features
Complete Email Attachment Support:
โ๏ธ Send emails with attachments from local files or Google Drive
๐ฅ Download all email attachments to local storage
๐ Dual attachment sources: Local file paths or Google Drive file IDs
๐ Smart file handling: Automatic MIME type detection and filename sanitization
๐ง Enhanced Email Capabilities
Multi-source attachments: Attach files from local storage or Google Drive in the same email
Custom filenames: Override original filenames for attachments
File size validation: Automatic 25MB Gmail limit enforcement
Cross-platform downloads: Auto-detection of Downloads folder on Windows, macOS, and Linux
Conflict resolution: Automatic file renaming to prevent overwrites
๐ New & Enhanced Tools
google_gmail_send_email: Now supports attachments from local files and Google Drivegoogle_gmail_draft_email: Create drafts with attachmentsgoogle_gmail_download_attachments: Download all email attachments with customizable path
Features
OAuth Management:
Refresh expired access tokens automatically
Update tokens in the token file without re-authentication
Complete re-authentication with automated token cleanup
Maintain session continuity across long-running operations
Gmail:
Send emails with multiple recipients (to, cc, bcc) and attachments from local files or Google Drive.
Download all email attachments to local storage with cross-platform support.
List emails with custom queries, labels, and result limits.
Read specific emails by ID with attachment information.
Manage labels (add, remove, list).
Draft and delete emails.
Calendar:
List calendars and set a default calendar.
Create events with details (summary, start/end time, attendees, etc.).
List upcoming events with customizable filters.
Update or delete existing events.
Find free time slots for scheduling.
Drive:
Filter with search queries
Sort by modification date or other criteria
Customize display count
View detailed file metadata
Read file content (text, docs, spreadsheets)
Create new files with specified content
Update existing files
Delete files (trash or permanent)
Share files with specific permissions
Tasks:
View all task lists
Create new task lists
Delete existing task lists
Set default task list
List tasks with filters
View task details
Create tasks with title, notes, and due dates
Update task properties
Mark tasks as complete
Delete tasks
TODO Plans:
Google Contacts: Search and manage contacts.
And Many More...
You can chain commands for workflows, e.g.:
"List my unread emails, draft a reply to the latest one, and schedule a follow-up meeting tomorrow at 2 PM."
OAuth Token Management
The server includes built-in OAuth token management to handle expired access tokens gracefully:
Automatic Token Refresh: When access tokens expire, you can refresh them without going through the full OAuth flow again
Complete Re-authentication: Automatically handle cases where refresh tokens are invalid or expired
Persistent Storage: Refreshed tokens are automatically saved to your configured token file path
Session Continuity: All Google services are re-initialized with fresh tokens after refresh
Refreshing Tokens
If you encounter authentication errors or want to proactively refresh your tokens, simply ask:
This will:
Use your stored refresh token to get new access tokens
Update the token file with the new credentials
Re-initialize all Google services with fresh authentication
Show you the new token expiration time
Complete Re-authentication
If you get invalid_grant errors or your refresh token has expired, you can start fresh:
This automated process will:
Delete existing tokens from your token file
Start OAuth server to handle the callback
Open browser for fresh authentication
Save new tokens automatically
Re-initialize services with fresh credentials
You'll only need to click "Allow" in the browser - everything else is automated!
Note: If you don't have a valid refresh token, you'll need to go through the initial OAuth authentication flow again.
Manual Installation
Prerequisites:
Install Bun:
brew install oven-sh/bun/bun # macOS/Linux with HomebrewSet Up OAuth:
Create a Google Cloud project in the Google Cloud Console.
Set up OAuth 2.0 credentials (Client ID, Client Secret).
Choose the type Desktop app.
If using test mode, add your email to the test users list.
Make sure to enable API access for desired services (Gmail, Calendar, Drive etc.).
Configure Your Client: Edit your claude_desktop_config.json (or equivalent config file for your client):
Authenticate:
The first time you run the server, it will open a browser for OAuth authentication. Follow the prompts to grant access, and tokens will be saved to GOOGLE_OAUTH_TOKEN_PATH.
Usage
Now, ask Claude to use the google-mcp tool.
Transport Support
This MCP server supports both stdio and HTTP transports via environment variables:
Stdio Transport (Default)
HTTP Transport (Streamable HTTP)
When running in HTTP mode, the server provides these endpoints:
GET /health- Health check endpoint with session countGET /mcp- Session info and server statusPOST /mcp- Main MCP JSON-RPC endpoint for sending requestsDELETE /mcp- End session endpoint
Session Management
The Streamable HTTP transport uses the official MCP SDK with automatic session management:
Automatic Sessions: The server automatically generates secure session IDs
SSE Streaming: Supports Server-Sent Events for real-time communication
JSON Responses: Falls back to JSON responses when SSE is not available
DNS Protection: Built-in security features for production deployment
Configuration for HTTP Transport
For HTTP transport, configure your client with the server URL:
Local Development
Thank you for using Google MCP Tools! If you have any questions or suggestions, feel free to open an issue or contribute to the project.
Play around with the tools and enjoy!!