Skip to main content
Glama
ktrann24

yahoo-mail-mcp

by ktrann24

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
YAHOO_EMAILNoYour Yahoo email address
YAHOO_ACCOUNTSNoJSON array of account objects with name, email, app_password
YAHOO_MAIL_MCP_DBNoPath to SQLite database file
YAHOO_ACCOUNT_NAMENoA name for the account (e.g., personal)
YAHOO_APP_PASSWORDNoYahoo app password
YAHOO_MAIL_MCP_LOG_LEVELNoPython log level
YAHOO_MAIL_MCP_BATCH_SIZENoIMAP fetch batch size
YAHOO_MAIL_MCP_DELETE_THRESHOLDNoThreshold for large move confirmation

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_accountsA

List configured Yahoo accounts with their folders and message counts.

Connects to each account over IMAP, so this also verifies that the app passwords work.

scan_mailboxA

Scan a Yahoo account's folders, pulling header-level data only.

Does all the heavy lifting internally: fetches sender, subject, date, size and List-Unsubscribe headers in batches, and persists them to the local database. Progress is checkpointed continuously, so if the scan is interrupted, calling this tool again resumes where it left off. Once a folder has been fully scanned, later calls only pick up new mail.

By default scans all folders except Trash, Drafts and Sent. Pass folders to scan specific ones, or max_messages to cap this run (useful for a first validation pass).

get_scan_statusA

Show scan progress per folder (from checkpoints), without connecting to IMAP.

start_scan_jobA

Start a durable background header scan and return immediately.

Use this for large scans from remote clients that impose request timeouts. Poll get_scan_job with the returned job_id. If the server restarts, starting a new job resumes from the stored IMAP checkpoints.

get_scan_jobB

Get status and, when complete, the result of one background scan.

list_scan_jobsC

List recent background scans, optionally filtered by status.

list_recent_messagesA

List recently scanned messages using cached headers only.

Run scan_mailbox first. Results include account, folder, UID, UIDVALIDITY and a staleness field. Sender email is hidden by default; raw unsubscribe links and message bodies are never returned.

search_messagesA

Search cached message headers without connecting to IMAP.

Free-text query matches subject, sender domain and sender email. Additional exact filters can narrow account, folder, sender, date, unsubscribe availability and decision. List results never expose raw unsubscribe URLs or message bodies.

list_unsubscribe_candidatesA

List sender domains with cached unsubscribe methods for one account.

method is all, one_click, mailto, or manual. One-click candidates advertise RFC 8058 support and an HTTPS endpoint, but final DNS, domain, and network safety validation occurs only during execute_decisions. Raw unsubscribe URLs and sender addresses are never returned.

get_message_headersA

Get the cached headers for one exact account/folder/UID reference.

Includes sender, subject, date, size, decision and safe unsubscribe method names. It never returns raw unsubscribe links or a message body.

list_sender_groupsA

List scanned mail grouped by account and sender domain.

Every group includes its account. Pass account to limit the result. sort is one of: count, size, recent, oldest, domain. decision filters by tag: keep, unsubscribe, archive, delete, needs_review (needs_review includes untagged domains). Paginate with limit/offset.

get_sender_detailA

Full detail for one sender domain: addresses, folder breakdown, up to 20 sample subjects, and unsubscribe methods for one account.

set_decisionsA

Batch-tag sender domains with account-scoped cleanup decisions.

Each entry: {"account": "personal", "domain": "example.com", "decision": "keep|unsubscribe|archive|delete|needs_review", "notes": "optional"}. account may be supplied once as a tool argument or per entry. It is inferred only when exactly one account is configured. This tool never modifies Yahoo Mail.

export_review_csvB

Export all sender groups to a CSV for spreadsheet review.

Edit the decision column (keep / unsubscribe / archive / delete / needs_review) and re-import with import_review_csv.

import_review_csvA

Import decisions from a CSV previously produced by export_review_csv.

Only account, sender_domain, decision and notes are read. Account may be omitted only when exactly one account is configured.

preview_cleanupA

Dry run for execute_decisions: exact counts of affected messages for one account and per domain, plus a confirm_token.

Nothing in Yahoo Mail is modified. The token is required by execute_decisions for large Archive or Delete operations.

execute_decisionsA

Execute tagged decisions. THE ONLY DESTRUCTIVE TOOL.

account is required unless exactly one account is configured. decision="archive": moves messages from domains tagged 'archive' to the provider's Archive folder. decision="delete": moves tagged messages to Trash (recoverable). If either total exceeds the safety threshold, a confirm_token from a fresh preview_cleanup call is required.

decision="unsubscribe": for each domain tagged 'unsubscribe', performs RFC 8058 one-click POST or sends a mailto unsubscribe email. Plain http links are never auto-fetched; they are returned as manual items.

Domains tagged 'keep' or 'needs_review' are never touched.

triage_new_mailB

Incrementally scan new mail since the last scan and triage it.

Never deletes or unsubscribes anything. Returns:

  • suggestions: new messages from domains you already tagged (keep/archive/delete/unsubscribe), grouped by decision

  • new_senders: domains never seen before this run, for review

  • attention: new messages that look personal (no List-Unsubscribe header), which usually deserve a human look

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

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/ktrann24/yahoo-mail-mcp'

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