sketchdex

MCPcommunity
v0.1.2Lucas RibeiroMITUpdated 2d agonpmGitHub

An MCP server that lets AI agents draw hand-drawn Excalidraw diagrams. Real .excalidraw files on your machine, with history, rendering and a local library app.

Works in
ClaudeCursorCopilotGemini

Inferred from the transports this listing declares (stdio). A client not listed here hasn’t been ruled out — it just isn’t something Forge can confirm.

Automatically indexed from public sources. Not yet verified by the developer on Forge.Claim this listing →
1GitHub stars
2d agoLast update
Package
AuthorLucas Ribeiro
LicenseMIT
Version0.1.2
Sourcenpm+mcp-registry
Trust Status
B
60/100Good
Listed in Forge index+10/10
Publisher identity verified+0/20
Publisher: run `forge publish` from the package repo to claim ownership
Ed25519 publish signature+0/5
Included automatically when the publisher runs `forge publish`
Domain verification+0/5
Publisher: host /.well-known/forge.json on the package homepage with { "publisher": "<github-login>" }
npm Trusted Publishing (Sigstore)+0/5
Publish from GitHub Actions with --provenance so the attestation binds this package to this repo
npm maintainer match+0/5
Earned once your identity is verified above and that login is an npm maintainer of this package
CVE scan · clean+30/30
Static analysis · clean+20/20
Paste into Claude Code, Cursor, or any AI assistant to fix all gaps
StatusCommunity-indexed
PublisherUnverified
SignatureUnsigned
Domain
Provenance
Dependencies✓ 60 resolved+ · none vulnerable
Tool surface19 tools · 2 privileged
Security scan✓ Cleanv0.1.2 · todayHow well does this scan work?
EvalsNone
IndexedSep 6, 2026

Verification confirms publisher identity (repo ownership), not code safety. The security scan covers known CVEs and suspicious install scripts.

Tools

19 tools · 2 privileged
Statically extracted from the published packagev0.1.2 · 1h ago

Read out of the source npm actually ships, at scan time. The package was never executed. Tools registered dynamically at runtime, or hidden inside bundled or minified code, can be missed — so this is a floor on the tool surface, not a complete census of it.

list_scenesEvery scene in the vault with its id, name, element count and last-edited time. Start here.

Every scene in the vault with its id, name, element count and last-edited time. Start here.

No input schema was published for this tool.

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.

What 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.

No input schema was published for this tool.

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.

Full, unabridged elements, filtered down to the ones you need. Use this rather than read_scene when editing a few things in a busy scene.

No input schema was published for this tool.

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.

The 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.

No input schema was published for this tool.

create_sceneMake a new scene, optionally with its starting elements.

Make a new scene, optionally with its starting elements.

No input schema was published for this tool.

add_elementsAppend elements to a scene, leaving everything already there untouched. The usual way to draw something new.

Append elements to a scene, leaving everything already there untouched. The usual way to draw something new.

No input schema was published for this tool.

update_elementsChange 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.

Change 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.

No input schema was published for this tool.

delete_elementsprivilegedRemove elements by id.

Remove elements by id.

No input schema was published for this tool.

move_elementsprivilegedShift 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…

Shift 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…

No input schema was published for this tool.

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.

Replace 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.

No input schema was published for this tool.

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.…

Set 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.…

No input schema was published for this tool.

render_sceneNo description published

This tool published no description. Forge does not invent one.

import_svgNo description published

This tool published no description. Forge does not invent one.

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 el…

Find 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 el…

No input schema was published for this tool.

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.

Version 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.

No input schema was published for this tool.

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 t…

The 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 t…

No input schema was published for this tool.

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.

Stash 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.

No input schema was published for this tool.

list_historySnapshots held for a scene, newest first.

Snapshots held for a scene, newest first.

No input schema was published for this tool.

restore_snapshotPut a snapshot back on the canvas. This is itself snapshotted, so reverting a revert is possible.

Put a snapshot back on the canvas. This is itself snapshotted, so reverting a revert is possible.

No input schema was published for this tool.

17 of 19 tools published a description.

Tool names and descriptions are written by the publisher and shown verbatim as inert text. They are the strings an MCP client passes to a model, so Forge scans them for prompt-injection patterns — any finding appears with the security scan above. “Privileged” is a keyword match on the tool name, not an audit of what the tool does: a benign-sounding name can still do anything.

About

An MCP server that lets AI agents draw hand-drawn Excalidraw diagrams. Real .excalidraw files on your machine, with history, rendering and a local library app.

Keywords
mcpmcp-servermodel-context-protocolexcalidrawdiagramsketchwhiteboardclaudecodexcursorai-agent
Alternatives
Comparing tool surfaces…

Dependency tree

What one Forge scan resolved from npm metadata on 2026-09-06 — observed resolution, not a publisher declaration.

60 packages resolved · 1 direct · none carrying advisories Resolution stops at depth 4 and 60 packages.

The crawl stopped at the depth-4 limit. Anything below that level was never resolved.

The crawl stopped at the 60-package limit. The rest of the tree was never resolved.

36 more resolved packages are not drawn here (display cap: 24). Every dependency carrying an advisory is drawn regardless of the cap. Full inventory (CycloneDX SBOM)

Declared but not resolved

53 declared dependencies never landed in the tree. They are missing from Forge's resolution, not from the package.

+41 more not listed. The counts by reason above cover all of them.

Not followed: peerDependencies. This tree covers runtime dependencies only, so anything those pull in was never resolved.