Skip to main content
Glama

Draw on a Napkin board

napkin_draw
Destructive

Draws shapes, strokes, and labels on a board — diagram on a sketch, annotate a deck slide — and, via updates / deletes, changes or removes shapes that are already there (ids from napkin_boards_get; the fix for something you drew wrong). For NEW elements never compute absolute board coordinates: with slide, coordinates are slide-local — (0, 0) top-left to (960, 540) bottom-right of that slide. Without slide (sketches), (0, 0) is the top-left of the existing content — the same area napkin_boards_view renders, so place by what you saw there; on an empty board just start at (0, 0). Example — circle a slide's title and margin-note it:

{"boardId": "…", "slide": 2, "elements": [ {"type": "ellipse", "x": 60, "y": 40, "w": 400, "h": 90, "color": "#dc2626"}, {"type": "arrow", "x": 560, "y": 140, "x2": 470, "y2": 90, "color": "#dc2626"}, {"type": "text", "x": 575, "y": 130, "w": 260, "text": "tighten this claim", "color": "#dc2626"} ]}

After drawing, cite the board with [[board:ID]] alone on its own line.

Input Schema

NameRequiredDescriptionDefault
slideNo1-based slide number (decks only) — makes coordinates slide-local.
boardIdYesNapkin board id.
deletesNoIds of existing shapes to remove (from napkin_boards_get).
updatesNoExisting shapes to change — move, resize, retext, restyle. Read napkin_boards_get first for ids and current geometry.
elementsNoNew elements to draw, painted in order.
workspaceNoWorkspace slug. Personal tokens with no default workspace MUST pass this; tokens with a default can override per call. Ignored for workspace API keys.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already flag destructive=true and readOnly=false, and the description adds real context on top: that deletes remove existing shapes permanently, that updates patch live shapes by id, and that ids must come from napkin_boards_get. It stops short of saying whether edits are undoable or what happens when an id is stale.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core verb and the coordinate rule before the example, and every sentence carries information (coordinate origin, id source, citation format). The embedded JSON example is long but earns its space by demonstrating multi-element composition; the parenthetical asides add minor noise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 6-parameter, nested-schema mutation tool with no output schema and destructive annotations, the description covers the risky parts: coordinate frames, id sourcing, update/delete semantics, and the citation follow-up. It omits return behavior and failure modes for invalid ids, but nothing essential to a correct call is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds genuine semantics the schema lacks — the slide-local (0,0)-(960,540) coordinate frame versus board-relative origin for sketches, and the placement rule for empty boards. The worked JSON example also clarifies element field usage in practice.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb-and-resource statement ('Draws shapes, strokes, and labels on a board') and extends it to the mutate path ('via updates / deletes, changes or removes shapes that are already there'). It also names the sibling helpers (napkin_boards_get, napkin_boards_view) so an agent can place it in the board-tool family immediately.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete usage context: read napkin_boards_get for ids before updating, and use napkin_boards_view's rendered area as the coordinate frame. It does not explicitly state when to prefer this over other drawing surfaces (napkin_diagrams_create, napkin_deck_write, napkin_slide_fill), so routing between draw tools still requires inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources