Gmail MCP Server
Provides tools for listing, searching, reading, sending, replying to, and deleting emails in a Gmail account.
Click on "Install 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 me my latest unread emails"
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
This MCP server provides access to Gmail functionality through the Model Context Protocol, allowing LLMs like Claude to interact with your email.
Features
List emails from your inbox
Search for specific emails
Read email content
Send new emails
Reply to existing emails
Delete individual emails
Batch delete multiple emails at once
Related MCP server: Gmail MCP Server
Setup
Install dependencies:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txtSet up Google API credentials:
Go to the Google Cloud Console
Create a new project
Enable the Gmail API:
In the sidebar, navigate to "APIs & Services" > "Library"
Search for "Gmail API" and select it
Click "Enable"
Create OAuth 2.0 credentials:
In the sidebar, navigate to "APIs & Services" > "Credentials"
Click "Create Credentials" and select "OAuth client ID"
Select "Desktop application" as the application type
Enter a name for your OAuth client (e.g., "Gmail MCP Server")
Click "Create"
Download the credentials JSON file and save it as
credentials.jsonin the project root
Create a
.envfile by copying the example:cp .env.example .envRun the server:
The first time you run the server, it will open a browser window for authentication
Follow the prompts to authorize the application to access your Gmail account
Detailed Gmail API Setup
Understanding the Credentials Files
credentials.json:
This file contains your OAuth 2.0 client credentials from Google Cloud
It's used to identify your application to Google's OAuth servers
Format example (values will be different for your application):
{ "installed": { "client_id": "YOUR_CLIENT_ID.apps.googleusercontent.com", "project_id": "your-project-id", "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token", "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", "client_secret": "YOUR_CLIENT_SECRET", "redirect_uris": ["http://localhost"] } }You can use the provided
credentials.json.exampleas a reference
token.json:
This file is generated automatically during the first authentication
It contains the OAuth tokens needed to access your Gmail account
The file is created when you complete the authentication flow in your browser
Format example (tokens will be different for your account):
{ "token": "ya29.a0AfB_byC...", "refresh_token": "1//0eXxYz...", "token_uri": "https://oauth2.googleapis.com/token", "client_id": "YOUR_CLIENT_ID.apps.googleusercontent.com", "client_secret": "YOUR_CLIENT_SECRET", "scopes": [ "https://www.googleapis.com/auth/gmail.readonly", "https://www.googleapis.com/auth/gmail.send", "https://www.googleapis.com/auth/gmail.compose", "https://www.googleapis.com/auth/gmail.modify" ], "expiry": "2025-03-05T14:30:00.000Z" }
Authentication Flow
When you run the server for the first time:
The server will check for a
token.jsonfileIf not found, it will start the OAuth 2.0 authentication flow
A browser window will open asking you to sign in to your Google account
You'll be asked to grant permissions to the application
After granting permissions, the browser will show a success message
The server will automatically save the tokens to
token.json
For subsequent runs:
The server will use the existing
token.jsonfileIf the tokens are expired, they will be automatically refreshed
The refreshed tokens will be saved back to
token.json
Security Considerations
Keep your
credentials.jsonandtoken.jsonfiles secureDo not commit these files to version control
The
.gitignorefile is configured to exclude these filesIf you suspect your credentials have been compromised, revoke them in the Google Cloud Console and generate new ones
Usage
Run the server:
source venv/bin/activate # On Windows: venv\Scripts\activate
python -m src.serverThe server will automatically find an available port if the default one (8000) is already in use. You can configure the preferred host, port, and path in the .env file:
SERVER_HOST=0.0.0.0 # The host address to bind to
SERVER_PORT=8000 # The preferred port (will use next available if busy)
SERVER_PATH=/mcp # The URL path for the MCP serverConfigure Claude Desktop to use this server by adding it to your claude_desktop_config.json:
{
"mcpServers": {
"gmail": {
"command": "python",
"args": ["-m", "src.server"],
"cwd": "/path/to/gmail-mcp-server"
}
}
}Available Tool Functions
The Gmail MCP Server provides the following tool functions:
list_emails - Lists emails from your Gmail inbox
Parameters:
max_results: Maximum number of emails to return (default: 10)label: Gmail label to filter by (default: INBOX)
get_email - Gets the full content of a specific email
Parameters:
email_id: The ID of the email to retrieve
search_emails - Searches for emails matching a query
Parameters:
query: Search query to match against email fieldsmax_results: Maximum number of results to return (default: 5)
send_email - Sends a new email
Parameters:
to: Recipient email addresssubject: Email subjectbody: Email body content
reply_to_email - Replies to an existing email
Parameters:
email_id: ID of the email to reply tobody: Reply message content
delete_email - Deletes a single email
Parameters:
email_id: ID of the email to delete
delete_emails - Deletes multiple emails in a batch operation
Parameters:
email_ids: List of email IDs to delete
Design Philosophy
This project follows a lean, efficient design philosophy:
Minimal code with no bloat
Direct integration with Gmail API
No mock data or unnecessary abstractions
Focus on reliability and performance
Troubleshooting
Server Port Issues
If you encounter issues with the server port:
The server will automatically try to find an available port if the default one (8000) is in use
Check the console logs to see which port was actually used
You can manually specify a different port in the
.envfileMake sure your Claude Desktop configuration points to the correct port
Authentication Issues
If you encounter authentication issues:
Check that your
credentials.jsonfile is correctly placed in the project rootDelete the
token.jsonfile if it exists to force re-authenticationEnsure you have the correct scopes enabled for your OAuth client
Check the console logs for specific error messages
Gmail API Rate Limits
The Gmail API has rate limits that may affect usage:
1,000,000,000 quota units per day
Each API method consumes different quota units
For more information, see the Gmail API Quotas
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Imsharad/gmail-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server