MCP bridge server that connects Affinity design application to Claude/Gemini via Model Context Protocol, enabling AI-assisted design workflows with tools, resources, and prompts for document manipulation, asset export, and creative generation
Affinity Gemini MCP has significant definition quality gaps. Tool names lack clear action verbs (e.g., 'tools/list', 'resources/read' are generic; 'create-isometric-artwork' mixes hyphens inconsistently). Descriptions exist but are often vague or example-heavy, violating the 'no examples in descriptions' rule. Parameters lack type information in schemas, most show only string types with no enums, ranges, or validation constraints. The 'tools/call' tool is a meta-tool that accepts arbitrary arguments, making it impossible to validate or guide LLM usage. Output schemas are not documented. Error handling is minimal, no recovery guidance or error classification. The bridge pattern (forwarding to Affinity via HTTP) obscures actual tool capabilities, making it impossible to verify schemas match reality.
Generate high-precision 2.5D isometric artwork, buildings, or icons with lighting and gradients in Affinity.
Inspect and prepare artboards and slices for production asset export with visual verification.
Generate a cohesive set of grid-aligned vector app icons on designated artboards.
List available prompt templates for Affinity design workflows
List available resources from Affinity
Read a specific resource from Affinity by URI
Call a specific tool in Affinity with provided arguments
tools/call is a meta-tool accepting arbitrary 'name' and 'arguments' object. This violates single-responsibility and makes it impossible for LLMs to validate inputs or understand what will happen. LLMs cannot reason about unknown tool signatures.
Parameters in create-isometric-artwork, generate-icon-set, and export-production-assets use example values in descriptions ('e.g. cyberpunk city', 'e.g. 6', 'e.g. SVG, PNG@2x'). LLMs reuse examples literally instead of adapting to context. Replace with enum constraints or format declarations.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields. For example, create-isometric-artwork should document what it returns (artboard ID? layer names? success status?).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
List all available tools from Affinity application
Naming inconsistency: 'tools/list' and 'resources/list' use slashes (REST-style), while 'create-isometric-artwork' uses hyphens. Inconsistent naming confuses LLMs. Adopt a single convention: verb_noun (e.g., list_tools, create_isometric_artwork).
No error handling or recovery guidance. If a tool fails, the LLM receives no actionable error message. For example, if create-isometric-artwork fails due to invalid theme, the error should suggest valid themes or recovery steps.