MCP server for Gmail operations including reading unread emails and accessing email content
Server has 4 tools with minimal quality. Two tools (get_secret_number, get_secret_string) are test stubs with empty input schemas and trivial descriptions. The two Gmail tools (list_unread_emails, read_email) have basic descriptions but lack output schema documentation, parameter validation guidance, and error recovery hints. No tool has enum constraints, format specifications, or dependency documentation. Descriptions average ~60 chars, below the 194-char baseline for production tools. No tool annotations (readOnlyHint, etc.) present. Error handling returns empty lists or None without actionable guidance.
Get the secret number for testing.
Get the secret string/phrase for testing.
Lists unread emails from the user's Gmail inbox with basic information.
Reads the full content of a specific email by its ID.
No output schemas documented. LLMs cannot infer what fields list_unread_emails or read_email return, forcing them to guess at downstream field names and risk broken tool chains.
Test tools (get_secret_number, get_secret_string) have empty input schemas and descriptions under 20 chars.
Error handling returns bare empty lists or None without recovery guidance. E.g., list_unread_emails catches exceptions and returns [], LLM has no idea why it got no results or what to try next.
No parameter constraints or format guidance. max_results lacks min/max bounds (should be 1-100). email_id lacks format hint (Gmail message IDs are opaque strings). LLMs may pass invalid values.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | <=2025-11-25 | v2 |
No tool annotations (readOnlyHint, idempotentHint). All tools are read-only but this is not declared in the schema, forcing LLMs to infer safety from descriptions alone.