Skip to main content

sketchpad-mcp

CI

A visual input tool for AI coding agents. You sketch; the agent reads the sketch.

Most MCP drawing tools go agent → human (the agent generates a diagram for you to view). This one goes the other way: human → agent. Open a canvas, draw your idea, and the resulting image lands directly in the agent's context.


How it works

  1. The agent calls open_canvas (or you ask it to: "open the canvas, I want to sketch this")
  2. A drawing tab opens in your default browser — powered by Excalidraw
  3. You sketch, paste, or annotate
  4. Click Send to Claude — the PNG is returned directly to the agent
  5. The tab stays open; the agent can call the tool again and your drawing is still there to refine

Requirements

  • Python 3.10+
  • Claude Code (CLI)

Installation

1. Clone and install dependencies

git clone https://github.com/kennycornellius-collab/sketchpad-mcp.git
cd sketchpad-mcp
pip install -e .

2. Register with Claude Code

claude mcp add sketchpad --transport stdio --scope user -- python -m sketchpad_mcp

Use the python from the environment where you ran pip install (e.g. the absolute path to your venv's python). Alternatively, the install provides a sketchpad-mcp console command you can register instead of python -m sketchpad_mcp.

3. Verify it's registered

claude mcp list

You should see sketchpad in the list.


Usage

Once registered, the tools are available in any Claude Code session.

Let the agent decide — Claude Code will open the canvas on its own when your description is ambiguous or visual.

Ask explicitly:

"Open the canvas, I want to sketch the layout."

"Draw me a rough wireframe and send it over."

The canvas tab stays alive across calls in the same session — you can refine the same drawing across multiple back-and-forths without losing your work.


Tools

open_canvas

Opens the Excalidraw canvas and returns the sketch as a PNG image directly into the agent's context.

Use this when the agent can accept images (Claude Code always can).

Optional parameter: hint — a short reminder shown above the canvas (e.g. "Sketch the dashboard layout").

describe_sketch

Same canvas flow, but returns the PNG plus a prompt asking the agent to describe what you drew — the description is produced by the agent's own vision, no extra API key needed.

Use this when you want a reusable text representation of the sketch alongside the image — useful for saving the description to a file or passing it to a non-vision step later. Requires a vision-capable agent (Claude Code always is).


Canvas controls

The canvas is a full Excalidraw instance — shapes, arrows, text, freehand, colors, undo/redo all work. A few things specific to sketchpad-mcp:

  • Send to Claude — submits the current canvas state as a PNG
  • Close tab — closes the browser tab when you're done with the session. If the agent is waiting on a sketch, closing the tab (button or browser X) tells it immediately that you've declined, instead of leaving it waiting for the timeout

License

MIT. See LICENSE.

Built with assistance from Claude Code. Excalidraw embedded via CDN under its MIT license.


Other clients

sketchpad-mcp uses standard MCP stdio transport, so it should work with Cursor, Zed, Claude Desktop, and any other MCP-compatible coding agent. If you try it on one of those and want to help document the setup, feel free to open an issue or reach out — happy to add verified setup snippets for other clients.

Metadata

Release files for sketchpad-mcp 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sketchpad-mcp 1.0.0
File Size Uploaded
sketchpad_mcp-1.0.0.tar.gz 11.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sketchpad-mcp 1.0.0
File Interpreter ABI Platform
sketchpad_mcp-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 21.4 kB

Release files / sketchpad_mcp-1.0.0.tar.gz

Download URL sketchpad_mcp-1.0.0.tar.gz
Size 11.4 kB
Tags Source
SHA-256 checksum
How to use checksums
212444148a785a99fcb32f27810da2bbf3f43272c1c9a6b9d2ed3f4fd5eae36a
BLAKE2b-256 checksum
How to use checksums
0f4b6a91e78b0e05d88a9ca0d0b9390defaa970e981d4e5ba492247f2b173fba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / sketchpad_mcp-1.0.0-py3-none-any.whl

Download URL sketchpad_mcp-1.0.0-py3-none-any.whl
Size 10.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ade5e55464ed50cf22c141f51553bc9b34f46e6d73214b4aab035892516be77a
BLAKE2b-256 checksum
How to use checksums
29722765994355bea96deb81ad02f31511bc9ccf936e46e92e65abee85b4d26d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page