Gmail
About
Check and send emails directly through this server.
Details
- Repository
- highlight-ing/gmail-mcp-server
- License
- MIT
Explore
- List recent emails with optional filtering
- Advanced email search using Gmail query syntax
- Send new emails with CC and BCC support
- Modify email labels (archive, trash, mark read/unread)
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
GmailCommand (node, npx, python, etc.)nodeArguments-
Argument 1
/path/to/google-gmail-server/build/index.js
Environment-
GOOGLE_ACCESS_TOKEN
your_access_token
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
1. Node.js: Install Node.js version 14 or higher
2. Google Cloud Console Setup:
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Gmail API:
1. Go to "APIs & Services" > "Library"
2. Search for and enable "Gmail API"
- Set up OAuth 2.0 credentials:
1. Go to "APIs & Services" > "Credentials"
2. Click "Create Credentials" > "OAuth client ID"
3. Choose "Web application"
4. Set "Authorized redirect URIs" to include: http://localhost:3001/code
5. Note down the Client ID and Client Secret
1. Clone and Install:
git clone https://github.com/yourusername/google-gmail-mcp-server.git
cd google-gmail-mcp-server
npm install
2. 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"
}
}
3. 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
4. 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",
}
}
}
}
5. Build and Run:
npm run build
list_emails
List recent emails from your inbox with optional filtering. Parameters: maxResults (integer), query (string, optional)
search_emails
Advanced email search with Gmail query syntax. Parameters: query (string), maxResults (integer, optional)
send_email
Send new emails with support for CC and BCC. Parameters: to (string), subject (string), body (string), cc (string, optional), bcc (string, optional)
modify_email
Modify email labels (archive, trash, mark read/unread). Parameters: id (string), addLabels (array of strings, optional), removeLabels (array of strings, optional)
- list_emails: List recent emails from your inbox with optional filtering
- search_emails: Advanced email search with Gmail query syntax
- send_email: Send new emails with support for CC and BCC
- modify_email: Modify email labels (archive, trash, mark read/unread)
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"gmail": {
"env": {
"GOOGLE_ACCESS_TOKEN": "your_access_token"
},
"args": [
"/path/to/google-gmail-server/build/index.js"
],
"command": "node"
}
}
}
Linux
{
"env": {
"GOOGLE_ACCESS_TOKEN": "your_access_token"
},
"args": [
"/path/to/google-gmail-server/build/index.js"
],
"command": "node"
}
Macos
{
"env": {
"GOOGLE_ACCESS_TOKEN": "your_access_token"
},
"args": [
"/path/to/google-gmail-server/build/index.js"
],
"command": "node"
}
Windows
{
"env": {
"GOOGLE_ACCESS_TOKEN": "your_access_token"
},
"args": [
"/path/to/google-gmail-server/build/index.js"
],
"command": "node"
}
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 filtering
- search_emails: Advanced email search with Gmail query syntax
- send_email: Send new emails with support for CC and BCC
- modify_email: Modify email labels (archive, trash, mark read/unread)
Prerequisites
1. Node.js: Install Node.js version 14 or higher
2. Google Cloud Console Setup:
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable the Gmail API:
1. Go to "APIs & Services" > "Library"
2. Search for and enable "Gmail API"
- Set up OAuth 2.0 credentials:
1. Go to "APIs & Services" > "Credentials"
2. Click "Create Credentials" > "OAuth client ID"
3. Choose "Web application"
4. Set "Authorized redirect URIs" to include: http://localhost:3001/code
5. Note down the Client ID and Client Secret
Setup Instructions
1. Clone and Install:
git clone https://github.com/yourusername/google-gmail-mcp-server.git
cd google-gmail-mcp-server
npm install
2. 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"
}
}
3. 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
4. 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",
}
}
}
}
5. Build and Run:
npm run build
Usage Examples
Gmail Operations
1. List Recent Emails:
{
"maxResults": 5,
"query": "is:unread"
}
2. Search Emails:
{
"query": "from:[email protected] has:attachment",
"maxResults": 10
}
3. Send Email:
{
"to": "[email protected]",
"subject": "Hello",
"body": "Message content",
"cc": "[email protected]",
"bcc": "[email protected]"
}
4. Modify Email:
{
"id": "message_id",
"addLabels": ["UNREAD"],
"removeLabels": ["INBOX"]
}
License
MIT
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



