Gmail MCP Server
by highlight-ing
The Gmail MCP Server is a Model Context Protocol server designed to interact with the Gmail API. It allows you to programmatically manage your emails through the MCP interface.
View on GitHub
Last updated: N/A
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:[email protected] has:attachment", "maxResults": 10 }
-
Send Email:
{ "to": "[email protected]", "subject": "Hello", "body": "Message content", "cc": "[email protected]", "bcc": "[email protected]" }
-
Modify Email:
{ "id": "message_id", "addLabels": ["UNREAD"], "removeLabels": ["INBOX"] }
License
MIT