Gmail MCP Server
Server for Gmail integration in Claude Desktop with auto authentication support. This server enables AI assistants to manage Gmail through natural language interactions.
Server for Gmail integration in Claude Desktop with auto authentication support. This server enables AI assistants to manage Gmail through natural language interactions.
A Model Context Protocol (MCP) server for Gmail integration in Claude Desktop with auto authentication support. This server enables AI assistants to manage Gmail through natural language interactions.
To install Gmail AutoAuth for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @gongrzhe/server-gmail-autoauth-mcp --client claude
a. Create a Google Cloud Project: - Go to Google Cloud Console - Create a new project or select an existing one - Enable the Gmail API for your project
b. Create OAuth 2.0 Credentials:
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Choose either "Desktop app" or "Web application" as application type
- Give it a name and click "Create"
- For Web application, add http://localhost:3000/oauth2callback
to the authorized redirect URIs
- Download the JSON file of your client's OAuth keys
- Rename the key file to gcp-oauth.keys.json
You can authenticate in two ways:
a. Global Authentication (Recommended):
# First time: Place gcp-oauth.keys.json in your home directory's .gmail-mcp folder
mkdir -p ~/.gmail-mcp
mv gcp-oauth.keys.json ~/.gmail-mcp/
# Run authentication from anywhere
npx @gongrzhe/server-gmail-autoauth-mcp auth
b. Local Authentication:
# Place gcp-oauth.keys.json in your current directory
# The file will be automatically copied to global config
npx @gongrzhe/server-gmail-autoauth-mcp auth
The authentication process will:
- Look for gcp-oauth.keys.json
in the current directory or ~/.gmail-mcp/
- If found in current directory, copy it to ~/.gmail-mcp/
- Open your default browser for Google authentication
- Save credentials as ~/.gmail-mcp/credentials.json
Note: - After successful authentication, credentials are stored globally in
~/.gmail-mcp/
and can be used from any directory - Both Desktop app and Web application credentials are supported - For Web application credentials, make sure to addhttp://localhost:3000/oauth2callback
to your authorized redirect URIs
{
"mcpServers": {
"gmail": {
"command": "npx",
"args": [
"@gongrzhe/server-gmail-autoauth-mcp"
]
}
}
}
If you prefer using Docker:
Authentication:
docker run -i --rm
--mount type=bind,source=/path/to/gcp-oauth.keys.json,target=/gcp-oauth.keys.json
-v mcp-gmail:/gmail-server
-e GMAIL_OAUTH_PATH=/gcp-oauth.keys.json
-e "GMAIL_CREDENTIALS_PATH=/gmail-server/credentials.json"
-p 3000:3000
mcp/gmail auth
Usage:
{
"mcpServers": {
"gmail": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-v",
"mcp-gmail:/gmail-server",
"-e",
"GMAIL_CREDENTIALS_PATH=/gmail-server/credentials.json",
"mcp/gmail"
]
}
}
}
The server provides the following tools that can be used through Claude Desktop:
send_email
)Sends a new email immediately.
{
"to": ["[email protected]"],
"subject": "Meeting Tomorrow",
"body": "Hi,nnJust a reminder about our meeting tomorrow at 10 AM.nnBest regards",
"cc": ["[email protected]"],
"bcc": ["[email protected]"]
}
draft_email
)Creates a draft email without sending it.
{
"to": ["[email protected]"],
"subject": "Draft Report",
"body": "Here's the draft report for your review.",
"cc": ["[email protected]"]
}
read_email
)Retrieves the content of a specific email by its ID.
{
"messageId": "182ab45cd67ef"
}
search_emails
)Searches for emails using Gmail search syntax.
{
"query": "from:[email protected] after:2024/01/01 has:attachment",
"maxResults": 10
}
modify_email
)Adds or removes labels from emails (move to different folders, archive, etc.).
{
"messageId": "182ab45cd67ef",
"addLabelIds": ["IMPORTANT"],
"removeLabelIds": ["INBOX"]
}
delete_email
)Permanently deletes an email.
{
"messageId": "182ab45cd67ef"
}
list_email_labels
)Retrieves all available Gmail labels.
{}
The search_emails
tool supports Gmail's powerful search operators:
Operator | Example | Description |
---|---|---|
from: |
from:[email protected] |
Emails from a specific sender |
to: |
to:[email protected] |
Emails sent to a specific recipient |
subject: |
subject:"meeting notes" |
Emails with specific text in the subject |
has:attachment |
has:attachment |
Emails with attachments |
after: |
after:2024/01/01 |
Emails received after a date |
before: |
before:2024/02/01 |
Emails received before a date |
is: |
is:unread |
Emails with a specific state |
label: |
label:work |
Emails with a specific label |
You can combine multiple operators: from:[email protected] after:2024/01/01 has:attachment
The server intelligently extracts email content from complex MIME structures:
The server fully supports non-ASCII characters in email subjects and content, including: - Turkish, Chinese, Japanese, Korean, and other non-Latin alphabets - Special characters and symbols - Proper encoding ensures correct display in email clients
~/.gmail-mcp/
)gcp-oauth.keys.json
is in either your current directory or ~/.gmail-mcp/
Check file permissions
Invalid Credentials Format
web
or installed
credentialsFor web applications, verify the redirect URI is correctly configured
Port Already in Use
Contributions are welcome! Please feel free to submit a Pull Request.
MIT
If you encounter any issues or have questions, please file an issue on the GitHub repository.