yahoo-access
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| YAHOO_MAIL_ALLOWED_DIRS | No | List of folders separated by os.pathsep (: on macOS/Linux) that replace the default file-access allowlist (~/Downloads plus temp folders). It replaces the defaults rather than adding to them; ~ is expanded. A refused path causes yahoo_download_attachments to write nothing and yahoo_send_mail to neither save nor send the message. | |
| YAHOO_APP_PASSWORD_<KEY> | No | App password for an account, where <KEY> is the uppercased account key (e.g. YAHOO_APP_PASSWORD_PERSONAL). Used as a fallback after the macOS Keychain lookup and before the inline password field. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| yahoo_check_authA | Preflight: verify IMAP (and optionally SMTP) login for one or all accounts. Args: account: Account key from accounts.json, e.g. "personal" or "work". None = check all. check_smtp: Also verify SMTP login (default: IMAP only). Returns a dict keyed by account name with ok/stage/error/hint fields. |
| yahoo_list_foldersB | List all mailbox folders. Returns folder names available in the Yahoo mailbox. Use account="" for another account in accounts.json, or omit it for the account that file marks as default. |
| yahoo_list_mailA | List recent messages with subject, sender, date, and attachment indicators. Each result's "id" is the message's IMAP UID: stable across calls, unlike a sequence number, and the value every msg_id parameter expects. Args: folder: Mailbox folder (default: INBOX) top: Max messages to return (default: 20, max: 100) since: Only messages after this date (YYYY-MM-DD). Default: last 30 days. account: Account key from accounts.json, e.g. "personal" or "work". Default: the account that file marks as default. |
| yahoo_get_mailA | Read a specific message by UID (the "id" from yahoo_list_mail or yahoo_search_mail). Args: msg_id: Message UID from yahoo_list_mail / yahoo_search_mail folder: Mailbox folder (default: INBOX) body: Body format: "text" (plain text, default), "html", or "none" max_body_chars: Truncate body to this many chars (default: 5000) account: Account key from accounts.json, e.g. "personal" or "work". Default: the account that file marks as default. |
| yahoo_search_mailA | Search messages by keyword in subject, sender, or body. Result ids are IMAP UIDs, the same ids yahoo_list_mail returns. Args: query: Search text (case-insensitive) folder: Mailbox folder (default: INBOX) field: Where to search: "subject", "from", "body", or "all" (default: subject) since: Only search after this date (YYYY-MM-DD) top: Max results (default: 20) account: Account key from accounts.json, e.g. "personal" or "work". Default: the account that file marks as default. |
| yahoo_download_attachmentsA | Download attachments from a message to disk. Args: msg_id: Message UID from yahoo_list_mail / yahoo_search_mail folder: Mailbox folder (default: INBOX) out_dir: Directory to save files (default: ~/Downloads). Must lie inside an allowed folder: ~/Downloads or a temp folder (the system temp dir, /tmp), unless YAHOO_MAIL_ALLOWED_DIRS replaces that list. Anything else is refused. filename_filter: Only download files matching this substring (case-insensitive) account: Account key from accounts.json, e.g. "personal" or "work". Default: the account that file marks as default. |
| yahoo_mail_statsA | Quick mailbox statistics: total messages, recent/unseen counts, date range. Args: folder: Mailbox folder (default: INBOX) account: Account key from accounts.json, e.g. "personal" or "work". Default: the account that file marks as default. |
| yahoo_send_mailA | Send a new email via SMTP, or save as draft (default). Args: to: Recipient(s), comma-separated (e.g. "a@x.com,b@y.com") subject: Subject line body: Email body (plain text by default; set html=True for HTML) cc: CC recipient(s), comma-separated bcc: BCC recipient(s), comma-separated html: True if body is HTML; False (default) for plain text attachments: List of absolute file paths to attach. Each must lie inside an allowed folder: ~/Downloads or a temp folder (the system temp dir, /tmp), unless YAHOO_MAIL_ALLOWED_DIRS replaces that list. Otherwise nothing is saved or sent and an error is returned. send_now: True to dispatch via SMTP immediately. Default False = save to Drafts folder. account: Account key from accounts.json, e.g. "personal" or "work". Default: the account that file marks as default. Returns dict with status ("draft_saved" or "sent"), folder/recipients, and message id. |
| yahoo_forward_mailA | Forward an existing message to new recipient(s), preserving attachments. Args: msg_id: Source message UID (from yahoo_list_mail / yahoo_search_mail) to: Recipient(s), comma-separated cc: CC recipient(s) bcc: BCC recipient(s) additional_text: Optional text prepended above the forwarded content (plain text) folder: Source folder (default: INBOX) send_now: True to dispatch immediately. Default False = save to Drafts. account: Account key from accounts.json, e.g. "personal" or "work". Default: the account that file marks as default. Returns status, subject, attachment count, and message id. |
| yahoo_move_mailA | Move one message, addressed by UID, from source_folder to dest_folder. Uses UID MOVE when the server supports it, else UID COPY + \Deleted + UID EXPUNGE, and a bare EXPUNGE only on a server with neither MOVE nor UIDPLUS. Destination folder must already exist (use yahoo_create_folder first if needed). Args: msg_id: Source message UID from yahoo_list_mail / yahoo_search_mail (one UID; ranges and lists are refused) dest_folder: Target folder name source_folder: Source folder (default: INBOX) account: Account key from accounts.json, e.g. "personal" or "work". Default: the account that file marks as default. |
| yahoo_create_folderB | Create a new mailbox folder. Args: name: Folder name. For nested folders use the server's separator (commonly "/" or ".", e.g. "INBOX/Archive2026" or "Archive.2026"). subscribe: Subscribe to the folder so it appears in mail clients (default: True). account: Account key from accounts.json, e.g. "personal" or "work". Default: the account that file marks as default. |
| yahoo_delete_mailA | Delete a single message, addressed by UID. Default: move to Trash (reversible). Args: msg_id: Message UID (from yahoo_list_mail / yahoo_search_mail; one UID, ranges and lists are refused) folder: Folder the message lives in (default: INBOX) permanent: True = mark \Deleted + expunge this UID in place (IRREVERSIBLE); False (default) = move to the Trash folder. account: Account key from accounts.json, e.g. "personal" or "work". Default: the account that file marks as default. |
| yahoo_empty_folderA | PERMANENTLY delete ALL messages in a folder (mark \Deleted + EXPUNGE). Intended for Bulk (spam) and Trash. Irreversible. Safety: with confirm=False (default) NOTHING is deleted — it returns the count that WOULD be purged. Pass confirm=True to actually empty the folder. Args: folder: Folder to empty (e.g. "Bulk", "Trash") confirm: Must be True to actually delete. Default False = dry run. account: Account key from accounts.json, e.g. "personal" or "work". Default: the account that file marks as default. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 13 tools
Each tool maps to a clearly distinct mail operation: folder listing/creation, message listing/getting/searching, sending/forwarding, moving, deleting, attachments, stats, and auth checks. The overlap between single-message delete and bulk empty-folder is explicitly scoped, so an agent can select correctly without confusion.
All tools use the same yahoo_ prefix and snake_case convention, with predictable verb_noun naming in almost every case. The lone noun-style name (yahoo_mail_stats) still follows the same overall style, so the set is highly consistent.
At 13 tools, the set is well-scoped for an email access server. Each tool corresponds to a meaningful operation, and there are no obviously redundant entries inflating the count.
The core mailbox lifecycle is covered: listing/searching/reading, sending/drafting/forwarding, moving/deleting, attachments, folder management, and stats. Missing flag/read-state operations and a dedicated reply tool are minor gaps that agents can mostly work around.