gmail-mcp-server-2
Gmail MCP is a Model Context Protocol implementation designed for the Gmail API, providing a standardized and secure interface for managing emails and related settings. It supports comprehensive Gmail API functionalities, including email management, label handling, and authentication features, enabling seamless integration and control over 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
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 claude_desktop_config.json
:
{
"mcpServers": {
"gmail": {
"command": "npx",
"args": [
"@shinzolabs/gmail-mcp"
]
}
}
}
Manual Download
- Download the repo:
git clone https://github.com/shinzo-labs/gmail-mcp.git
- Install packages and build (inside cloned repo):
pnpm i && pnpm run build
- Add the following to your
claude_desktop_config.json
:
{
"mcpServers": {
"gmail": {
"command": "node",
"args": [
"/path/to/gmail-mcp/dist/index.js"
]
}
}
}
Smithery
To install for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @shinzo-labs/gmail-mcp --client claude
Authentication Flow
The MCP provides an automated authentication flow:
-
First, ensure you have your OAuth credentials:
- Place the downloaded
credentials.json
in~/.gmail-mcp/gcp-oauth.keys.json
- Or set
GMAIL_OAUTH_PATH
to point to your credentials file
- Place the downloaded
-
Run the authentication command:
# If using npx
npx @shinzolabs/gmail-mcp auth
# If in the project directory
pnpm i && pnpm run build && pnpm run auth
- 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
~/.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
You can customize the credential file locations using environment variables:
GMAIL_OAUTH_PATH=/custom/path/to/gcp-oauth.keys.json
GMAIL_CREDENTIALS_PATH=/custom/path/to/credentials.json
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
Sending and Creating Messages
draft_email
: Creates a draft email messagesend_email
: Sends an email messageimport_message
: Import a message into the mailboxinsert_message
: Insert a message into the mailbox
Managing Messages
list_messages
: List messages with optional filteringget_message
: Get a specific messageget_attachment
: Get a message attachmentmodify_message
: Modify message labelsdelete_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 all draftsget_draft
: Get a specific draftupdate_draft
: Update draft 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
History
list_history
: Track changes to the mailbox
Contributing
Contributions are welcomed and encouraged. Contact with any questions, comments or concerns.