Exposes IMAP-backed tools (list/search/read/move/delete/mark) for a Yahoo Mail account over the Model Context Protocol. Every tool opens a short-lived IMAP connection, does its work, and closes it — connections are never held open across calls.
11 tools with complete schemas and descriptions. Naming is clear and verb-based (list_, search_, read_, mark_, flag_, move_, delete_). Descriptions are adequate (100-200 chars typical) but lack LLM-optimized guidance on WHEN to use each tool vs. alternatives. Parameters are typed and described. Error handling returns structured error dicts with error_type classification, which is good. However, output schemas are not documented, callers must infer structure from code. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. Batch operations (mark_unread, flag_messages) are present, reducing composition friction. Missing: pagination guidance, per-item success/failure for batch ops, and recovery hints in error messages.
Delete one or more messages permanently (move to Trash, then expunge).
Flag one or more messages (mark with a star).
Download and return the content of an attachment from a message.
List all IMAP folders in the mailbox.
List messages in a folder, sorted by date (newest first). Returns a summary of each message (UID, subject, sender, date, unread/flagged status).
Mark one or more messages as read.
Mark one or more messages as unread.
Output schemas not documented. Callers cannot infer response structure without reading source code. LLMs cannot plan downstream operations or extract required fields.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels (READ_ONLY, WRITE, REVERSIBLE, DESTRUCTIVE). Agents cannot distinguish safe from dangerous operations.
Batch operation tools (mark_unread, flag_messages, etc.) do not document per-item success/failure. If 1 of 50 UIDs fails, error response is opaque, agent cannot retry only failed items.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2026-07-28+ | v2 |
Move one or more messages to a different folder. Uses the MOVE command if available; falls back to COPY + DELETE + EXPUNGE on older servers.
Fetch and return the full content of a message by UID, including headers, body (plain text and/or HTML), and attachments.
Search for messages in a folder using IMAP search criteria. Supports queries like 'FROM [email protected]', 'SUBJECT keyword', 'SINCE 2024-01-01', 'UNSEEN', etc. Returns matching messages sorted by date (newest first).
Unflag one or more messages (remove the star).
Error messages lack recovery guidance. 'IMAP error: ...' tells agent nothing actionable. Should suggest 'Check folder name' or 'Try search_messages() first' per error type.
Pagination not documented for list_messages and search_messages. No guidance on handling large result sets or cursor-based continuation.