Skip to main content
Glama
Ali-Zia3500

email-agent-mcp-server

by Ali-Zia3500

Email Triage Agent

An AI agent that reads your Gmail inbox, classifies incoming emails, drafts replies for anything important, and only sends after you review and approve — built with LangGraph, Gemini, and exposed as an MCP server so it can be used directly from Claude Desktop.

What it does

  1. Fetches unread emails from Gmail (full body parsing, not just snippets)

  2. Classifies each one — spam, important, promotional, social, or updates — with urgency, topic, and summary

  3. Drafts a reply for anything classified as important, personalized with the real sender name and company name

  4. Pauses for human review — a conversational loop where you can approve, reject, or give feedback to revise the draft (as many rounds as needed)

  5. Sends the final approved reply as a real email via the Gmail API, correctly threaded

Related MCP server: gmail-mcp-server

Architecture

Gmail (OAuth) → read_email → classify_intent → draft_response → human_review → send_reply
                                    ↓ (not important)
                                   END

The same pipeline is exposed two ways:

  • Directly — run email_agent.py, review in the terminal

  • Via MCP — run mcp_server.py, which wraps the pipeline as two tools (check_unread_emails, submit_review_feedback) callable from Claude Desktop or any MCP client, so you can review and approve emails just by talking to Claude naturally

Tech stack

  • langgraph — agent orchestration, state management, human-in-the-loop via interrupt()

  • langchain-google-genai — Gemini (gemini-2.5-flash) for classification and drafting

  • google-api-python-client + google-auth-oauthlib — Gmail API (read + send)

  • fastmcp — MCP server exposing the agent as callable tools

Setup

1. Install dependencies

pip install -r requirements.txt

2. Google Cloud setup

  • Create a project in Google Cloud Console

  • Enable the Gmail API

  • Create an OAuth client ID (Desktop app type) under Credentials

  • Download the credentials file and save it as credentials.json in the project root

  • Add yourself as a test user under Audience (while the app is in Testing mode)

3. Gemini API key

Get a key from Google AI Studio, then create a .env file:

GEMINI_API_KEY=your_key_here

4. First run — authorize Gmail access

python email_agent.py

This opens a browser window for one-time Google sign-in and authorization. A token.pickle file is saved afterward so you won't need to re-authorize on future runs.

Running it

Option A: Standalone script (terminal review)

python email_agent.py

Fetches unread emails, processes each one, and walks you through review in the terminal — approve, reject, or type feedback to revise the draft.

Option B: MCP server (for Claude Desktop or any MCP client)

python mcp_server.py

Exposes two tools:

  • check_unread_emails(max_results) — runs the full pipeline, returns classifications and any drafts pending review

  • submit_review_feedback(email_id, feedback) — resumes a paused review with "approve", "reject", or free-text revision instructions

Connecting to Claude Desktop

Add this to your claude_desktop_config.json under mcpServers:

"email-agent": {
  "command": "path/to/venv/Scripts/python.exe",
  "args": ["path/to/mcp_server.py"]
}

Restart Claude Desktop, then just ask it to "check my unread emails" — it will call the tools and let you review/approve drafts conversationally.

Notes

  • Uses MemorySaver for checkpointing, which is in-memory only — review state won't survive a process restart. A persistent checkpointer would be needed for long-running production use.

  • Retry policies are attached to classify_intent, draft_response, and send_reply to handle transient failures.

  • Requires absolute paths for .env, credentials.json, and token.pickle when run by Claude Desktop, since it doesn't launch from the project's working directory by default.

License

MIT (or your preference)

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Servers

  • A
    license
    -
    quality
    D
    maintenance
    Enables AI-powered inbox management with natural language commands through Claude Desktop. Supports sending, reading, searching, organizing emails, and managing labels using Gmail API with automatic authentication.
    Last updated
    8
    MIT
  • A
    license
    -
    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.
    Last updated
    67
    MIT

View all related MCP servers

Related MCP Connectors

  • Manage Gmail end-to-end: search, read, send, draft, label, and organize threads. Automate workflow…

  • Manage Gmail messages, threads, labels, drafts, and settings from your workflows. Send and organiz…

  • Read, search, send, organize, draft and schedule email across your inboxes from any MCP client.

View all MCP Connectors

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/Ali-Zia3500/email-agent-mcp-server'

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