MCP server that generates business posters (PNG/JPG) into ~/Documents/Poster Designs, using a design system derived from four reference posters.
Four tools with explicit schemas and descriptions. Naming follows verb_noun pattern (list_, get_, create_). Descriptions are present but vary in quality (10-200 chars). Schemas are well-structured with enums and required fields. However, parameter descriptions are sparse or missing in several tools, and output schemas are not documented. Error handling is minimal. Token-budget optimization is evident but reduces discoverability.
Render a business poster to a PNG/JPG in ~/Documents/Poster Designs. Auto-fitted display type, band structure, one accent colour, protected legibility. Returns the file path.
Same message across several templates/palettes in one call, to compare directions.
The design rules, type scale and layout ratios the generator applies. For writing copy that fits, or critiquing output.
Field guide for the poster layouts, plus palettes, sizes and fonts. Pass a template id for that one layout only. Call once before create_poster if unsure.
Output schemas not documented. LLMs cannot predict what fields create_poster and create_poster_variants return, forcing them to guess at downstream field names and risk broken chains.
create_poster 'content' parameter accepts additionalProperties:true with no field documentation in the schema itself. Field meanings are delegated to list_poster_templates, forcing an extra discovery call and making the schema self-incomplete.
get_design_principles 'brandColor' parameter lacks format/pattern description. LLMs cannot validate hex color format and may pass invalid values like 'red' or '#GGGGGG'.
No error recovery guidance. If create_poster fails (invalid template, missing required field, render timeout), the response does not guide the LLM on what to try next or which tool to call.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
create_poster 'preview' parameter defaults to false but description warns 'Costs tokens'. No guidance on when to enable it or what the token cost is. LLMs may avoid it unnecessarily or enable it without understanding the cost.