yahoo-mail-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@yahoo-mail-mcpFind emails from LinkedIn older than 6 months and delete them"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Yahoo Mail MCP
Control Yahoo Mail from Claude in plain English — read, search, organize, delete, and send — with a two-phase confirm step so nothing destructive happens without you seeing exactly what it would touch.
Claude's connector directory covers Gmail and Outlook, but not Yahoo. Yahoo does still support IMAP and SMTP with an app password, which is all an MCP server needs.
"Find every email from jobalerts-noreply@linkedin.com"
→ 276 matched, 47MB, candidate_set_id: cs_330a2109377c
"Delete those"
→ PREVIEW - nothing has been deleted yet.
276 message(s), move to Trash - recoverable
confirm_token='tok_9f31...' (expires in 10 minutes)
"Yes"
→ 276/276 message(s) moved to Trash from INBOX.How it works
You, in plain English
│
Claude Desktop
│ stdio (MCP protocol)
▼
server.py ─────────────┐
│ │
│ IMAP 993 │ local SQLite index
▼ ▼
imap.mail.yahoo.com index.db (headers only, never bodies)
smtp.mail.yahoo.comA local header index. The server mirrors message metadata — sender, subject, date, size, flags — into SQLite. Never bodies. Searching runs against that index, so "everything from LinkedIn older than a year" is a local SQL query returning in milliseconds instead of a slow IMAP round trip. 10,000 headers take about 5 MB and roughly 25 seconds to sync.
Candidate sets. A search freezes every matching UID under an id like
cs_330a2109377c and returns it. Acting on that id operates on exactly the set
you were shown — not on a re-run of the query that might match differently a
minute later. This is what separates a safe bulk delete from a risky one.
Two-phase confirm. mail_delete and mail_send preview on the first call
and execute only when handed back the token they issued. The first call has no
code path to IMAP STORE/MOVE or SMTP at all — it cannot mutate anything even
if instructed to.
Related MCP server: Yahoo Mail MCP Server
Install
Requires macOS, Claude Desktop, and Python 3.10+ (macOS ships 3.9,
which the MCP SDK rejects — brew install python@3.12, or use conda/pyenv).
git clone https://github.com/<your-username>/yahoo-mail-mcp.git
cd yahoo-mail-mcp
bash setup.shThe installer finds a suitable Python, prompts for your Yahoo address and a
app password (at https://login.yahoo.com/account/security →
External connections → Create app password — your normal login password
will not authenticate over IMAP), stores that password in
the macOS login Keychain, builds a venv, smoke-tests the connection, and merges
itself into claude_desktop_config.json without disturbing servers already
registered there.
Then Cmd + Q Claude Desktop and reopen it. Closing the window is not
enough; MCP servers are launched at process start.
Full walkthrough with checkpoints and troubleshooting: INSTALL.md
Tools
Tool | What it does |
| Connection check and index freshness. Start here when debugging. |
| List folders and their special-use roles. |
| Pull headers into the local index. Incremental. Headers only. |
| Query the index; returns a preview and a |
| Full body and attachment list for one message. |
| read / unread / star / unstar. Reversible. |
| Move to any folder, or |
| Two-phase. Trash by default; |
| Two-phase. Send, reply (threaded), or save a draft. |
| Every mutation the server has made, with counts. |
Things to try
"Sync my Yahoo inbox"
"What are my biggest emails from the last year?"
"Show me unread mail from this week"
"Find everything from noreply@example.com older than 6 months"
"Move those to Archive"
"Delete those" → previews first, then asks you to confirm
"Reply to the message from Sarah saying I'll review it Monday"
"Show me the mail audit log"Safety design
Property | Behavior |
Two-phase confirm |
|
Single-use tokens | Replaying a used token is refused |
10-minute expiry | Stale approvals die on their own |
Set-bound | A token carries an exact UID list; the query is never re-run |
Action-bound | A |
Trash by default |
|
2,000-message cap | A mis-scoped query cannot empty an inbox in one call |
UIDVALIDITY tracking | Server-side renumbering rebuilds the index instead of acting on stale UIDs |
Deletion reconcile | Sync drops rows for server-side deletions; a failed |
Audit log | Every mutation recorded with requested/succeeded/failed counts |
Keychain credentials | App password never in config files, environment, or logs |
Known limitations
Yahoo caps
SEARCH ALLat 10,000 results, silently. If your inbox is larger, plain sync sees only the newest 10,000 and warns you when the total lands on exactly that number.deep=Truewalks backwards in date windows instead, and each window returns an untruncated set:"Sync my Yahoo inbox with deep=True"Trash counts may disagree with what you moved there. Yahoo appears to apply its own limits, and possibly deduplication, to that folder. Treat webmail as ground truth when numbers don't reconcile.
body=search is server-side and much slower than every other filter, since it cannot use the local index.Keychain storage is macOS-only. The rest is portable — other platforms can supply the app password via the
YAHOO_APP_PASSWORDenvironment variable.Yahoo-specific folder names are handled (
Bulkfor spam,Draftsingular), but other IMAP providers are untested.
Files
Path | Purpose |
| The MCP server. Single file, standard library plus |
| Installer: Python detection, Keychain, venv, config merge. |
| Step-by-step guide with checkpoints and troubleshooting. |
| Just |
| Generated. Your address only — no secret. Git-ignored. |
| Generated. Local header index. Git-ignored. |
| Generated. Git-ignored. |
config.json, index.db, and venv/ are created by setup.sh and excluded by
.gitignore — they hold personal data and must never be committed.
Uninstall
# remove the stored app password
security delete-generic-password -s yahoo-mail-mcp -a you@yahoo.com
# remove the server entry from Claude Desktop
python3 - <<'PY'
import json, os
p = os.path.expanduser("~/Library/Application Support/Claude/claude_desktop_config.json")
d = json.load(open(p))
d.get("mcpServers", {}).pop("yahoo-mail", None)
json.dump(d, open(p, "w"), indent=2)
PYThen delete the cloned directory, and delete the app password at https://login.yahoo.com/account/security → External connections → app passwords → Delete. That is what actually cuts off access, regardless of what is left on disk — note that changing your Yahoo account password does not revoke app passwords; only deleting them does.
Configuration
Setting | Value |
IMAP |
|
SMTP |
|
Keychain service |
|
Data directory | The repo directory, or |
YAHOO_EMAIL and YAHOO_APP_PASSWORD override config.json and the Keychain
respectively, which is how you would run this on a non-macOS host.
License
MIT — see LICENSE.
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.
This server cannot be installed
Maintenance
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
Connect any mailbox to Claude, ChatGPT & AI: read, send, reply, schedule & search emails.
Manage Gmail end-to-end: search, read, send, draft, label, and organize threads. Automate workflow…
Stateful email for AI agents — read inboxes, reply in-thread, draft with approval.
Email infrastructure for AI agents — send, receive, search, and reply to email over MCP.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables seamless email management through natural language conversations with Claude. Supports searching, reading, and sending emails securely with Gmail and other email providers.4MIT
- FlicenseNot gradedqualityDmaintenanceEnables LLMs to read, search, and send emails through Yahoo Mail using secure OAuth2 authentication.-
- AlicenseNot gradedqualityDmaintenanceEnables 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.8MIT
- AlicenseAqualityAmaintenanceEnables Claude to control the macOS Mail app for reading, searching, drafting, sending, and managing emails directly from Claude Desktop.12MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mithun2k5/yahoo-mail-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server