Command Palette

Search for a command to run...

UnylyUnyly
Browse all

muammar-yacoob/GMail-Manager-MCP

FreeNot checked

Connects Claude Desktop to your Gmail so you can start managing your inbox using natural language. Bulk delete promos & newsletters, organize labels and get use

GitHubEmbed

About

Connects Claude Desktop to your Gmail so you can start managing your inbox using natural language. Bulk delete promos & newsletters, organize labels and get useful insights.

README

Gmail Manager Gmail Manager MCP

🧹 Clean your inbox • 🏷️ Organize with labels • 🗑️ Bulk delete emails

npm MCP Server MIT GitHub Sponsors Report Bug GitHub Stars

Stop sending me unnecessary emails meme

✨ What It Does

Gmail Manager MCP provides direct access to your Gmail inbox through the Model Context Protocol, allowing you to:

Feature
Description
Email Search Find emails by sender, subject, date, or any Gmail query
Inbox Analytics Get insights about your email patterns and volume
Read & Draft Replies Read the full content of an email
Smart Organization Create and apply labels to categorize emails automatically
Bulk Cleanup Remove old newsletters, notifications, and spam efficiently
Google Calendar List, search, create and update events, RSVP, and find times everyone is free

[!IMPORTANT] Upgrading from a version before calendar support? Google cannot add scopes to a token it has already issued, so your saved credentials keep working for mail while every calendar call fails with a permissions error. Enable the Calendar API and add the calendar scope as below, then re-authenticate once:

npx @spark-apps/gmail-manager-mcp@latest auth

Running a local checkout instead of the published package? Re-authenticate with the build your client actually loads, or you will re-consent against whichever version npm is serving and see the same error:

node /path/to/GMail-Manager-MCP/dist/index.js auth

🚀 Quick Setup

📋 Prerequisites: Get Gmail Credentials 🗝️

🔑 Required before any installation
  1. Create New Project 📁
  2. Enable both APIs: Gmail 📧 and Calendar 📅
  3. Create OAuth client ID (Desktop app type) 🔐
  4. Download as gcp-oauth.keys.json 📥
  5. Navigate to Data accessAdd or remove scopes → add both: https://mail.google.com/ and https://www.googleapis.com/auth/calendar 🔓
  6. Navigate to Test users → Add your Google email 👤

📁 Where to put gcp-oauth.keys.json:

For Windows users in WSL:

# Copy from Windows to current directory
cp /mnt/c/Users/YourUsername/gcp-oauth.keys.json ./gcp-oauth.keys.json

General locations:

  • Current directory: ./gcp-oauth.keys.json (works everywhere)
  • Home directory: ~/gcp-oauth.keys.json (for npx usage)
  • Custom path: Set GMAIL_OAUTH_PATH environment variable

📥 Installation

📦 Install from npm registry (Easier ⚡)
npm i -g @spark-apps/gmail-manager-mcp

🏠 Clone and build locally (Safer 🛡️)
git clone https://github.com/muammar-yacoob/GMail-Manager-MCP.git
cd GMail-Manager-MCP
npm install

💻 Terminal Usage

🖥️ Quick Commands
# Install globally
npm i -g @spark-apps/gmail-manager-mcp

# Setup authentication (run this first)
npx @spark-apps/gmail-manager-mcp@latest auth

# Test MCP server (for debugging)
npx @modelcontextprotocol/inspector npx @spark-apps/gmail-manager-mcp@latest

⚙️ Configure MCP Client

🔧 Required for MCP client integration

Add to your MCP client config file (Claude Desktop example):

  • Windows %APPDATA%\\Claude\\claude_desktop_config.json
  • macOS ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux ~/.config/Claude/claude_desktop_config.json

📦 For NPM Install:

{
  "mcpServers": {
    "gmail-manager": {
      "command": "npx", "args": ["@spark-apps/gmail-manager-mcp@latest"],
      "env": { "GMAIL_OAUTH_PATH": "C:\\path\\to\\gcp-oauth.keys.json" }
    }
  }
}

For Local Development:

{
  "mcpServers": {
    "gmail-manager": {
      "command": "node", "args": ["C:\\path\\to\\GMail-Manager-MCP\\dist\\index.js"]
    }
  }
}

🛠️ Available Tools

🔧 View All Available Tools

📬 Reading

Tool Description
search_emails Search using Gmail query syntax
read_email Full content of one email
get_thread Every message in a conversation, oldest first
list_attachments Attachments on an email, with download IDs
download_attachment Save an attachment to a local path

🧹 Cleaning up

Tool Description
trash_emails Move to Trash — recoverable for 30 days. Prefer this
untrash_emails Pull messages back out of Trash
archive_emails Remove from inbox, keep everything else
mark_emails Mark read or unread
delete_email / batch_delete_emails Permanent, bypasses Trash, cannot be undone

