Skip to main content
Glama
Parwez0786

gmail-mcp-server

by Parwez0786

Gmail MCP Server

Local MCP server that lets Claude Desktop read and manage your Gmail (list, search, send, draft, reply, archive, labels, trash).

Claude asks → this server calls the Gmail API → actions run on your account.

Structure

gmail-mcp-server/
├── server.py         # MCP tools + dispatch
├── gmail_auth.py     # OAuth + token cache
├── gmail_tools.py    # Gmail API wrappers
├── requirements.txt
├── credentials.json  # from Google (do not commit)
└── token.json        # created after first login (do not commit)

Related MCP server: Gmail MCP Server

Setup

1. Install (Python 3.10+)

cd gmail-mcp-server
/opt/homebrew/bin/python3.12 -m venv .venv   # or any python3.10+
source .venv/bin/activate
pip install -r requirements.txt

2. Google Cloud credentials

  1. Google Cloud Console → create/select a project.

  2. Enable Gmail API.

  3. OAuth consent screen → External → fill app info → add yourself as a Test user (keep status Testing).

  4. Credentials → Create → OAuth client ID → type Desktop app → download JSON.

  5. Save it as credentials.json in this folder (must have an "installed" key, not "web").

3. Claude Desktop config

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "gmail": {
      "command": "/Users/mdparwezansari/Desktop/gmail-mcp-server/.venv/bin/python",
      "args": ["/Users/mdparwezansari/Desktop/gmail-mcp-server/server.py"]
    }
  }
}

Use absolute paths. Quit Claude fully (Cmd+Q) and reopen.

Claude starts the server automatically — you don’t need to run python server.py yourself.

4. First OAuth

In Claude, ask e.g. “List my recent emails.” Approve Google in the browser. That creates token.json for later runs.

Tools

Tool

Description

list_emails

Recent mail (optional Gmail query)

search_emails

Search (from:, is:unread, etc.)

get_email

Full body by message ID

send_email

Send now

create_draft

Draft only

reply_to_email

Reply in-thread

archive_email

Remove from inbox

mark_read / mark_unread

Toggle unread

delete_email

Move to Trash

list_labels / create_label

Labels

Scope: gmail.modify (change in gmail_auth.py if you want less access).

Optional env

  • GMAIL_CREDENTIALS_PATH — default ./credentials.json

  • GMAIL_TOKEN_PATH — default ./token.json

Troubleshooting

Problem

Fix

mcp won’t install

Need Python 3.10+

Server not connected

Check paths; Cmd+Q Claude and reopen; see ~/Library/Logs/Claude/mcp-server-gmail.log

Access blocked

Add your Gmail as OAuth Test user

Re-login needed

Delete token.json and call a Gmail tool again

Never commit credentials.json or token.json.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivitySlowing
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables reading, sending, searching, and managing Gmail through Claude using the official Google Gmail API.
    138
    3
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude to read, search, send, label, and trash emails in any Gmail account via Google's Gmail API, using OAuth2 authentication with automatic token refresh.
    67
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables Claude to read, search, send, and manage Gmail messages and threads through natural language.
    205
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Parwez0786/gmail-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server