Gmail MCP Server
A Gmail Model Context Protocol server for seamless integration with AI assistants
Imsharad
README
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
Setup
-
Install dependencies:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate pip install -r requirements.txt
-
Set 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.json
in the project root
-
Create a
.env
file by copying the example:cp .env.example .env
-
Run 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.example
as 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.json
file - If 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
- The server will check for a
-
For subsequent runs:
- The server will use the existing
token.json
file - If the tokens are expired, they will be automatically refreshed
- The refreshed tokens will be saved back to
token.json
- The server will use the existing
Security Considerations
- Keep your
credentials.json
andtoken.json
files secure - Do not commit these files to version control
- The
.gitignore
file is configured to exclude these files - If 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.server
Configure 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"
}
}
}
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
Authentication Issues
If you encounter authentication issues:
- Check that your
credentials.json
file is correctly placed in the project root - Delete the
token.json
file if it exists to force re-authentication - Ensure 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
MCP Package Docs Server
Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.
Claude Code MCP
An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.
@kazuph/mcp-taskmanager
Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.
Linear MCP Server
Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.
mermaid-mcp-server
A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.
Jira-Context-MCP
MCP server to provide Jira Tickets information to AI coding agents like Cursor

Linear MCP Server
A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Sequential Thinking MCP Server
This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.