sshwarts avatar

Napkin

sshwarts/napkin

Turns Excalidraw into a shared whiteboard where your AI agent can draw, annotate, and respond to your sketches. The MCP server exposes an intent-based API so agents can add nodes, connect them, apply layouts, and read canvas state without touching coordinates. One-way mode works with any MCP client. Add a webhook receiver and the agent wakes up when you draw something, reads the diff, and responds in your chat channel. Includes thought bubbles for agent suggestions, metadata tagging for semantic reasoning, batch execution via apply_intents, and trace_path for walking flows through diagrams. Useful when you want visual collaboration that doesn't collapse into describing wireframes back and forth in text.

GitHub stars
1
tools
29
auth
Secret needed
transport
STDIO
env var
1
last updated
Apr 5, 2026

Tools

29 tools

Public tool metadata for what this MCP can expose to an agent.

get_canvasFull semantic canvas — nodes, edges, zones, metadata

Full semantic canvas — nodes, edges, zones, metadata

No parameter schema in public metadata yet.

get_canvas_summaryCompact read — nodes and edges only

Compact read — nodes and edges only

No parameter schema in public metadata yet.

get_canvas_rawRaw Excalidraw JSON

Raw Excalidraw JSON

No parameter schema in public metadata yet.

get_canvas_diffElements changed since a timestamp

Elements changed since a timestamp

No parameter schema in public metadata yet.

get_pending_triggersPoll for triggers (pull mode)

Poll for triggers (pull mode)

No parameter schema in public metadata yet.

trace_pathTraverse graph from a node, with optional metadata filtering

Traverse graph from a node, with optional metadata filtering

No parameter schema in public metadata yet.

get_server_instructionsCompact or verbose server-side guidance for agents

Compact or verbose server-side guidance for agents

No parameter schema in public metadata yet.

apply_intentsExecute ordered batch of operations in one call

Execute ordered batch of operations in one call

No parameter schema in public metadata yet.

add_nodeAdd labeled node — server handles placement. Optional zone+row pin nodes to a shared layout rank (see Swimlanes).

Add labeled node — server handles placement. Optional zone+row pin nodes to a shared layout rank (see Swimlanes).

No parameter schema in public metadata yet.

connectConnect nodes with an arrow

Connect nodes with an arrow

No parameter schema in public metadata yet.

moveMove element by offset (dx, dy)

Move element by offset (dx, dy)

No parameter schema in public metadata yet.

resizeResize element, center preserved

Resize element, center preserved

No parameter schema in public metadata yet.

styleApply color, fill, opacity, stroke

Apply color, fill, opacity, stroke

No parameter schema in public metadata yet.

add_labelFloating text near an element

Floating text near an element

No parameter schema in public metadata yet.

delete_elementRemove element and bound text

Remove element and bound text

No parameter schema in public metadata yet.

patch_canvasPartial field updates on existing elements

Partial field updates on existing elements

No parameter schema in public metadata yet.

update_canvasAdd elements with full definitions

Add elements with full definitions

No parameter schema in public metadata yet.

clear_canvasRemove everything

Remove everything

No parameter schema in public metadata yet.

layoutAuto-arrange via Dagre (TB, LR, tree, hierarchy)

Auto-arrange via Dagre (TB, LR, tree, hierarchy)

No parameter schema in public metadata yet.

add_thought_bubbleDashed purple tentative suggestion

Dashed purple tentative suggestion

No parameter schema in public metadata yet.

confirm_thought_bubbleMake permanent

Make permanent

No parameter schema in public metadata yet.

dismiss_thought_bubbleRemove

Remove

No parameter schema in public metadata yet.

list_thought_bubblesList current bubbles

List current bubbles

No parameter schema in public metadata yet.

describe_elementsRender to PNG, send to Claude vision for description

Render to PNG, send to Claude vision for description

No parameter schema in public metadata yet.

describe_sketchConvenience wrapper for freehand elements

Convenience wrapper for freehand elements

No parameter schema in public metadata yet.

animate_elementInterpolate position/size/opacity/color over time

Interpolate position/size/opacity/color over time

No parameter schema in public metadata yet.

export_canvasSave to .excalidraw, .svg, or .png

Save to .excalidraw, .svg, or .png

No parameter schema in public metadata yet.

start_sessionBegin session with channel ID, webhook, debounce override

Begin session with channel ID, webhook, debounce override

No parameter schema in public metadata yet.

end_sessionEnd session

End session

No parameter schema in public metadata yet.

Sponsors

Configuration

ANTHROPIC_API_KEYsecret

Anthropic API key — enables vision features (describe_elements). Optional.

Readme

Napkin

Napkin is a shared Excalidraw canvas for agent + human collaboration.

Why We Built It

I love using AI assistants for everyday tasks — design, programming, and brainstorming. I’ve always found visual thinking helpful, but there was a gap: I could describe something, and the agent could describe it back, but we couldn’t point to the same thing. What if my agent and I could share a whiteboard — where I draw, it responds, and we build together?

Napkin works with any MCP-capable agent. For true two-way canvas-to-agent, you'll also need a webhook.

Examples (all drawn by Perry the agent, with Napkin)

Brainstorming

Brainstorm

Gaming

Games

"Art" - Don't know why Perry invented a Platabird, but there you are.

Art

Collaboration

Collaboration


View the full README on GitHub

Details

Repository
github.com/sshwarts/napkin
Category
Design & Creative
Package
napkin-mcp
Transport
STDIO
Auth
Required
Registry
MCP registry, active

Related Design & Creative MCP servers

View all
1gameanalytics avatarGameAnalytics Documentationcom.gameanalytics/analytics-docsSearch GameAnalytics docs: Unity, Unreal, iOS, Android SDK and API guides for mobile game analytics.0stars
2alex-gon avatarThe Game Crafteralex-gon/thegamecrafter-mcp-serverDesign, manage, and price tabletop games on The Game Crafter via MCP.0stars
3mcpcentral-io avatarJsoncanvasmcpcentral-io/jsoncanvas-mcpCreate, validate, edit, export (markdown/svg/png/mermaid), and search JSON Canvas files.0stars
4szum avatarCharts by Szumio.szum/chartsCreate, inspect, manage, and render charts and data visualizations as SVG/PNG or interactive embeds.0stars
5mechreaper007x avatarClipacanvasmechreaper007x/clipacanvasRender HTML, CSS, SVG, and Canvas animations to MP4 locally via Playwright/Chromium and FFmpeg.0stars
6had0yun avatarGopeakhad0yun/godot-mcpGoPeak — The most comprehensive MCP server for Godot Engine. 95+ tools, LSP, DAP, screenshots.0stars