Six tools with complete Zod schemas and descriptions. Naming follows verb_noun pattern (create_*, update_, extend_). Descriptions are clear and action-oriented (avg ~120 chars). All parameters have type definitions and descriptions. However, output schemas are not formally documented, only inferred from formatResult() helper. Error handling returns text-wrapped errors without recovery guidance. No tool annotations (readOnlyHint/destructiveHint). Missing parameter constraints (e.g., canvas_id format, title length limits). Composition is sound: each tool has one responsibility, and create_* tools return edit_token needed by update_canvas.
Create an HTML canvas on gui.now and get a shareable URL
Render a Mermaid diagram as a pannable, zoomable canvas on gui.now and get a shareable URL
Create a markdown canvas on gui.now (rendered server-side) and get a shareable URL
Create a multi-frame canvas on gui.now with multiple HTML panels
Push a gui.now canvas's expiry out to 24 hours from now, so a canvas that is about to lapse stays reachable
Replace the content of an existing gui.now canvas. Needs the edit_token returned when it was created. Free tier allows 3 edits per canvas; Pro is unlimited. All viewers see the change immediately.
Output schema not formally documented. formatResult() returns a text string; LLMs cannot parse structured fields (url, id, edit_token, expires_at) without explicit schema declaration.
Error handling returns generic text errors without recovery guidance. E.g., 'API error (429): ...' does not tell the LLM whether to retry, ask the user, or abort. Rate-limit error includes Retry-After but no actionable next step.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All six tools are write operations; marking them as destructiveHint=true would help agents reason about side effects and retry safety.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 65 | 2026-07-28+ | v2 |
Parameter constraints missing. 'canvas_id' and 'edit_token' have no format hints (length, character set). 'title' has no length limit. Enum values (expires) are present but other params lack min/max or pattern constraints.
update_canvas description mentions 'Free tier allows 3 edits per canvas; Pro is unlimited' but does not explain what happens when limit is exceeded. LLM cannot plan for quota exhaustion.