Read-focused, prompt-injection-hardened email MCP server for any IMAP provider
Strong foundation with 11 well-named tools following verb_noun convention (search_emails, get_email, create_draft, send_email). All tools have descriptions (avg 95 chars, within 10-1024 range). Input schemas present with typed parameters and descriptions. Key gaps: output schemas undocumented (no return type specs visible), error handling guidance absent, no pagination metadata (limit/offset accepted but no total_count or next_cursor returned), and missing parameter constraints (enums for folder names, date format specs). Security-conscious design (no secrets in params, capability gating). Composition is clean, each tool has single responsibility. Naming is clear and action-oriented.
Create a draft email message with optional recipients and attachments from existing messages.
Delete an email message by moving it to the Trash folder.
Download an attachment from an email message to the configured download directory.
Retrieve a complete email message by folder and UID, including headers, body, and attachment metadata.
Retrieve the content of a Sieve script by name.
List all mailbox folders on the email account with optional message counts and special-use flags.
List all Sieve scripts available on the server with their active status.
Output schemas not documented. No return type specifications visible for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., email UID for chaining to get_email).
Pagination incomplete. search_emails accepts limit/offset but no total_count or next_cursor returned. Large result sets will blow context window without proper pagination metadata.
Parameter constraints missing. 'folder' parameter accepts free-form strings with no enum or validation guidance. Should enumerate valid folders (INBOX, Sent, Trash, etc.) or reference list_folders output.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | 2026-07-28+ | v2 |
Move an email message from one folder to another using the IMAP MOVE command.
Search emails with optional filters for folder, query text, from, to, subject, date range, and unread status. Returns paginated results with limit and offset.
Send an email message via SMTP with optional recipients, subject, and body.
Set or clear the \Seen and \Flagged flags on an email message.
Error handling guidance absent. No recovery hints in descriptions (e.g., 'If folder not found, call list_folders first'). Agents cannot self-correct on failures.
Destructive operations lack confirmation pattern. send_email and delete_email are irreversible but have no dry-run or confirmation step. Agents can accidentally send/delete without safeguards.