Gmail MCP Server

Local setup required. This server has to be cloned and prepared on your machine before you register it in Claude Code.
1

Set the server up locally

Run this once to clone and prepare the server before adding it to Claude Code.

Run in terminal
git clone https://github.com/brentwpeterson/mcp-gmail.git
cd mcp-gmail
npm install
npm run build
2

Register it in Claude Code

After the local setup is done, run this command to point Claude Code at the built server.

Run in terminal
claude mcp add mcp-gmail-f176 -- node "<FULL_PATH_TO_MCP_GMAIL>/dist/index.js"

Replace <FULL_PATH_TO_MCP_GMAIL>/dist/index.js with the actual folder you prepared in step 1.

README.md

Enables interaction with Gmail through MCP-compatible clients

Gmail MCP Server

A Model Context Protocol (MCP) server that provides Gmail access for Claude Code and other MCP-compatible clients.

Features

  • List emails from any folder (inbox, sent, unread, starred, etc.)
  • Read full email content
  • Send emails with automatic signature
  • Reply to threads with proper threading headers
  • Search using Gmail's query syntax
  • Manage labels (star, archive, mark read/unread)

Prerequisites

  • Node.js 20 or higher
  • A Google Cloud project with Gmail API enabled
  • OAuth 2.0 credentials (Desktop app type)

Setup

1. Create a Google Cloud Project

If you don't have one already:

gcloud projects create your-project-name --name="Your MCP Tools"
gcloud config set project your-project-name
gcloud services enable gmail.googleapis.com

2. Configure OAuth Consent Screen

  1. Go to Google Cloud Console - OAuth Consent
  2. Select Internal (for Google Workspace) or External (for personal Gmail)
  3. Add these scopes:
    • https://www.googleapis.com/auth/gmail.readonly
    • https://www.googleapis.com/auth/gmail.send
    • https://www.googleapis.com/auth/gmail.modify

3. Create OAuth Credentials

  1. Go to Google Cloud Console - Credentials
  2. Click Create Credentials > OAuth client ID
  3. Select Desktop app as the application type
  4. Download the JSON file
  5. Save it as ~/.mcp-gmail/credentials.json

4. Install and Build

git clone https://github.com/brentwpeterson/mcp-gmail.git
cd mcp-gmail
npm install
npm run build

5. Authenticate

npm run auth

This opens a browser for Google OAuth. Approve the permissions, and tokens will be saved to ~/.mcp-gmail/token.json.

6. Configure Your MCP Client

Add to your MCP configuration file (e.g., .mcp.json for Claude Code):

{
  "mcpServers": {
    "gmail": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-gmail/dist/index.js"]
    }
  }
}

Restart your MCP client to load the server.

Available Tools

Tool Description
gmail_list_emails List recent emails with optional folder and search query
gmail_get_email Get full content of a specific email
gmail_send_email Send a new email or reply to a thread
gmail_search Search emails using Gmail query syntax
gmail_get_thread Get all messages in a conversation
gmail_modify_labels Add/remove labels (read, star, archive)
gmail_list_labels List all available labels

Folder Options

The gmail_list_emails tool supports these folders:

Folder Description
inbox (default) Inbox emails
sent Sent emails
unread Unread inbox emails
starred Starred emails
important Important emails
trash Deleted emails
spam Spam folder
all All emails (no filter)

Gmail Search Syntax

The gmail_search tool and query parameter support Gmail's search syntax:

  • from:user@example.com - From specific sender
  • to:user@example.com - To specific recipient
  • subject:meeting - Subject contains word
  • is:unread - Unread messages
  • is:starred - Starred messages
  • has:attachment - Has attachments
  • newer_than:2d - Newer than 2 days
  • older_than:1w - Older than 1 week
  • label:work - Has specific label

Combine with spaces (AND) or OR: from:boss@work.com is:unread

Configuration

Environment variables (optional):

Variable Description Default
GMAIL_CONFIG_DIR Config directory ~/.mcp-gmail
GMAIL_CREDENTIALS_PATH Path to credentials.json ~/.mcp-gmail/credentials.json

How It Works

  • Signatures: Automatically fetched from your Gmail "Send mail as" settings
  • Thread Replies: Proper In-Reply-To and References headers for correct threading
  • Sender Name: Uses your display name from Gmail settings

Security

  • OAuth tokens are stored locally in ~/.mcp-gmail/token.json
  • Credentials and tokens are never committed (see .gitignore)
  • Only you can access your email through this server
  • Tokens can be revoked at any time from Google Account Permissions

License

MIT

Tools (7)

gmail_list_emailsList recent emails with optional folder and search query
gmail_get_emailGet full content of a specific email
gmail_send_emailSend a new email or reply to a thread
gmail_searchSearch emails using Gmail query syntax
gmail_get_threadGet all messages in a conversation
gmail_modify_labelsAdd/remove labels (read, star, archive)
gmail_list_labelsList all available labels

Environment Variables

GMAIL_CONFIG_DIRConfig directory
GMAIL_CREDENTIALS_PATHPath to credentials.json

Configuration

claude_desktop_config.json
{"mcpServers": {"gmail": {"command": "node", "args": ["/absolute/path/to/mcp-gmail/dist/index.js"]}}}

Try it

List the most recent unread emails in my inbox.
Search for emails from my manager received in the last 2 days.
Reply to the latest email in the thread about the project launch.
Archive all emails currently in my inbox that have the 'newsletter' label.
Find the email containing the meeting invite for today.

Frequently Asked Questions

What are the key features of Gmail MCP Server?

List emails from various folders including inbox, sent, and starred. Read full email content and retrieve entire conversation threads. Send new emails or reply to existing threads with proper headers. Search emails using native Gmail query syntax. Manage labels such as archiving, starring, or marking as read/unread.

What can I use Gmail MCP Server for?

Automating email triage by filtering and labeling incoming messages. Drafting and sending professional replies directly from the AI interface. Quickly searching through historical correspondence for specific project details. Managing inbox clutter by programmatically archiving read messages.

How do I install Gmail MCP Server?

Install Gmail MCP Server by running: git clone https://github.com/brentwpeterson/mcp-gmail.git && cd mcp-gmail && npm install && npm run build

What MCP clients work with Gmail MCP Server?

Gmail MCP Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep Gmail MCP Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Need the old visual installer? Open Conare IDE.
Open Conare