Sketchdex MCP server
An MCP server that lets AI agents draw hand-drawn Excalidraw diagrams as files on your machine.
1 stars37 downloads/wk
Reviews
Write oneNobody has reviewed Sketchdex yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Sketchdex tools (18, 4 write)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
add_elementsAppend elements to a scene, leaving everything already there untouched. The usual way to draw something new.
check_sceneFind layout problems by geometry instead of by looking: text hidden behind a filled shape drawn after it, captions running past the panel they sit in, labels too tall for their container, zero-size elements, broken arrow bindings, strays parked far off, exact duplicates. Each finding carries the element ids, so the fix is one update_elements call. Run it after a batch of drawing - it is far cheape
create_scenewrite actionMake a new scene, optionally with its starting elements.
delete_elementswrite actionRemove elements by id.
describe_sceneWhat is on a scene, as structure rather than pixels: counts by type, overall bounds, and a rounded summary of each element with its id, position, size, text and bindings. Cheaper than read_scene and usually enough to plan an edit.
list_historySnapshots held for a scene, newest first.
list_scenesEvery scene in the vault with its id, name, element count and last-edited time. Start here.
move_elementsShift a set of elements by dx, dy in one write, keeping everything else about them. Select by ids, groupIds (an import_svg piece), a region box, or any mix. A container's label always moves with it, and an arrow bound to something that moves keeps that end attached (include the arrow itself to move it whole). Returns the new bounds of what moved.
read_elementsFull, unabridged elements, filtered down to the ones you need. Use this rather than read_scene when editing a few things in a busy scene.
read_sceneThe whole scene exactly as stored, plus the path to the .excalidraw file on disk. Large scenes run to thousands of elements, so prefer describe_scene or read_elements unless you genuinely need everything. The path is there for edits no tool here covers - take a snapshot first if you use it.
render_sceneA PNG of the scene as it actually renders, so you can look at what you drew. Use it to check your own work - proportions, overlaps, whether the thing reads as the thing. Always written to a file as well as returned. A tall or wide page (long edge more than about twice the short one, and too big to fit at the asked size) comes back as a few tiles cut along its length, each with the scene box it sho
replace_sceneReplace a scene's entire contents. Destructive by design - the previous state is snapshotted, but prefer add_elements or update_elements when you only mean to change part of it.
restore_snapshotwrite actionPut a snapshot back on the canvas. This is itself snapshotted, so reverting a revert is possible.
set_backgroundSet the paper: the scene's real background colour, shown exactly as given (never inverted). The default pen for hand drawing follows it, so the next stroke in the app is visible. Elements already drawn keep their colours - recolour their ink yourself if you flip a scene from light to dark or back. New scenes start on dark paper (#121212).
sketchdex_docsThe manual, for answering the user's questions and fixing problems without guessing: install on any client, where scenes are stored and how to move the vault, the library app, what rendering needs, every tool, the drawing contract, and troubleshooting for the errors that come up. No topic returns the index.
sketchdex_infoVersion of this server, where it is running from, which vault it is using, and how long this process has been alive. Use it to confirm you are talking to the build you think you are.
snapshot_sceneStash the current state without changing anything, so it can be restored from the history sidebar. Do this before editing a .excalidraw file directly with your own file tools - every other tool here snapshots on its own.
update_elementswrite actionChange named fields on existing elements. Send only what changes - {id, x: 40} moves one box and leaves its other 25 fields alone. Pass a list in `elements`, each carrying its `id`, or use `ids` + `patch` to apply one change across many.
Public scan report
scanner v0.1.9 · 2026-09-20 · same rubric, same numbers if you re-run it
- Code scan193 source files scanned20/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 16 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
Findings (1)
- mediumGoogle API key in source (often public by design; check its restrictions)
secret.googledist/assets/prod-B0u0LOqT.js: …m`,VITE_APP_FIREBASE_CONFIG:`{"apiKey":"AIza****","authDomain":"excalidraw-room-persiste…
Install directly
Runs npx -y sketchdex on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add sketchdex -- npx -y sketchdex
Sketchdex: common questions
- Is Sketchdex MCP server safe?
- Yes, by our scan: it is graded A (85/100). Read the Sketchdex safety report
- How do I install Sketchdex?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Sketchdex need an API key?
- No secret keys are declared. It reads 2 settings from the environment.
- Is Sketchdex maintained?
- The last commit was 17 days ago (2026-09-04). The latest release is v0.1.2.