MCP server that lets an AI agent read and edit FigJam boards through a local Figma plugin — no REST or Dev Mode quotas.
17 tools with inconsistent quality. Most have basic descriptions (10-50 chars) and minimal parameter documentation. Input schemas present but sparse: many parameters lack descriptions or type constraints. No output schemas documented. Error handling absent, tools return raw results with no recovery guidance. Naming is verb-first (good), but descriptions are too terse to guide LLM selection. No tool annotations (readOnlyHint/destructiveHint). Batch operations (create_stickies, create_shapes, etc.) lack per-item error reporting. No pagination support despite list_nodes accepting a limit. Critical: tool definitions appear inferred from demo/smoke scripts rather than explicit MCP registration, cannot verify actual schema enforcement.
Create code blocks on the board
Create connector lines between nodes
Create or clean a demo board with sample content
Create a diagram with nodes and edges, automatically laid out
Create sections (containers) on the board
Create shapes on the board
Create sticky notes on the board
Tool definitions inferred from demo/smoke scripts, not explicit MCP registration. Cannot verify actual schema enforcement or whether schemas are validated at runtime.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields. E.g., list_nodes accepts 'limit' but response structure unknown.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 47 | <=2025-11-25 | v2 |
Create tables on the board
Create text elements on the board
Delete nodes from the board
Export the current board or selection as a PNG image
Find nodes by name or text content
Focus the viewport on the board content
Get information about the current FigJam board
Get the currently selected nodes
List top-level nodes on the current page
Update properties of existing nodes
Batch creation tools (create_stickies, create_shapes, create_texts, create_tables, create_code_blocks, create_sections, create_connectors) lack per-item error reporting. If one item fails, LLM cannot determine which succeeded and which failed.
Descriptions too terse (10-50 chars). Rubric baseline: 194 chars avg. Examples: 'Get information about the current FigJam board' (47 chars) lacks WHEN to call, WHAT it returns, or prerequisites. LLMs cannot reliably select this tool over similar ones.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Agents cannot distinguish safe reads from destructive writes without parsing descriptions. delete_nodes and update_nodes should be marked destructive.