@ansuman-shukla/whiteboard-mcp 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +81 -12
- package/package.json +25 -3
- package/skills/whiteboard-explainer/SKILL.md +1 -1
package/README.md
CHANGED
|
@@ -5,34 +5,48 @@
|
|
|
5
5
|
</picture>
|
|
6
6
|
</a>
|
|
7
7
|
|
|
8
|
+
<p align="center"><b>whiteboard-mcp</b> is a free, open-source <b>Excalidraw whiteboard MCP server</b> that runs locally, even offline. Your coding agent draws diagrams on a live board beside the chat, and sees what you draw back. Works with Claude Code, Codex, Cursor, Gemini CLI, VS Code, Windsurf, Devin and any other MCP client.</p>
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
claude mcp add whiteboard --scope user -- npx -y @ansuman-shukla/whiteboard-mcp
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
<p align="center"><sub>Needs Node.js 20+. Using Codex, Cursor, Gemini CLI, VS Code or another agent? <a href="#add-it-to-your-agent">Commands for every agent ↓</a></sub></p>
|
|
15
|
+
|
|
8
16
|
<br>
|
|
9
17
|
|
|
10
18
|
<img src="docs/media/dots-and-boxes.gif" width="100%" alt="Playing Dots and Boxes with a coding agent: the human draws a line on the board, the agent sees the move and plays back, until red wins 12 to 4">
|
|
11
19
|
|
|
12
20
|
<p align="center"><sub>Playing Dots and Boxes with an agent: you draw a line, it sees your move and plays back.</sub></p>
|
|
13
21
|
|
|
14
|
-
|
|
22
|
+
## Features
|
|
15
23
|
|
|
16
24
|
<picture>
|
|
17
25
|
<source media="(prefers-color-scheme: dark)" srcset="docs/media/readme/features-dark.svg">
|
|
18
26
|
<img src="docs/media/readme/features-light.svg" width="100%" alt="Why whiteboard-mcp: draws step by step, sees what you draw, right beside the chat, remembers boards, local and private, tiny (one runtime dependency, about 7 KB of tool schema per turn).">
|
|
19
27
|
</picture>
|
|
20
28
|
|
|
21
|
-
|
|
29
|
+
## What you can do with it
|
|
30
|
+
|
|
31
|
+
### Understand an architecture
|
|
22
32
|
|
|
23
|
-
|
|
33
|
+
*"How does a typical checkout backend work? Draw it on the whiteboard."* The agent draws it piece by piece and highlights what it's explaining. You move a box, circle the part you're unsure about and leave a note. It reads exactly what you changed and answers on the board.
|
|
24
34
|
|
|
25
35
|
<img src="docs/media/architecture.gif" width="100%" alt="An agent chat beside a live whiteboard: the agent draws a checkout architecture step by step, the human drags Postgres, circles the queue and sends a note asking what happens if the email worker is down, and the agent reads the changes and adds a dead-letter queue">
|
|
26
36
|
|
|
27
|
-
|
|
37
|
+
### Explain a flow
|
|
38
|
+
|
|
39
|
+
*"How does login work here?"* Arrows stay attached as things move, and the agent answers your notes on its next look.
|
|
28
40
|
|
|
29
41
|
<img src="docs/media/demo.gif" width="100%" alt="The agent draws a login flow step by step, highlights the parts it explains, then answers a note left by the human">
|
|
30
42
|
|
|
31
|
-
|
|
43
|
+
### Make something
|
|
44
|
+
|
|
45
|
+
*"Paint the Mona Lisa, then refine it with the pencil."* Shapes, freehand strokes and frames, all editable.
|
|
32
46
|
|
|
33
47
|
<img src="docs/media/mona-lisa.gif" width="100%" alt="An agent paints the Mona Lisa on the board, then refines the sky, hair and dress with pencil strokes">
|
|
34
48
|
|
|
35
|
-
More to try
|
|
49
|
+
### More to try
|
|
36
50
|
|
|
37
51
|
- *"Explain how a request flows through this repo, on the whiteboard."*
|
|
38
52
|
- *"Teach me how a TCP handshake works, step by step."*
|
|
@@ -40,24 +54,49 @@ More to try:
|
|
|
40
54
|
- *"Compare option A and option B side by side on the board."*
|
|
41
55
|
- *"I circled something on the board, take a look."*
|
|
42
56
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
<a name="quick-start"></a>
|
|
57
|
+
## Quick start
|
|
46
58
|
|
|
47
59
|
<picture>
|
|
48
60
|
<source media="(prefers-color-scheme: dark)" srcset="docs/media/readme/steps-dark.svg">
|
|
49
61
|
<img src="docs/media/readme/steps-light.svg" width="100%" alt="Get started in a minute: 1. Add it to your agent with one npx line. 2. Start a new chat. 3. Ask for a drawing.">
|
|
50
62
|
</picture>
|
|
51
63
|
|
|
52
|
-
|
|
64
|
+
### Add it to your agent
|
|
65
|
+
|
|
66
|
+
Needs Node.js 20+. Add it, then start a new chat:
|
|
53
67
|
|
|
54
68
|
```sh
|
|
69
|
+
# Claude Code
|
|
55
70
|
claude mcp add whiteboard --scope user -- npx -y @ansuman-shukla/whiteboard-mcp
|
|
71
|
+
|
|
72
|
+
# Codex CLI
|
|
73
|
+
codex mcp add whiteboard -- npx -y @ansuman-shukla/whiteboard-mcp
|
|
74
|
+
|
|
75
|
+
# Gemini CLI
|
|
76
|
+
gemini mcp add --scope user whiteboard npx -y @ansuman-shukla/whiteboard-mcp
|
|
77
|
+
|
|
78
|
+
# Devin CLI
|
|
79
|
+
devin mcp add whiteboard --scope user -- npx -y @ansuman-shukla/whiteboard-mcp
|
|
80
|
+
|
|
81
|
+
# VS Code
|
|
82
|
+
code --add-mcp '{"name":"whiteboard","command":"npx","args":["-y","@ansuman-shukla/whiteboard-mcp"]}'
|
|
56
83
|
```
|
|
57
84
|
|
|
58
|
-
|
|
85
|
+
**Cursor, Claude Desktop, Windsurf and other JSON configs** (`~/.cursor/mcp.json`, Claude Desktop's config, …):
|
|
59
86
|
|
|
60
|
-
|
|
87
|
+
```json
|
|
88
|
+
{ "mcpServers": { "whiteboard": { "command": "npx", "args": ["-y", "@ansuman-shukla/whiteboard-mcp"] } } }
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
**OpenCode** (`opencode.json`):
|
|
92
|
+
|
|
93
|
+
```json
|
|
94
|
+
{ "mcp": { "whiteboard": { "type": "local", "command": ["npx", "-y", "@ansuman-shukla/whiteboard-mcp"] } } }
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Agents without MCP, project-level configs and more: [client setup](docs/clients.md). For boards in a tab beside the chat, install the [IDE panel](docs/ide-panel.md). The bundled [skill](docs/clients.md#the-skill-recommended-for-every-agent) teaches the agent when a drawing helps.
|
|
98
|
+
|
|
99
|
+
## whiteboard-mcp vs Excalidraw MCP
|
|
61
100
|
|
|
62
101
|
<a href="docs/comparison.md">
|
|
63
102
|
<picture>
|
|
@@ -68,6 +107,36 @@ Codex, Cursor, Gemini CLI, OpenCode, Devin, VS Code, Claude Desktop and agents w
|
|
|
68
107
|
|
|
69
108
|
<p align="center"><sub>Want a quick one-off diagram inside Claude or ChatGPT on the web? Excalidraw MCP is great for that. <a href="docs/comparison.md">Full comparison →</a></sub></p>
|
|
70
109
|
|
|
110
|
+
## FAQ
|
|
111
|
+
|
|
112
|
+
### Is there an Excalidraw MCP server that runs locally and works offline?
|
|
113
|
+
|
|
114
|
+
Yes, that's whiteboard-mcp. It runs a small daemon on `127.0.0.1` and serves the Excalidraw viewer with its fonts bundled. After the first `npx` download it needs no internet, no account and no API key. Boards are plain JSON files in `~/.whiteboard-mcp`.
|
|
115
|
+
|
|
116
|
+
### How do I let Claude Code, Codex or Cursor draw diagrams?
|
|
117
|
+
|
|
118
|
+
Add the MCP server with the one-line command for your agent [above](#add-it-to-your-agent), start a new chat and ask: *"Draw how this repo handles a request on the whiteboard."* The agent draws step by step on a live Excalidraw board beside the chat.
|
|
119
|
+
|
|
120
|
+
### Can the agent see what I draw on the whiteboard?
|
|
121
|
+
|
|
122
|
+
Yes. Every time it looks, it gets a short list of what you added, moved or deleted, plus any notes you left. It can also take a PNG screenshot of the board to check its own layout.
|
|
123
|
+
|
|
124
|
+
### Which agents and editors does it work with?
|
|
125
|
+
|
|
126
|
+
Any MCP client: Claude Code, Claude Desktop, OpenAI Codex, Cursor, Gemini CLI, VS Code (Copilot agent mode), Windsurf, Devin, OpenCode and more. Agents without MCP can use the plain `whiteboard-mcp call` CLI. The [IDE panel](docs/ide-panel.md) shows boards in a tab beside the chat in VS Code, Cursor, Windsurf and Devin Desktop; anywhere else they open in your browser.
|
|
127
|
+
|
|
128
|
+
### Can it turn Mermaid into an Excalidraw diagram, or export it?
|
|
129
|
+
|
|
130
|
+
Yes. `canvas_mermaid` converts Mermaid (flowcharts, sequence diagrams, …) into editable hand-drawn elements, and `canvas_export` saves the board as `.excalidraw` or `.png` in your project.
|
|
131
|
+
|
|
132
|
+
### Are boards saved? Can I reopen one later?
|
|
133
|
+
|
|
134
|
+
Each chat gets its own board, saved on disk. Any later chat, even in another folder, can reopen it by name or find it by the text on it, and you can keep frozen copies in a saved library. See [boards](docs/boards.md).
|
|
135
|
+
|
|
136
|
+
### Is it free and private?
|
|
137
|
+
|
|
138
|
+
Yes. It's MIT licensed with no license key or paid tier. Everything stays on your machine: the daemon only listens on `127.0.0.1` and every API call needs a per-user token. See [security](docs/security.md).
|
|
139
|
+
|
|
71
140
|
<br>
|
|
72
141
|
|
|
73
142
|
<p align="center">
|
package/package.json
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ansuman-shukla/whiteboard-mcp",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"mcpName": "io.github.ansuman-shukla/whiteboard-mcp",
|
|
5
|
+
"description": "Local, offline Excalidraw whiteboard MCP server: your coding agent (Claude Code, Codex, Cursor, Gemini CLI, VS Code) draws diagrams live beside the chat and sees what you draw back. Also a CLI.",
|
|
5
6
|
"type": "module",
|
|
6
7
|
"bin": {
|
|
7
8
|
"whiteboard-mcp": "dist/cli.js"
|
|
@@ -51,13 +52,34 @@
|
|
|
51
52
|
"keywords": [
|
|
52
53
|
"mcp",
|
|
53
54
|
"mcp-server",
|
|
55
|
+
"model-context-protocol",
|
|
54
56
|
"excalidraw",
|
|
57
|
+
"excalidraw-mcp",
|
|
55
58
|
"whiteboard",
|
|
59
|
+
"whiteboard-mcp",
|
|
60
|
+
"canvas",
|
|
61
|
+
"diagram",
|
|
56
62
|
"diagrams",
|
|
63
|
+
"architecture-diagram",
|
|
64
|
+
"flowchart",
|
|
65
|
+
"mermaid",
|
|
66
|
+
"drawing",
|
|
67
|
+
"visualization",
|
|
68
|
+
"offline",
|
|
69
|
+
"local-first",
|
|
57
70
|
"coding-agent",
|
|
71
|
+
"ai-agent",
|
|
72
|
+
"llm",
|
|
73
|
+
"claude",
|
|
58
74
|
"claude-code",
|
|
75
|
+
"claude-desktop",
|
|
59
76
|
"codex",
|
|
60
|
-
"
|
|
77
|
+
"cursor",
|
|
78
|
+
"gemini-cli",
|
|
79
|
+
"vscode",
|
|
80
|
+
"windsurf",
|
|
81
|
+
"opencode",
|
|
82
|
+
"devin"
|
|
61
83
|
],
|
|
62
84
|
"license": "MIT",
|
|
63
85
|
"publishConfig": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: whiteboard-explainer
|
|
3
|
-
description: Explain code, architecture, data flows, algorithms, plans or trade-offs visually on a live whiteboard shown to the user beside the chat (they can draw on it or annotate). Use when a diagram would explain better than prose, when the user asks to "draw", "sketch", "diagram", "visualise" or "show" something, or when they mention the canvas, the whiteboard or something they drew.
|
|
3
|
+
description: Explain code, architecture, data flows, algorithms, plans or trade-offs visually on a live Excalidraw whiteboard (whiteboard-mcp) shown to the user beside the chat (they can draw on it or annotate). Use when a diagram would explain better than prose, when the user asks to "draw", "sketch", "diagram", "visualise" or "show" something, or when they mention the canvas, the whiteboard or something they drew.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Excalidraw explainer
|