Server has 9 tools with basic descriptions and input schemas. Naming follows verb_noun convention (connect, health, list_folders, latest_emails, read_email, search_emails, send_email, mark_read, mark_unread). Most tools have descriptions (10-100 chars), but several are terse and lack context on WHEN to use them or WHAT they return. Input schemas present for most tools with type definitions, but output schemas are not documented in the source. Error handling exists (_friendly_error) but is not surfaced in tool descriptions. No tool annotations (readOnlyHint/destructiveHint) despite clear risk distinctions (READ_ONLY vs WRITE). Parameter descriptions are minimal; e.g., 'limit' lacks min/max bounds. No pagination support despite list_folders and latest_emails returning potentially large result sets.
Establish and retain an authenticated IMAP connection.
Check configuration, IMAP connectivity, and authentication.
Return metadata for the latest messages in the inbox.
List folders available in the configured email account.
Mark an email message as read.
Mark an email message as unread.
Read the full content of a specific email message.
Output schemas not documented. Tools return dicts but LLMs cannot see what fields to expect (e.g., latest_emails returns message metadata, but structure is not declared). Forces LLMs to guess field names for downstream operations.
Tool descriptions lack context on WHEN to use them and WHAT they return. E.g., 'List folders available in the configured email account' does not explain the response structure or when to call it before other tools. Descriptions average ~50 chars; baseline is 194 chars.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) despite clear risk distinctions. send_email, mark_read, mark_unread are WRITE operations; others are READ_ONLY. Annotations enable agents to reason about side effects and retry safety.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | <=2025-11-25 | v2 |
Search for emails matching specified criteria.
Send an email message.
Parameter descriptions lack constraints. 'limit' in latest_emails and search_emails has no min/max bounds stated in description (schema shows 1-100, but LLMs read descriptions, not JSON Schema). 'query' in search_emails lacks format guidance (IMAP syntax not explained).
No pagination support. list_folders and latest_emails may return large result sets, but no offset/limit or cursor mechanism. Baseline pattern requires pagination for list tools.