macOS Freeform board automation server. Creates and manipulates Freeform diagrams programmatically via click-first placement strategy with calibration.
Descriptions exist but are verbose (200+ chars) and include implementation details rather than LLM-optimized guidance. No parameter descriptions, no output schemas, no error handling guidance. Tool names are verb-noun compliant but descriptions read like internal documentation rather than agent-facing specs.
Calibrate shape placement for this Mac's screen. HOW IT WORKS: 1. Inserts a test rectangle at canvas (0,0) — the board centre. 2. Takes a screenshot. 3. Measures where the shape actually appeared vs where we aimed. 4. Stores the offset so all subsequent shape_add calls are corrected. Call this ONCE after board_new(), before drawing any diagram shapes. The result tells you the calibration offset being applied.
Create a new blank Freeform board. WORKFLOW: 1. Call board_new() — creates one board. 2. Call board_calibrate() — measures placement accuracy on this Mac. 3. Call shape_add(), connector_add() etc. — all draw on this board. 4. Never call board_new() again mid-diagram.
Empty input schemas: both tools declare Input: {} with no parameter definitions.
No output schemas documented. LLMs cannot infer what board_new or board_calibrate return, blocking downstream tool chaining and result extraction.
Descriptions are implementation-focused (200+ chars, discuss internal strategy, AppleScript details) rather than LLM-optimized. Should state: what does it do, when to call it, what does it return.
No error handling guidance. If board_new fails (Freeform not installed, permission denied), LLM has no recovery path. Missing pattern:recovery-guide.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Both tools modify state (create board, insert test shape) but LLM cannot see this from schema.