MCP server for Affinity Designer integration providing automation capabilities through the Model Context Protocol
This server defines 23 tools with schemas and descriptions present, but quality is inconsistent. Most tool names follow verb_noun conventions (affinity_get_status, affinity_create_layer), which is good. However, descriptions are bilingual (English/Japanese) and often generic, many lack context about when to use the tool or what prerequisite states are required. Parameter descriptions are present but lack constraints (min/max, format guidance). Output schemas are not documented, forcing LLMs to infer response structures. Tool affinity_export_document has good enum constraints on 'format' and numeric bounds on 'quality', but most tools lack equivalent rigor. Tool affinity_send_shortcut requires users to know keyboard syntax ("^n" for Ctrl+N) with minimal guidance. Error handling is absent, no recovery guidance, no categorization of error types. The server covers a narrow domain (Affinity Designer UI automation via Windows APIs) and does not attempt composition patterns. Per-tool average is ~58, pulled down by missing output schemas, weak parameter constraints, and lack of error guidance.
Close current document / 現在のドキュメントを閉じる
Create new layer in current document / 現在のドキュメントに新しいレイヤーを作成
Delete selected layer / 選択したレイヤーを削除
Deselect all objects / 全オブジェクトの選択を解除
Discover Affinity Designer documents on system / システム上のAffinity Designerドキュメントを発見
Duplicate selected objects (truncated in source)
Export current document / 現在のドキュメントをエクスポート
Output schemas are not documented. Tools return results but LLMs cannot infer field types, required fields, or structure. This violates pattern:tool-chain and forces agents to guess response formats.
Descriptions lack context about when to use tools and prerequisites. For example, affinity_create_layer does not state 'A document must be open first' or 'This operates on the currently active document'. Many descriptions are generic (40-55 chars) and lack LLM-specific guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
Focus the Affinity Designer window / Affinity Designerウィンドウにフォーカス
Get automation capabilities and limitations / 自動化機能と制限を取得
Get Affinity Designer application status and running processes / Affinity Designerアプリケーションステータスと実行中プロセスを取得
List layers in current document / 現在のドキュメントのレイヤーを一覧表示
Move selected objects / 選択したオブジェクトを移動
Create new document in Affinity Designer / Affinity Designerで新しいドキュメントを作成
Rename selected layer / 選択したレイヤーの名前を変更
Resize selected objects / 選択したオブジェクトのサイズを変更
Rotate selected objects / 選択したオブジェクトを回転
Save current document / 現在のドキュメントを保存
Select all objects in current layer / 現在のレイヤーの全オブジェクトを選択
Send keyboard shortcut to Affinity Designer / Affinity Designerにキーボードショートカットを送信
Start Affinity Designer application with optional document / オプションのドキュメントでAffinity Designerアプリケーションを開始
Toggle layer visibility (show/hide) / レイヤーの表示/非表示を切り替え
Validate document path and format / ドキュメントパスと形式を検証
Get information about the MCP Affinity Designer server / MCP Affinity Designerサーバーの情報を取得
Parameter descriptions lack actionable constraints. Tools like affinity_send_shortcut require keyboard syntax ("^n" for Ctrl+N) but do not document valid patterns, modifiers, or examples. Tools like affinity_start_app accept optional documentPath but do not validate paths, state required formats, or provide error guidance.
No error handling or recovery guidance. Tools do not categorize errors (retryable, user-fixable, fatal) or provide actionable messages. If affinity_export_document fails due to invalid path, LLMs receive no guidance on what to fix or how to retry.
Destructive operations (affinity_delete_layer, affinity_close_document) lack confirmation or dry-run capability. Agents can accidentally destroy work without warning or rollback options.
Tool affinity_duplicate_selection has truncated description ('(truncated in source)') and minimal schema, making it unusable for agents. Input schema is empty; no description of what it duplicates or parameters it accepts.
Bilingual descriptions (English/Japanese) waste tokens and reduce clarity. Descriptions like 'Get Affinity Designer application status and running processes / Affinity Designerアプリケーションステータスと実行中プロセスを取得' force LLMs to process two languages and increase context size. Use a single language (English for agent systems).
No documented pagination or result limits. Discovery tools (affinity_discover_documents, affinity_list_layers) may return large uncontrolled result sets, risking context window exhaustion. No limit, offset, or cursor mechanism.
Tools assume state persistence (e.g., 'current document', 'selected objects') but do not expose how to query or verify state. An agent cannot reliably know which layer is active before calling affinity_rename_layer, risking wrong updates.