anigram-mcp 0.0.0-stage → 0.1.0

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.
Files changed (2) hide show
  1. package/README.md +85 -2
  2. package/package.json +28 -4
package/README.md CHANGED
@@ -1,3 +1,86 @@
1
- # Temporary Holding Version
1
+ <!-- SPDX-License-Identifier: MIT -->
2
+ <!-- SPDX-FileCopyrightText: 2026 Vaibhav Patel -->
2
3
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
4
+ # anigram-mcp
5
+
6
+ The [Anigram](https://github.com/light-vp/Anigram) MCP server. It lets
7
+ a coding assistant (Claude Code, Claude Desktop, Cursor, anything that speaks
8
+ MCP) write living engineering diagrams, run them through a simulated day, and
9
+ draw them.
10
+
11
+ ## Tools
12
+
13
+ | Tool | What it does |
14
+ | ---------------- | ---------------------------------------------------------------------------------------------------- |
15
+ | `anigram_guide` | The scene format, every part that has a drawing, the signal functions. Read first. |
16
+ | `list_scenes` | The built-in sheets. |
17
+ | `get_scene` | A built-in sheet as JSON — the best example to copy. |
18
+ | `validate_scene` | Errors (won't load) and warnings (will run, probably not what you meant). |
19
+ | `write_scene` | Validate and save a `.json` scene file. |
20
+ | `edit_scene` | Add, move, update or remove parts and links in place. |
21
+ | `check_scene` | Is it done? Validate, run the day, and check every line of the scene's `expect` list. |
22
+ | `simulate_scene` | Run a day headless: an hour-by-hour table, every alert, unmet demand. Knobs and switches can be set. |
23
+ | `render_scene` | The sheet at any hour, every flow labelled: a PNG the assistant can look at (default) or an SVG. |
24
+ | `share_link` | A URL that opens the scene live in the browser. The scene travels in the link; nothing is uploaded. |
25
+
26
+ Every tool except `anigram_guide` declares an output schema and returns its
27
+ result as structured content too, so a client can read fields instead of
28
+ parsing text.
29
+
30
+ ## Install
31
+
32
+ Once it is on npm, `npx -y anigram-mcp` is all a client needs (see
33
+ [RELEASING.md](../RELEASING.md)). Until then, from a checkout:
34
+
35
+ ```sh
36
+ git clone https://github.com/light-vp/Anigram anigram
37
+ cd anigram && npm ci && npm run build:mcp
38
+ ```
39
+
40
+ **Claude Code**
41
+
42
+ ```sh
43
+ claude mcp add anigram -- node /path/to/anigram/mcp/dist/anigram-mcp.mjs
44
+ ```
45
+
46
+ **Claude Desktop, Cursor and others** (`mcpServers` in the client's config):
47
+
48
+ ```json
49
+ {
50
+ "mcpServers": {
51
+ "anigram": {
52
+ "command": "node",
53
+ "args": ["/path/to/anigram/mcp/dist/anigram-mcp.mjs"]
54
+ }
55
+ }
56
+ }
57
+ ```
58
+
59
+ The built file is self-contained: React, the solver and the MCP SDK are
60
+ bundled in, so it runs anywhere Node 20+ does. Beside it sit the PNG
61
+ renderer ([resvg](https://github.com/linebender/resvg) as wasm, no browser or
62
+ native build) and the Inter font it draws text with.
63
+
64
+ ## Try
65
+
66
+ > Draw a narrowboat with solar panels on the roof, a leisure battery and the
67
+ > engine's alternator as backup. Check the battery runs flat overnight and the
68
+ > engine takes over, then give me a link.
69
+
70
+ The assistant reads the guide, writes the file, simulates a day, adjusts the
71
+ numbers until the story holds, and hands back a link.
72
+ [`examples/narrowboat.json`](../examples/narrowboat.json) is that scene.
73
+
74
+ ## Settings
75
+
76
+ - Paths are relative to the directory the client starts the server in, and
77
+ must stay inside it: `../` and absolute paths elsewhere, and symlinks out of
78
+ it, are refused. It only reads `.json` files, and writes `.json`, `.svg`
79
+ and `.png`.
80
+ - `ANIGRAM_ALLOW_PATHS` lets it use more folders, separated like `PATH`
81
+ (`:` on macOS and Linux, `;` on Windows).
82
+ - `ANIGRAM_APP_URL` points `share_link` at another copy of the app
83
+ (default `https://anigram.vaibhav.co.uk/`), e.g. `http://localhost:5173/`
84
+ while you run `npm run dev`.
85
+
86
+ MIT licensed.
package/package.json CHANGED
@@ -1,6 +1,30 @@
1
1
  {
2
2
  "name": "anigram-mcp",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.1.0",
4
+ "description": "MCP server for Anigram: let a coding assistant write, validate, simulate and draw living engineering diagrams.",
5
+ "license": "MIT",
6
+ "author": "Vaibhav Patel",
7
+ "type": "module",
8
+ "bin": {
9
+ "anigram-mcp": "dist/anigram-mcp.mjs"
10
+ },
11
+ "files": [
12
+ "dist"
13
+ ],
14
+ "engines": {
15
+ "node": ">=20"
16
+ },
17
+ "keywords": [
18
+ "mcp",
19
+ "model-context-protocol",
20
+ "diagrams",
21
+ "simulation",
22
+ "engineering",
23
+ "svg"
24
+ ],
25
+ "repository": {
26
+ "type": "git",
27
+ "url": "git+https://github.com/light-vp/Anigram.git",
28
+ "directory": "mcp"
29
+ }
30
+ }