A Gmail assistant that uses MCP servers to assist with Gmail queries and operations, integrated with Chainlit and OpenAI agents
Single tool 'order_inquiry' has a basic schema with one parameter, but critical gaps undermine quality. Description is minimal (34 chars, below 50-char baseline for clarity). Parameter 'order_id' lacks a description entirely, violates pattern:tool-description. No output schema documented. No error handling guidance. Tool is READ_ONLY but description does not state this. No pagination, no structured response format documented. The implementation returns a hardcoded string, not a real order lookup, suggesting incomplete integration.
Inquire about an order status
Parameter 'order_id' has no description. LLMs cannot infer what format is expected (UUID, numeric ID, email-based ID, etc.). Violates pattern:tool-description.
Tool description is only 34 characters ('Inquire about an order status'). Too short to guide LLM selection. Should explain WHEN to use it, WHAT it returns, and any prerequisites. Baseline: 50 - 200 chars for clarity.
No output schema documented. LLMs cannot plan downstream tool calls or extract structured data. Implementation returns a hardcoded string, not a real order status lookup.
No error handling guidance. What happens if order_id is invalid, not found, or malformed? LLM has no recovery path. Should return actionable error messages like 'Order not found. Try search_orders() with a partial order number.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
Tool name 'order_inquiry' is vague. Does it check status, retrieve details, or validate existence? Rename to 'get_order_status' or 'search_orders' to clarify intent. Baseline: 90% of A+ tools start with action verbs like get_, list_, search_.