MCP server serving pre-analyzed ad-market verticals and sample ad sets with creative DNA analysis, diversity reporting, and angle brief generation for advertising strategy.
Server exposes 5 read-only tools with clear action verbs and reasonable descriptions (avg 150 chars). All tools have input schemas with type definitions. However, parameter descriptions are minimal or absent, most inputs lack explanatory text beyond the type. Output schemas are not formally documented; responses are inferred from code (textResult wrapper). Error handling is basic (unknownVertical returns a text message but lacks structured recovery guidance). No tool annotations (readOnlyHint, etc.) despite all being read-only. Naming is strong (list_, get_), but schema completeness and parameter documentation lag production baselines.
Prioritized net-new angle briefs for a vertical, with platform copy variants and evidence citations back to the winning market ads.
Entity-ID collapse analysis for a sample ad set: how many distinct concepts Meta's algorithm actually sees, which ads collapse together, and the proven market angles the set is missing.
Structured creative-DNA records (hook type, angle, format, offer framing, CTA style, persona) for a vertical's winning ads.
Top competitor ads currently winning in a vertical, ranked by run-duration (longevity is a public proxy for profitability), plus a summary of what's winning and why.
List the pre-analyzed ad-market verticals and sample ad sets available from this server.
Parameter descriptions missing or minimal. 'vertical' and 'sampleSetId' inputs lack explanatory text; LLMs cannot infer what values are valid or how they map to the domain.
Output schemas not formally documented. Responses are inferred from code (textResult wrapper returns {type: 'text', text: JSON}). LLMs cannot plan downstream operations or validate expected fields.
No tool annotations despite all tools being read-only. Missing readOnlyHint would help agents understand safety and retry semantics.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Error handling returns plain text instead of structured recovery guidance. unknownVertical() returns a text message listing available verticals, but does not guide the LLM on next steps or categorize the error as retryable.
Input validation is implicit (slugify normalizes input). No explicit enum constraints or format validation. LLMs may pass invalid vertical names without clear feedback on valid options.