Email Agent Server
FreeNot checkedEnables AI-powered Gmail triage: fetches unread emails, classifies them, drafts replies for important ones, and sends only after user approval via conversationa
About
Enables AI-powered Gmail triage: fetches unread emails, classifies them, drafts replies for important ones, and sends only after user approval via conversational review. Exposes tools for checking unread emails and submitting review feedback from Claude Desktop or any MCP client.
README
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
- Fetches unread emails from Gmail (full body parsing, not just snippets)
- Classifies each one —
spam,important,promotional,social, orupdates— with urgency, topic, and summary - Drafts a reply for anything classified as
important, personalized with the real sender name and company name - Pauses for human review — a conversational loop where you can approve, reject, or give feedback to revise the draft (as many rounds as needed)
- Sends the final approved reply as a real email via the Gmail API, correctly threaded
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 viainterrupt()langchain-google-genai— Gemini (gemini-2.5-flash) for classification and draftinggoogle-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.jsonin 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 reviewsubmit_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
MemorySaverfor 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, andsend_replyto handle transient failures. - Requires absolute paths for
.env,credentials.json, andtoken.picklewhen run by Claude Desktop, since it doesn't launch from the project's working directory by default.
License
MIT (or your preference)
Installing Email Agent Server
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/Ali-Zia3500/email-agent-mcp-serverFAQ
Is Email Agent Server MCP free?
Yes, Email Agent Server MCP is free — one-click install via Unyly at no cost.
Does Email Agent Server need an API key?
No, Email Agent Server runs without API keys or environment variables.
Is Email Agent Server hosted or self-hosted?
A hosted option is available: Unyly runs the server in the cloud, no local setup required.
How do I install Email Agent Server in Claude Desktop, Claude Code or Cursor?
Open Email Agent Server 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
Gmail
Read, send and search emails from Claude
by GoogleSlack
Send, search and summarize Slack messages
by SlackRunbear
No-code MCP client for team chat platforms, such as Slack, Microsoft Teams, and Discord.
Discord Server
A community discord server dedicated to MCP by [Frank Fiegel](https://github.com/punkpeye)
Compare Email Agent Server with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All communication MCPs