🏷️ Labels

Tool Description
list_labels List all labels
create_label Create a label, or return the existing one if the name is taken
delete_label Delete a label
apply_label / remove_label One message
batch_apply_labels / batch_remove_labels Many messages, throttled and retried

⚙️ Rules & unsubscribing

Tool Description
list_filters Filters (rules) currently on the account
create_filter Set a rule that applies to mail arriving from now on
delete_filter Remove a filter
get_unsubscribe_info Read a sender's List-Unsubscribe link, without clicking it
unsubscribe_email Opt out of a mailing list via the sender's own one-click endpoint

✍️ Composing

Tool Description
create_draft Write to Drafts without sending. The safe default
list_drafts / update_draft / delete_draft Manage drafts
send_draft Send an existing draft
send_email Compose and send immediately
create_reply Draft a threaded reply
resend_email Send a fresh copy of a sent message (does not recall the original)

📅 Calendar

Tool Description
list_calendars Calendars this account can access
list_events Events on a calendar, optionally in a time range
search_events Find events by keyword
get_event One event in full, including RSVPs
create_event Create an event, optionally with Meet link and guests
update_event Change an event; only the fields you pass are altered
delete_event Delete an event
respond_to_event RSVP as yourself
suggest_time Find slots where everyone is free, via free/busy

🔐 Auth

Tool Description
authenticate_gmail Authenticate via browser. Covers Gmail and Calendar

💬 Example Commands

🧹 Quick Cleanup
  • "Delete all promotional emails from last 30 days"
  • "Delete all unread newsletters older than 1 week"
  • "Delete all 'no-reply' emails from last 3 months"
  • "Delete all LinkedIn notification emails"
  • "Delete all password reset emails older than 1 month"
  • "Delete redundant email chains where I'm CC'd"
⚡ Smart Actions
  • "Summarize email with subject: 'last boring meeting'"
  • "Summarize all emails about 'project deadline'"
  • "Reply to email about 'project update' saying 'Got it, thanks!'"
  • "Label all emails from my bank as 'Finance'"
  • "Create 'Travel' label and move all booking confirmations"
  • "Find emails with attachments larger than 5MB"
📊 Inbox Insights
  • "Show me who sends me the most emails"
  • "Find all unread emails older than 1 week"
  • "Show my busiest email days this month"
  • "Find emails I starred but never replied to"
📅 Calendar
  • "What's on my calendar this week?"
  • "Find a 45-minute slot next week when Sam and I are both free, weekdays 9-5"
  • "Move Thursday's standup to 10am and add a Meet link"
  • "Decline the Friday review, comment that I'm on leave"
  • "Search my calendar for anything about the tax deadline"
🛡️ Rules & Unsubscribing
  • "Show me the rules currently on my account"
  • "Rule: anything from noreply@ skips the inbox and gets labelled Noise"
  • "Get the unsubscribe link for this sender so I can check it before clicking"
  • "Unsubscribe me from this newsletter"

Unsubscribing uses the sender's own published opt-out. Where they support one-click (RFC 8058) it completes on its own; where the only route is emailing them, it asks first, since that sends mail from your account. A plain link with no one-click declaration is handed back for you to open — arbitrary URLs found in mail are never visited, and no response body from a sender is ever read back into the conversation.


🌱 Support & Contributions

Star the repo & I power up like Mario 🍄
Devs run on coffee - Buy me one?
💰 Crypto tips welcome - Tip in crypto
🤝 Contributions are welcome - 🍴 Fork, improve, PR!
🎥 Need help? YouTube Setup TutorialDiscord Join Discord

💖 Sponsor

Your support helps maintain and improve the tool. please consider sponsoring the project.


Made with ❤️ for MCPPrivacy PolicyTerms of Service

from github.com/muammar-yacoob/GMail-Manager-MCP

Installing muammar-yacoob/GMail-Manager-MCP

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/muammar-yacoob/GMail-Manager-MCP

FAQ

Is muammar-yacoob/GMail-Manager-MCP MCP free?

Yes, muammar-yacoob/GMail-Manager-MCP MCP is free — one-click install via Unyly at no cost.

Does muammar-yacoob/GMail-Manager-MCP need an API key?

No, muammar-yacoob/GMail-Manager-MCP runs without API keys or environment variables.

Is muammar-yacoob/GMail-Manager-MCP hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install muammar-yacoob/GMail-Manager-MCP in Claude Desktop, Claude Code or Cursor?

Open muammar-yacoob/GMail-Manager-MCP on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare muammar-yacoob/GMail-Manager-MCP with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All communication MCPs