An MCP server that remixes ad copy for different marketing channels
This MCP server has severe definition quality gaps. Only 1 tool is defined (remix_ad). The tool has a basic description (45 chars, within the 10-1024 range but minimal), and input schema with 2 parameters (winning_copy_sample and target_channel), both with descriptions. However, the output schema is NOT documented, the code returns a dict with 'remixed_copy' field, but this is inferred from implementation, not declared in the tool definition. The tool name 'remix_ad' is acceptable (verb_noun pattern), but the description lacks critical context: WHAT it does (remix ad copy for a channel), WHEN to use it (when preparing ads for specific platforms), and what it returns (remixed copy). No parameter constraints (e.g., enums for target_channel values: instagram, facebook, twitter, tiktok, linkedin), no output schema documentation, and no error handling guidance. No tool annotations (readOnlyHint, idempotentHint). The implementation is a mock that just appends channel-specific formatting, no real API calls, no validation, no error cases. This is below the baseline for production tools.
Remixes ad copy for a target marketing channel
No output schema documented. The tool returns a dict with 'remixed_copy' field, but this is inferred from code implementation, not declared in the MCP tool definition. LLMs cannot plan downstream operations or validate response structure.
target_channel parameter accepts free-form strings; no enum constraint provided. Valid values (instagram, facebook, twitter, tiktok, linkedin, etc.) should be declared as an enum to prevent hallucinated invalid channels.
Tool description is minimal (45 chars) and lacks WHEN/WHY context. Does not state the prerequisites, expected output format, or when to call this tool instead of alternatives. Descriptions should be 50-200 chars for LLM optimization.
No error handling or recovery guidance. The code does not validate inputs, handle invalid channels, or provide actionable error messages. If an agent passes an unknown channel, the tool will silently produce output without warning.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
No tool annotations. The tool is READ_ONLY (does not modify state), but this is not declared via readOnlyHint or idempotentHint in the MCP definition. Agents cannot infer safety properties.
Tool implementation is a mock stub (hardcoded response format). For production use, the tool needs real implementation: API calls to an ads remix service, input validation, proper error handling, and structured output.