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/SolonaBot/gmail-mcp.git
cd gmail-mcp
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 gmail-mcp-e878 -- node "<FULL_PATH_TO_GMAIL_MCP>/dist/index.js"

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

README.md

Interact with Gmail through a standardized interface for AI assistants.

Gmail MCP Server

A Model Context Protocol (MCP) server implementation for Gmail integration, enabling AI assistants to interact with Gmail through a standardized interface.

Features

  • Email Operations

    • List and search emails with advanced filtering
    • Read email content with attachments
    • Send emails with attachments
    • Draft support (coming soon)
    • Reply/Forward support (coming soon)
  • Label Management

    • List all labels
    • Create new labels
    • Update existing labels
    • Delete labels
  • Authentication

    • Secure OAuth2 authentication
    • Automatic token refresh
    • Token persistence

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/gmail-mcp.git
cd gmail-mcp
  1. Install dependencies:
npm install
  1. Set up Google Cloud Project:

    • Go to Google Cloud Console
    • Create a new project
    • Enable Gmail API
    • Configure OAuth consent screen
    • Create OAuth credentials
    • Download credentials as gcp-oauth.keys.json
  2. Configure the project:

    • Place gcp-oauth.keys.json in the project root directory
    • Run the authentication server:
npm run auth
  1. Build the project:
npm run build

Usage

Starting the Server

npm start

The server runs on stdio, making it compatible with MCP clients.

Available Tools

1. List Emails
{
  "name": "list-emails",
  "arguments": {
    "maxResults": 10,
    "labelIds": ["INBOX"],
    "query": "is:unread"
  }
}
2. Read Email
{
  "name": "read-email",
  "arguments": {
    "id": "message-id",
    "format": "full"
  }
}
3. Send Email
{
  "name": "send-email",
  "arguments": {
    "to": "recipient@example.com",
    "subject": "Hello",
    "body": "Message content",
    "attachments": ["/path/to/file.pdf"]
  }
}
4. Search Emails
{
  "name": "search-emails",
  "arguments": {
    "query": "from:sender@example.com",
    "maxResults": 5
  }
}
5. Manage Labels
{
  "name": "manage-labels",
  "arguments": {
    "action": "create",
    "name": "MyNewLabel"
  }
}

Configuration

Environment Variables

  • GMAIL_MCP_DEBUG: Enable debug logging (default: false)
  • GMAIL_MCP_TOKEN_PATH: Custom path for token storage
  • GMAIL_MCP_KEYS_PATH: Custom path for OAuth keys file

OAuth Credentials

The OAuth credentials file (gcp-oauth.keys.json) should be structured as:

{
  "installed": {
    "client_id": "your-client-id",
    "client_secret": "your-client-secret",
    "redirect_uris": ["http://localhost:3000/oauth2callback"]
  }
}

Development

Running Tests

# Run all tests
npm test

# Run with coverage
npm run test:coverage

# Run in watch mode
npm run test:watch

Building

# Build once
npm run build

# Build in watch mode
npm run dev

Error Handling

The server handles various error scenarios:

  • Authentication failures
  • Rate limiting
  • Invalid parameters
  • Network issues
  • Permission errors

Errors are returned in a standardized format with appropriate HTTP status codes.

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Google Gmail API
  • Model Context Protocol
  • Contributors and maintainers

Support

For support, please open an issue in the GitHub repository or contact the maintainers.

Tools (5)

list-emailsList and search emails with advanced filtering.
read-emailRead email content with attachments.
send-emailSend emails with attachments.
search-emailsSearch emails using Gmail query syntax.
manage-labelsCreate, update, or delete email labels.

Environment Variables

GMAIL_MCP_DEBUGEnable debug logging
GMAIL_MCP_TOKEN_PATHCustom path for token storage
GMAIL_MCP_KEYS_PATHCustom path for OAuth keys file

Configuration

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

Try it

List my unread emails from the inbox.
Search for emails from my manager regarding the project deadline.
Read the latest email with the subject 'Invoice' and tell me the total amount.
Send an email to support@example.com with the attached project report.
Create a new label called 'Urgent' and apply it to my unread messages.

Frequently Asked Questions

What are the key features of Gmail MCP Server?

List and search emails with advanced filtering. Read email content including attachments. Send emails with file attachments. Comprehensive label management (create, update, delete). Secure OAuth2 authentication with automatic token refresh.

What can I use Gmail MCP Server for?

Automating email triage by filtering and labeling incoming messages. Drafting and sending routine status updates directly from an AI assistant. Quickly retrieving specific information from past email threads. Managing email organization by programmatically creating and applying labels.

How do I install Gmail MCP Server?

Install Gmail MCP Server by running: git clone https://github.com/SolonaBot/gmail-mcp.git && cd gmail-mcp && 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