MCP server for typesetting event invitation greeting cards with vector die-cut PDF generation and RSVP QR code portal integration
This server has critical definition quality issues. Only 1 tool is present. The tool name 'execute_skill_action' is generic and violates naming conventions (does not start with a clear action verb that conveys what happens). The description is minimal (59 chars) but present. Parameters are documented with types and descriptions, but the schema lacks critical details: no enums for the string parameters (card_finish_option, rsvp_mode) which should be constrained to known values; parameter descriptions are adequate but lack format/range specifications. Output schema is NOT documented at all, the response structure is visible only in client.py mock returns and is not formally declared in the MCP tool definition. The tool appears to be read-only (marked 'READ_ONLY' in Risk field) but this is not reflected in any description or error handling pattern. No error handling, recovery guidance, or validation rules are present in the source. The server code itself (mcp_server.py) is a stub that only prints hardcoded JSON and does not implement actual MCP protocol message handling, it cannot actually invoke the tool or handle requests.
Execute typesetting skill action for event invitation greeting cards
Tool name 'execute_skill_action' is generic and does not clearly convey the action. Per Arcade patterns, tool names should start with a verb that reflects the action (e.g., 'typeset_invitation_card', 'generate_invitation_card', 'create_invitation_card'). Generic names like 'execute_skill_action' force LLMs to read descriptions to understand intent.
Parameters 'card_finish_option' and 'rsvp_mode' are free-form strings with no enum constraints. The description mentions example values (e.g., 'EMBOSSED_GOLD_FOIL_ACCENT', 'DYNAMIC_QR_GUEST_PORTAL') but does not list all valid options or declare them as JSON Schema enums. LLMs will hallucinate invalid values. Constraint must be formal: specify enum with all valid options.
Output schema is not documented. The tool has no formal description of what it returns. The response structure is inferred from client.py mock returns (invitation_id, occasion, finish_die_cut_mask_included, rsvp_qr_code_linked, vector_die_cut_pdf_url, responsive_web_rsvp_url) but this is not declared in the MCP tool definition. LLMs cannot know what fields to expect, preventing downstream tool chaining and data extraction.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 25 | 2026-07-28+ | v2 |
No error handling guidance. The tool provides no recovery instructions, error classification, or validation rules. LLMs do not know what to do if the tool fails (retryable? user-fixable? fatal?). No constraints on parameter values are documented (e.g., what happens if occasion_name is empty? if card_finish_option is invalid?).
Default parameter values are provided (occasion_name='Annual Silicon Gala & Innovation Awards', card_finish_option='EMBOSSED_GOLD_FOIL_ACCENT', rsvp_mode='DYNAMIC_QR_GUEST_PORTAL') but these are specific business examples that LLMs may reuse literally instead of adapting to user context. Per Arcade guidelines, example values should not appear in descriptions or defaults; use formal constraints (enums, patterns) instead.
Tool description is vague. 'Execute typesetting skill action for event invitation greeting cards' does not explain WHEN to call this tool, WHAT it modifies, or what downstream tools can consume its output. Missing: 'This tool generates a vector-based invitation card design with optional finishes and embeds a QR code for RSVP. Returns URLs for PDF die-cut artwork and web RSVP portal.'
Parameter descriptions lack actionable constraints. E.g., 'occasion_name' is described as 'The name of the event occasion', what is the max length? What characters are allowed? Does it accept special chars or Unicode? 'card_finish_option' says '(e.g., EMBOSSED_GOLD_FOIL_ACCENT, METALLIC_COPPER_ACCENT)' but does not list all valid values or state the format.