Enterprise Deal Distribution Rail for GrabOn. Generates 54 variants across multiple channels and languages, with emergency campaign termination capabilities.
The server defines 2 tools with explicit schemas and descriptions. Both tools have clear input schemas with typed parameters and descriptions. However, critical issues limit the score: (1) Tool naming does not consistently follow verb_noun patterns, 'distribute_deal' uses a gerund-like construct that could be clearer as 'create_deal_variants' or 'distribute_variants'; 'terminate_campaign' is acceptable but vague on what 'terminate' means in context. (2) Output schema is not documented, the tools return JSON text strings without a formal structured schema declaration, making it hard for agents to parse results predictably. (3) Error handling is minimal, both tools catch errors and return text, but provide no guidance on recovery, retryability, or what went wrong. (4) No tool annotations (destructiveHint, idempotentHint, readOnlyHint) despite terminate_campaign being clearly destructive. (5) Parameter descriptions reference example values (e.g., 'e.g. Zomato', 'e.g. food') which invites LLMs to reuse those literals. (6) The distribute_deal tool is complex, generating 54 variants internally, but the output schema is not formally specified, making it opaque to agents. Schemas are present and mostly complete, descriptions are adequate (194-char baseline met), but output handling, error guidance, and tool annotations are gaps.
Enterprise Deal Distribution Rail. Generates 54 variants across multiple channels and languages.
EMERGENCY KILL SWITCH: Immediately deactivates all variants across all 6 channels. Use this when merchant stock hits zero or for urgent campaign withdrawals.
Output schemas not formally documented. Both tools return JSON as a text string without a declared return type schema. Agents cannot reliably parse results or plan downstream calls.
Missing tool annotations. 'terminate_campaign' is destructive but has no destructiveHint annotation. 'distribute_deal' has no idempotentHint despite being a write operation. Agents cannot infer operation safety.
Minimal error handling and no recovery guidance. Both tools catch errors generically and return error text, but do not categorize (retryable vs fatal) or suggest next steps. 'Distribution Error: ...' or 'DEACTIVATE' logs tell agents nothing about what went wrong or how to recover.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 42 | - | v1 |
Example values in parameter descriptions invite literal reuse. 'e.g. Zomato', 'e.g. food', 'e.g. HDFC, ICICI, Cred' are examples that LLMs frequently copy verbatim instead of adapting to actual context.
Naming consistency. 'distribute_deal' does not follow verb_noun convention clearly. Clearer names would be 'create_deal_variants', 'generate_deal_variants', or 'publish_deal'. Current name is ambiguous on the primary action.
No confirmation step or dry-run for destructive operations. 'terminate_campaign' is irreversible but has no confirm_before_execute pattern or dry-run mode. Agents can accidentally kill campaigns.