gmail-mcp-server-2
If you are the rightful owner of gmail-mcp-server-2 and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
Gmail MCP is an experimental Model Context Protocol server for managing Gmail API operations.
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.