Gmail MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Gmail MCP Servershow my priority emails needing response"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Gmail MCP Server
A local MCP server that connects Claude Code to your Gmail account for reading, searching, drafting, and managing emails.
Required OAuth Scopes
Scope | Purpose |
| Read emails and search inbox |
| Create drafts |
| Modify labels, mark read/unread |
| Read and create filters |
Related MCP server: Gmail MCP Server
Features
Read & Search: List emails, search with Gmail's powerful query syntax
Draft Responses: Create drafts that open directly in Gmail for editing/sending
Label Management: List, create, and apply labels to messages
Filter Management: Create filters to automatically organize incoming mail
Smart Workflows: Find priority emails, identify newsletters, daily summaries
Installation
1. Clone and Build
cd ~/Projects/emailbot # or wherever you cloned this
npm install
npm run build2. Set Up Google Cloud Credentials
Go to Google Cloud Console
Create a new project (or select existing)
Enable the Gmail API:
Search for "Gmail API" and click Enable
Configure OAuth consent screen:
Choose "External" user type
Fill in app name (e.g., "Gmail MCP") and your email
Add your email as a test user
Create OAuth 2.0 credentials:
Go to Credentials → Create Credentials → OAuth 2.0 Client ID
Choose "Desktop application"
Download the JSON file
Save as
~/.gmail-mcp/credentials.json
Or run the setup wizard:
npm run setup3. Add to Claude Code
Add to your Claude Code MCP configuration:
claude mcp add --transport stdio gmail -- node /path/to/emailbot/build/index.jsOr add manually to ~/.claude/settings.local.json:
{
"mcpServers": {
"gmail": {
"command": "node",
"args": ["/absolute/path/to/emailbot/build/index.js"]
}
}
}4. Authenticate
In Claude Code, run:
Use gmail_auth_status to check authenticationFollow the prompts to complete OAuth.
Available Tools
Authentication
gmail_auth_status- Check auth status, get setup instructionsgmail_authenticate- Start OAuth flowgmail_complete_auth- Complete OAuth with code
Email Reading
gmail_list_emails- List recent emails with optional querygmail_get_email- Get full email content by IDgmail_search- Search with Gmail query syntax
Drafts
gmail_create_draft- Create draft (returns Gmail link)gmail_list_drafts- List current drafts
Labels
gmail_list_labels- List all labels with countsgmail_create_label- Create new labelgmail_modify_labels- Add/remove labels from emails
Filters
gmail_list_filters- List all filtersgmail_create_filter- Create auto-filtergmail_delete_filter- Delete filter
Utilities
gmail_mark_read- Mark email as readgmail_mark_unread- Mark email as unread
Smart Workflows
gmail_get_priority_emails- Get emails needing responsegmail_find_newsletters- Find newsletter sendersgmail_find_unsubscribe_candidates- Find unsubscribe opportunitiesgmail_daily_summary- Daily inbox summary
Example Workflows
Get Priority Emails to Respond To
Show me priority emails I need to respond toDraft a Response
Read email ID abc123 and draft a response accepting their meeting requestSet Up Newsletter Filter
Find newsletters in my inbox, then create a filter for [sender]
that adds the "Newsletter" label and marks as readDaily Summary
Give me my daily email summaryGmail Search Syntax
The server supports Gmail's full search syntax:
is:unread- Unread emailsfrom:sender@example.com- From specific senderto:me- Sent directly to yousubject:keyword- Subject contains keywordhas:attachment- Has attachmentsolder_than:7d- Older than 7 daysnewer_than:1d- From last 24 hours-category:promotions- Exclude promotions
Security Notes
Credentials stored in
~/.gmail-mcp/credentials.jsonOAuth tokens stored in
~/.gmail-mcp/token.jsonNever commit these files to git
Server only creates drafts, never sends automatically
All sends require manual action in Gmail UI
Troubleshooting
"Not authenticated" errors
Run gmail_auth_status and follow setup instructions.
OAuth callback fails
Make sure no other process is using port 3000.
Token expired
Delete ~/.gmail-mcp/token.json and re-authenticate.
License
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect any mailbox to Claude, ChatGPT & AI: read, send, reply, schedule & search emails.
Manage Gmail end-to-end: search, read, send, draft, label, and organize threads. Automate workflow…
Your mailboxes in ChatGPT and Claude: Gmail, iCloud, Fastmail, any IMAP. Passwords stay yours.
Manage Gmail messages, threads, labels, drafts, and settings from your workflows. Send and organiz…
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables reading, sending, searching, and managing Gmail through Claude using the official Google Gmail API.93 npm3MIT
- AlicenseNot gradedqualityCmaintenanceEnables Claude to read, search, send, label, and trash emails in any Gmail account via Google's Gmail API, using OAuth2 authentication with automatic token refresh.67 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude to read, search, send, and manage Gmail messages and threads through natural language.164 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables Gmail integration with Claude Code for reading, sending, searching emails, and managing labels through natural language.164 npmMIT