MCP server for generating ad copy and brand-compliant content using Google ADK agents with RAG retrieval, product context, and compliance checking
Two tools with basic verb-noun naming (get_product_details, get_brand_guidelines) and reasonable descriptions (150-200 chars). However, input schemas are minimal, only a single string parameter per tool with generic descriptions ('The product identifier', 'The brand name'). No output schemas documented. No error handling guidance. No parameter constraints (enums, patterns, ranges). Responses are hardcoded demo data, not production-ready. Tool composition is sound (read-only, single responsibility), but schema completeness and parameter validation are weak.
Returns brand voice guidelines, tone, channel-specific styles, mandatory disclaimers, and positioning for a given brand
Returns structured product information including name, category, features, target segment, and tone for a given product ID
Input schemas lack constraints and format guidance. 'product_id' parameter has no enum, pattern, or example format (e.g., 'MP-ACC-001' vs 'moniepoint_business_account'). LLMs cannot distinguish valid formats and will hallucinate IDs.
Output schemas are not documented. Callers cannot predict response structure (status, product, brand, voice, channel_style fields). LLMs must infer structure from examples, risking parsing errors.
No error handling guidance. When product_id or brand is not found, responses return 'status: not_found' but do not guide the LLM on recovery (e.g., 'Try searching available products' or list valid brands).
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | <=2025-11-25 | v2 |
Parameter descriptions are generic and lack actionable format hints. 'The product identifier (e.g. MP-ACC-001, moniepoint_business_account)' uses examples instead of formal constraints. LLMs latch onto examples and may reuse them literally.
Hardcoded demo data in production code. Tools return static catalog entries; no integration with real product/brand data sources. Unsuitable for production use without refactoring.