FastMCP server for Event Surge Activation Copilot that provides tools for event search, scoring, campaign brief generation, copy variant generation, image prompt generation, and poster draft generation
Server has 8 tools with basic naming and descriptions, but significant gaps in schema completeness, parameter documentation, and error handling. Tool names follow verb_noun convention (search_events, get_event_details, score_event_fit, rank_event_candidates, generate_campaign_brief, generate_copy_variants, generate_image_prompt, generate_draft_poster), which is positive. However, descriptions are generic (avg ~60 chars, well below the 194-char baseline for A+ tools). Input schemas visible but lack depth: parameters have type and description, but no enums, constraints, or validation guidance. No output schemas documented. No error handling patterns visible. Complex nested objects (intent, brief, image_concept) passed as parameters without field-level documentation. This is typical of early-stage community servers.
Generate a campaign brief for a selected event, including campaign angle, message direction, CTA direction, and activation use case.
Generate multiple marketing copy variants (headlines, social captions, CTAs, promo text) for a campaign.
Generate a draft poster image based on campaign brief and image concept.
Generate an image prompt and style notes for creating poster creative assets.
Get detailed information about a specific event.
Rank a list of candidate events against a campaign intent, returning scored and ranked results.
Score how well a specific event fits a campaign intent based on audience, brand category, and other factors.
Complex nested object parameters (intent, brief, image_concept) lack field-level documentation. LLMs cannot infer required fields, types, or valid values within these objects.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., event_id from search_events result).
No error handling patterns visible. Tools do not guide LLM recovery (e.g., 'Event not found. Try search_events() first.').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | 2026-07-28+ | v2 |
Search for upcoming events in a city within a timeframe.
Tool descriptions are too brief (avg 50 chars vs 194-char baseline). Missing WHEN to use, prerequisites, and dependencies between tools.
No input validation constraints (enums, min/max, regex patterns) visible. Parameters like 'timeframe' accept free-form strings, inviting hallucinated values.