Agent flow model to list, send, search, and modify emails & list, create, update and delete events in google calendar
Server has 7 tools with complete input schemas and descriptions, but quality is inconsistent. Tool names follow verb_noun convention (list_emails, send_email, etc.), which is good. However, descriptions are generic and lack actionable context for LLM selection. Parameter descriptions exist but are minimal (avg ~40 chars). No output schemas documented. Error handling is present but not recovery-focused. Missing tool annotations (readOnlyHint, destructiveHint). No pagination support despite list tools. Schemas are properly typed but lack constraints (enums, ranges, patterns). Overall: functional but below production baseline.
Create a new calendar event
List recent emails from Gmail inbox
List upcoming calendar events
Modify email labels (archive, trash, mark read/unread)
Search emails with advanced query
Send a new email
Update an existing calendar event
No output schemas documented. LLMs cannot predict response structure or plan downstream tool calls. E.g., list_emails returns what fields? Does it include message_id for use in modify_email?
Descriptions lack actionable context. 'List recent emails from Gmail inbox' does not explain when to use list_emails vs search_emails, what the default behavior is, or what fields are returned. Descriptions should be 50-200 chars and answer: what, when, and what's returned.
No pagination support on list tools. list_emails and list_events accept maxResults but no offset/cursor. Large result sets will blow context window. Implement limit + offset or cursor-based pagination.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Missing tool annotations. send_email, modify_email, create_event, and update_event are destructive/write operations but lack destructiveHint annotation. list_emails and search_emails lack readOnlyHint. Annotations guide agent safety reasoning.
Parameter constraints missing. 'maxResults' has no min/max bounds (could be 0 or 999999). 'query' in search_emails has no format guidance. 'start' and 'end' in create_event/update_event say 'ISO format' but no validation. Add enums, ranges, and patterns to schema.