@endiagram/mcp 0.3.1 → 0.3.2

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/package.json +1 -1
  2. package/tools.json +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@endiagram/mcp",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "description": "MCP server for EN Diagram — deterministic structural analysis backed by named theorems",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/tools.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "instructions": "EN Diagram is a structural verification engine for concurrent systems. No AI inside.\n\n## Language syntax\n\nOne statement per line:\n actor do: action needs: input1, input2 yields: output1, output2 at: context\n\nEvery statement requires: actor, do:, needs:, and yields:. at: scopes the action to a context (service, team, region, domain, layer — whatever boundary fits the system).\n\n**Names can contain spaces.** Unquoted identifiers can span multiple words, so `duo initiator do: create DuoSession needs: session factory yields: active session` is valid. Commas separate list items; whitespace inside a name is preserved. Wrap a name in double quotes only when it must contain a comma, colon, or `#` character.\n\n**Shared names create connections.** When one action's `yields:` name matches another action's `needs:` name, the two actions connect automatically. No explicit wiring — string equality is the link.\n\n**Multiple actors on one action.** Comma-separate subjects to express that several actors perform the same action together:\n actor1, actor2 do: action needs: X yields: Y\nThis is a single action performed jointly, not two separate actions. Two independent statements with the same action name, needs, yields, AND at: location are automatically merged into one shared action.\n\n**Comments.** Lines starting with `#` are ignored. Blank lines are ignored.\n\n## Tools\n\nSix tools answer six questions from concurrency theory. Each answer includes who (actors) and where (locations) alongside the structural findings.\n\n1. structure — what is this system?\n2. invariant — what's always true?\n3. live — can it deadlock? can entities overflow?\n4. reachable — can X reach Y?\n5. equivalent — are two systems the same?\n6. compose — how do parts combine?\n\nEvery tool output contains node names, values, and structural properties that can be fed directly into other tools. Read the output. Find the surprising node, the unexpected value, the structural anomaly. Then pick the tool that investigates THAT specific finding.\n\nDo not stop at one tool call. The first call reveals the structure — the real insight comes from the second, third, fourth call that digs into what the first one found.\n\nSpeak in the user's domain, not in graph theory. Only call render when the user explicitly asks to visualize.",
2
+ "instructions": "EN Diagram structural verification for concurrent systems. Pure math, no AI.\n\n## Syntax\nOne statement per line:\n actor do: action needs: input1, input2 yields: output1, output2 at: context\n\n- All five parts required.\n- Names span words; whitespace preserved. Quote only if name contains `,`, `:`, or `#`.\n- Shared names = connections: one action's `yields:` matching another's `needs:` wires them automatically. String equality is the link.\n- Multi-actor: `a, b do: action needs: X yields: Y` = one joint action. Identical statements merge.\n- `#` starts a comment.\n\n## Tools (six questions)\n1. structure — what is this system?\n2. invariant — what's always true?\n3. live — can it deadlock or overflow?\n4. reachable — can X reach Y?\n5. equivalent — are two systems the same?\n6. compose — how do parts combine?\n\n## How to use them\nEvery tool output contains node names, values, and structural properties that can be fed directly into other tools. Read the output. Find the surprising node, the unexpected value, the structural anomaly. Then pick the tool that investigates THAT specific finding.\n\nDo not stop at one tool call. The first call reveals the structure — the real insight comes from the second, third, fourth call that digs into what the first one found.\n\nSpeak in the user's domain, not in graph theory. Only call render when the user explicitly asks to visualize.",
3
3
  "tools": [
4
4
  {
5
5
  "name": "structure",
@@ -63,7 +63,7 @@
63
63
  {"name": "source", "type": "string", "description": "EN source code, or path to .en/.txt file", "required": true},
64
64
  {"name": "theme", "type": "string", "description": "Color theme: named preset (Blueprint, Swiss, etc.) or dark/light", "required": false},
65
65
  {"name": "isDark", "type": "string", "description": "true or false. Selects the dark or light variant of a named preset. If omitted, defaults to dark unless theme=light.", "required": false},
66
- {"name": "type", "type": "string", "description": "Output format: svg (default) or png. PNG is rasterized server-side via Batik.", "required": false},
66
+ {"name": "type", "type": "string", "description": "Output format: png (default) or svg. PNG is rasterized server-side via Batik.", "required": false},
67
67
  {"name": "quality", "type": "string", "description": "Output quality: small, mid, or max", "required": false},
68
68
  {"name": "view", "type": "string", "description": "Group by: actors (partition by actor) or locations (partition by location). Default auto-detects topology.", "required": false},
69
69
  {"name": "structure_layers", "type": "string", "description": "Bitmask for structure overlays. Bits: 1=subsystems, 2=pipelines, 4=cycles, 8=forks, 16=joins, 32=hubs, 64=deadlock, 128=overflow. Default 255 (all on). Pass 0 to hide all.", "required": false},