gmail-mcp-server
The Gmail MCP Server is designed to provide tools for interacting with the Gmail API programmatically. It supports a variety of operations such as listing, searching, sending, and modifying emails using the Model Context Protocol (MCP) interface. The server is geared towards seamless integration with applications requiring email management through automation.
Gmail MCP Server
A Model Context Protocol (MCP) server that provides tools for interacting with Gmail API. This server enables you to manage your emails programmatically through the MCP interface.
Features
Gmail Tools
list_emails
: List recent emails from your inbox with optional filteringsearch_emails
: Advanced email search with Gmail query syntaxsend_email
: Send new emails with support for CC and BCCmodify_email
: Modify email labels (archive, trash, mark read/unread)
Prerequisites
- Node.js: Install Node.js version 14 or higher
- Google Cloud Console Setup:
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Gmail API:
- Go to "APIs & Services" > "Library"
- Search for and enable "Gmail API"
- Set up OAuth 2.0 credentials:
- Go to "APIs & Services" > "Credentials"
- Click "Create Credentials" > "OAuth client ID"
- Choose "Web application"
- Set "Authorized redirect URIs" to include:
http://localhost:3001/code
- Note down the Client ID and Client Secret
Setup Instructions
-
Clone and Install:
git clone https://github.com/yourusername/google-gmail-mcp-server.git cd google-gmail-mcp-server npm install
-
Create OAuth Credentials: Create a
credentials.json
file in the root directory:{ "web": { "client_id": "YOUR_CLIENT_ID", "client_secret": "YOUR_CLIENT_SECRET", "redirect_uris": ["http://localhost:3001/code"], "auth_uri": "https://accounts.google.com/o/oauth2/auth", "token_uri": "https://oauth2.googleapis.com/token" } }
-
Get Refresh Token:
node get-refresh-token.js
This will:
- Open your browser for Google OAuth authentication
- Request the following permissions:
https://www.googleapis.com/auth/gmail.modify
https://www.googleapis.com/auth/gmail.send
- Save the credentials to
token.json
- Display the refresh token in the console
-
Configure MCP Settings: Add the server configuration to your MCP settings file:
- For VSCode Claude extension:
~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
- For Claude desktop app:
~/Library/Application Support/Claude/claude_desktop_config.json
Add this to the
mcpServers
object:{ "mcpServers": { "google-gmail": { "command": "node", "args": ["/path/to/google-gmail-server/build/index.js"], "env": { "GOOGLE_ACCESS_TOKEN": "your_access_token", } } } }
- For VSCode Claude extension:
-
Build and Run:
npm run build
Usage Examples
Gmail Operations
-
List Recent Emails:
{ "maxResults": 5, "query": "is:unread" }
-
Search Emails:
{ "query": "from:example@gmail.com has:attachment", "maxResults": 10 }
-
Send Email:
{ "to": "recipient@example.com", "subject": "Hello", "body": "Message content", "cc": "cc@example.com", "bcc": "bcc@example.com" }
-
Modify Email:
{ "id": "message_id", "addLabels": ["UNREAD"], "removeLabels": ["INBOX"] }
License
MIT