# sketchdex

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.

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the package rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 0.1.2
- **Author:** Lucas Ribeiro
- **License:** MIT
- **npm:** sketchdex
- **Source:** https://github.com/lucasr1b/sketchdex
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

60/100 (B), scored on the package rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 0 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-09-06T14:08:36.381Z
- **Version scanned:** 0.1.2
- **CVEs:** none found by OSV at scan time

## Tools

19 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `list_scenes` — Every scene in the vault with its id, name, element count and last-edited time. Start here.
- `describe_scene` — 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
- `read_elements` — 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.
- `read_scene` — 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_el
- `create_scene` — Make a new scene, optionally with its starting elements.
- `add_elements` — Append elements to a scene, leaving everything already there untouched. The usual way to draw something new.
- `update_elements` — 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`, ea
- `delete_elements` — Remove elements by id.
- `move_elements` — 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 c
- `replace_scene` — 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 c
- `set_background` — 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 t
- `render_scene`
- `import_svg`
- `check_scene` — 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 to
- `sketchdex_info` — 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 bu
- `sketchdex_docs` — 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, t
- `snapshot_scene` — 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 
- `list_history` — Snapshots held for a scene, newest first.
- `restore_snapshot` — Put a snapshot back on the canvas. This is itself snapshotted, so reverting a revert is possible.

## Install

**Verdict: review** — Installable, but 1 thing to check first: No publisher has proved control of this listing; it is indexed, not vouched for.
**Cautions** (coverage gaps and advisories — never blocking)
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"sketchdex\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"sketchdex\"\n      ]\n    }\n  }\n}"
```

## Blast radius

Extensive to critical — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: deletes data; runs on your machine.
- Floor 37, ceiling 61 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/sketchdex
- Install plan: https://forgeregistry.com/api/v1/packages/sketchdex/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/sketchdex
- HTML page: https://forgeregistry.com/registry/sketchdex
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
