MCP server for email account management, message operations, and mail synchronization. Provides tools for listing accounts/folders/messages, reading messages, searching, composing/replying, and managing message flags and folders.
Server has 11 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-50 chars, mostly short), and input schemas are present with type definitions. However, descriptions lack LLM-optimized detail (pattern:tool-description baseline 194 chars; these average ~35 chars). Output schemas are undocumented, LLMs cannot infer response structure. Error handling is minimal; no recovery guidance. Destructive tools (delete_message, send, reply) lack confirmation patterns. Parameter descriptions are sparse (e.g., 'UUID of the account' repeated 5+ times without context on how to obtain it). No enum constraints on flag names or search parameters. Missing idempotency guidance for write operations.
Delete a message (move to trash or permanently delete)
List all configured email accounts
List all folders for a specific account
List messages in a folder with pagination
Mark a message as read or unread
Move a message to a different folder
Read the full content of a specific message
Reply to an existing email message
Search for messages across accounts and folders
Output schemas undocumented. LLMs cannot infer response structure (e.g., what fields does list_messages return? Is there pagination metadata?). Breaks tool chaining and forces agents to guess field names.
Descriptions too short (avg 35 chars vs baseline 194 chars). Lack context on WHEN to use each tool, prerequisites, and dependencies. E.g., 'List messages in a folder with pagination' does not explain how to get a folder_id or what pagination returns.
Destructive operations (send, reply, delete_message) lack confirmation or dry-run patterns. Agents can irreversibly delete or send emails without safeguards. No recovery guidance in error responses.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
Send a new email message
Toggle a flag (starred, answered, etc.) on a message
toggle_flag parameter 'flag' accepts free-form strings ('Seen, Answered, Flagged, Deleted, Draft, Recent, or custom'). Should be an enum constraint to prevent hallucinated flag names.
Parameter descriptions repeat 'UUID of the account/folder/message' without explaining how agents obtain these IDs. Missing dependency hints like 'Call list_accounts() first to get account_id' (pattern:tool-description).