Skip to main content

MCP server that opens a drawing canvas in the browser and returns the sketch as an image

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sketchpad_mcp-1.0.0.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sketchpad_mcp-1.0.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file sketchpad_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: sketchpad_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sketchpad_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 212444148a785a99fcb32f27810da2bbf3f43272c1c9a6b9d2ed3f4fd5eae36a
MD5 2cd00fc7e9a07d13068c2320e0f870ba
BLAKE2b-256 0f4b6a91e78b0e05d88a9ca0d0b9390defaa970e981d4e5ba492247f2b173fba

See more details on using hashes here.

Provenance

The following attestation bundles were made for sketchpad_mcp-1.0.0.tar.gz:

Publisher: publish.yml on kennycornellius-collab/sketchpad-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file sketchpad_mcp-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: sketchpad_mcp-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for sketchpad_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ade5e55464ed50cf22c141f51553bc9b34f46e6d73214b4aab035892516be77a
MD5 4d2008e8265868081587e9b0811d5434
BLAKE2b-256 29722765994355bea96deb81ad02f31511bc9ccf936e46e92e65abee85b4d26d

See more details on using hashes here.

Provenance

The following attestation bundles were made for sketchpad_mcp-1.0.0-py3-none-any.whl:

Publisher: publish.yml on kennycornellius-collab/sketchpad-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page