Gmail MCP
local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Provides comprehensive Gmail API access including sending/drafting emails, message and thread management, label operations, attachment handling, settings configuration (vacation responder, IMAP/POP), and mailbox history tracking.
Enables OAuth2 authentication using Google Cloud credentials for secure access to Gmail services.
Gmail MCP
A Model Context Protocol (MCP) implementation for the Gmail API, providing a standardized interface for email management, sending, and retrieval.
Features
- Complete Gmail API coverage including messages, threads, labels, drafts, and settings
- Support for sending, drafting, and managing emails
- Label management with customizable colors and visibility settings
- Thread operations for conversation management
- Settings management including vacation responder, IMAP/POP, and language settings
- History tracking for mailbox changes
- Secure OAuth2 authentication using your Google Cloud credentials
Installation
⚠️ NOTE: Due to the large number of endpoints available on this server, it is recommended that you install and setup Heimdall to limit the number of endpoints exposed to your client applications.
To use this MCP, you'll need to set up authentication with Gmail:
- Go to the Google Cloud Console
- Create a new project or select an existing one
- Enable the Gmail API for your project
- Go to Credentials and create an OAuth 2.0 Client ID
- Choose "Desktop app" as the application type (Warning: if you don't choose this type the server will not be able to parse the keys from your JSON file)
- Download the client credentials JSON file
- Save the downloaded credentials file to
~/.gmail-mcp/gcp-oauth.keys.json
NPX (Recommended)
Add the following to your MCP client config.json
(~/.heimdall/config.json
if using Heimdall):
Manual Download
- Download the repo:
- Install packages and build (inside cloned repo):
- Add the following to your MCP client
config.json
(~/.heimdall/config.json
if using Heimdall):
Smithery
To install for Claude Desktop automatically via Smithery:
Authentication
Automated (recommended)
This MCP provides an automated authentication flow:
- First, acquire OAuth credentials and download the JSON file.
- Rename the JSON file to
gcp-oauth.keys.json
and copy it to$HOME/.gmail-mcp/
, or wherever you've set it inMCP_CONFIG_DIR
. - Run the authentication command:
- A browser window will automatically open to the Google OAuth consent screen
- After granting access, you can close the browser window
- The tokens will be automatically saved to
$HOME/.gmail-mcp/credentials.json
The MCP will automatically:
- Manage token refresh
- Save credentials to disk
- Handle the OAuth callback
- Open the authentication URL in your default browser
Note: by default this server uses port 3000
to listen for the OAuth response. You can set AUTH_SERVER_PORT
to something else if you are running another service on 3000
.
You can customize the config location by setting MCP_CONFIG_DIR
before running the command (optional):
Manual (suggested for Docker usage)
If you wish, you may also provide credentials directly through the environment variables:
Supported Endpoints
User Management
get_profile
: Get the current user's Gmail profilestop_mail_watch
: Stop receiving push notificationswatch_mailbox
: Set up push notifications for mailbox changes
Message Management
Managing Messages
list_messages
: List messages with optional filteringget_message
: Get a specific messageget_attachment
: Get a message attachmentmodify_message
: Modify message labelssend_message
: Send an email message to specified recipientsdelete_message
: Permanently delete a messagetrash_message
: Move message to trashuntrash_message
: Remove message from trashbatch_modify_messages
: Modify multiple messagesbatch_delete_messages
: Delete multiple messages
Label Management
list_labels
: List all labelsget_label
: Get a specific labelcreate_label
: Create a new labelupdate_label
: Update a labelpatch_label
: Partial update of a labeldelete_label
: Delete a label
Thread Management
list_threads
: List email threadsget_thread
: Get a specific threadmodify_thread
: Modify thread labelstrash_thread
: Move thread to trashuntrash_thread
: Remove thread from trashdelete_thread
: Delete a thread
Draft Management
list_drafts
: List drafts in the user's mailboxget_draft
: Get a specific draft by IDcreate_draft
: Create a draft email in Gmailupdate_draft
: Replace a draft's contentdelete_draft
: Delete a draftsend_draft
: Send an existing draft
Settings Management
Auto-Forwarding
get_auto_forwarding
: Get auto-forwarding settingsupdate_auto_forwarding
: Update auto-forwarding settings
IMAP Settings
get_imap
: Get IMAP settingsupdate_imap
: Update IMAP settings
POP Settings
get_pop
: Get POP settingsupdate_pop
: Update POP settings
Vacation Responder
get_vacation
: Get vacation responder settingsupdate_vacation
: Update vacation responder
Language Settings
get_language
: Get language settingsupdate_language
: Update language settings
Delegates
list_delegates
: List account delegatesget_delegate
: Get a specific delegateadd_delegate
: Add a delegateremove_delegate
: Remove a delegate
Filters
list_filters
: List email filtersget_filter
: Get a specific filtercreate_filter
: Create a new filterdelete_filter
: Delete a filter
Forwarding Addresses
list_forwarding_addresses
: List forwarding addressesget_forwarding_address
: Get a specific forwarding addresscreate_forwarding_address
: Create a forwarding addressdelete_forwarding_address
: Delete a forwarding address
Send-As Settings
list_send_as
: List send-as aliasesget_send_as
: Get a specific send-as aliascreate_send_as
: Create a send-as aliasupdate_send_as
: Update a send-as aliaspatch_send_as
: Partial update of a send-as aliasverify_send_as
: Send verification emaildelete_send_as
: Delete a send-as alias
S/MIME Settings
list_smime_info
: List S/MIME configurationsget_smime_info
: Get a specific S/MIME configinsert_smime_info
: Upload a new S/MIME configset_default_smime_info
: Set default S/MIME configdelete_smime_info
: Delete an S/MIME config
Contributing
Contributions are welcomed and encouraged. Contact austin@shinzolabs.com with any questions, comments or concerns.
You must be authenticated.
Manage your emails effortlessly with 60+ tools for drafting, sending, retrieving, and organizing messages. Streamline your email workflow with complete Gmail API coverage, including label and thread management.