Zumen

io.github.meta-taroPublished by GitHub account meta-tarov0.7.0Updated Nov 4, 2026

AI-editable diagrams as code: draw from YAML, propose diffs a human applies, export SVG/Mermaid.

Overview

AI-generated overview

Zumen lets an assistant author specialist diagrams as YAML, propose human-applied edits, inspect quality and export SVG, PNG, Mermaid or draw.io.

What you can do
  • Learn the format and find worked examples: read the spec, browse the bundled example catalogue and read example sources
  • Find and read existing diagrams: list diagram paths and read their YAML source verbatim
  • Create and change diagrams: create new files, or propose changes to existing ones that a person applies
  • Check and export: inspect readability, crossings and overlaps, then export to SVG, PNG, Mermaid or draw.io
  • Work with the open desktop window: check live status, read the on-screen state, propose on screen and point at elements
  • Build step-by-step animations: generate an animated SVG plus numbered frames from a list of steps
When to use it
Useful when you want an assistant to draft or revise structured technical drawings such as lighting plots, floor plans, wiring diagrams or appraisal charts from a text source, while keeping a person in control of layout fixes and final approval.
Requirements
Runs as a local stdio process, typically started with npx from the npm package, so Node.js and network access for the package download are needed. No accounts, API keys or environment variables are declared. The live-link tools additionally require the zumen desktop app to be connected.
Before you install
The server writes diagram files on your machine: zumen_create makes new files and zumen_propose applies changes to existing ones, though conflicts with hand edits are left for a person to decide. Live tools act on the open desktop window and can block waiting for a person to apply or discard a proposal. Exports may drop content, and the timelapse tool bundles no video encoder.

Installation

In SourceWeft

  1. Open Zumen in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@metataro/zumen-mcp

The MCP server for zumen — AI-editable diagrams as code. An AI agent (Claude Code and others) draws from one YAML file; a human fixes the layout; the fix survives the next regeneration.

bash
claude mcp add zumen -- npx -y @metataro/zumen-mcp

Other MCP clients: run npx -y @metataro/zumen-mcp as a stdio server.

What the agent gets: zumen_spec (read this first), zumen_examples (389 worked examples — floor plans, lighting plots, pallet patterns, rail maps…), zumen_propose (a diff a human applies — there is no tool that writes the source directly), zumen_inspect, zumen_export (SVG / PNG / Mermaid / draw.io), and a live link to the open desktop window.

This package exists so that the library package @metataro/zumen stays at three dependencies: only people who want the MCP server install the MCP SDK.

MIT.

Source: packages/zumen-mcp/README.md at commit 9645566

Tools

15

zumen_about

About this tool

Call this once, first. Says what the tool is for, what it will not do, **which doors are closed** (so you do not try them), and what changed in each version.

Takes no parameters.

zumen_spec

Diagram format

Returns the format, the type and appearance words you may use, and the rules to follow. Read this before writing a diagram. Writing without it is guesswork.

Takes no parameters.

zumen_list

Find diagrams

Returns the paths of diagrams (*.zumen.yaml) underneath. **Look at what already exists first** — if the diagram is already there, edit it rather than creating a new one (changing ids detaches a person's edits). Only paths come back; read the contents with zumen_read.

Parametersdirrequired

zumen_examples

Browse the bundled examples

**Returns the catalogue of the 189 examples bundled with this tool, and their sources.** **Look here first when deciding what to draw.** zumen_spec only tells you how to write a file — the value of zumen is not the syntax but how the drawings that professionals actually use are put together: a periodontal chart, a plywood cutting diagram, a stage lighting plot, a used-car appraisal chart, a timber joint, tactile paving. Each one-liner states **what that drawing must get right**, not its title. With no arguments you get the categories and counts. Narrow with query (Japanese or English). Pass name to get **that example’s YAML source**, so you can copy how it is written. You can also query by feature (views, hatch, chain, openings…) — the syntax is in zumen_spec, but a **working example** only exists here. **Do not churn out generic network diagrams and flowcharts** — adding what existing tools already do proves nothing.

Parametersnamequery

zumen_read

Read a diagram

Returns the source (*.zumen.yaml) verbatim. **Always read before changing it** — rewriting without knowing the contents drops the pins a person added and any keys you do not recognise. Pass changes through zumen_propose; there is no tool that writes a file directly.

Parameterspathrequired

zumen_pins

What a person decided by hand

Returns the positions, sizes, labels and appearance a person set. Read only; there is no way to write here. Leave it alone and change the structure instead.

Parameterspathrequired

zumen_inspect

Inspect a diagram

Returns readability, element counts, edge crossings, box overlaps, group escapes, size, and the autonomy figure. Always look at this after writing. tooTangled only means there are more crossings than edges, which is **not a defect in itself**: of the 333 examples, the 19 where it is true are keyline grids, a spider web, gear pitch circles and measuring graticules — in all 19 the crossing lines *are* the drawing. When it is true, judge for yourself whether the drawing is made of overlapping lines or merely knotted. Any edge id in hiddenLabels has a label that did not fit and is not drawn — shorten it or use fewer edges. **Always check kind**: for a placement drawing positionsInSource is true, meaning you write the positions yourself (nodes[].at as { x, y }) and the machine will not re-arrange them. You can also set sizes with nodes[].size ({ w, h }, which works for structure diagrams too) — without it every room comes out the same size. Never write pins — those belong to the person. If tooSmallToProject is true the text is too small to read when projected. **If tooSmallToPrint is false, the drawing is simply one to be printed rather than projected** (transit maps, appraisal charts, lighting plots and stowage plans land here — 36 of the 95 examples do). **Only when both are true is there really something to fix.** Do NOT fix it by enlarging the text (that grows the diagram and lowers the ratio further). **Try wrap: true first** — if the diagram is just one long row, wrapping brings it back (a chain of 8 goes from 13.9 to 2.2). If that is not enough, ask the person whether the diagram can be split. Any id in crowdedNames has a name that did not fit its box and had nowhere free outside it, so it is drawn overlapping something. Make the box bigger or shorten technology. It is NOT dropped — a room losing its name is worse than an overlap. Any id in adriftNames is a wide box whose name did not fit and is drawn outside it — in a table that leaves the row looking empty. Any

Parameterspathsource

zumen_create

Create a new diagram

Creates a new diagram. Fails if the file already exists (this is not an overwrite path). Nothing is written unless it conforms to the format. To change an existing diagram, use zumen_propose.

Parameterspathrequiredsourcerequired

zumen_propose

Apply a proposal to the source of truth

Applies a proposal to an existing diagram. The pins in your proposal are not read, so hand edits survive. Anything that disagrees with a hand edit is not applied and comes back as a conflict. Conflicts are decided by a person, not by you.

Parameterspathrequiredsourcerequired

zumen_export

Export

Exports to svg (to show), **png (to look at yourself)**, mermaid (readable tomorrow) or drawio (editable tomorrow). Each exporter states what it could not carry. **png comes back as the picture itself** — always look at one before calling a drawing done (the numeric checks only tell you whether it is readable). It needs Chrome, and says so when Chrome is missing.

ParameterskindrequiredpaththemeintentsourceembedFont

zumen_timelapse

Film the drawing growing

Writes one animated SVG plus numbered SVGs (all padded to the same paper) from a list of steps. No screen recording, so it works remotely. **No encoder is bundled** — the returned recipe shows how to make an mp4 with the tools you already have.

Parametersoutrequiredholdpathsthemesources

zumen_live_status

Is the app connected?

Reports whether the desktop app is on the other end of the live link and what it is showing. **Check this before using any zumen_live_* tool.** If nothing is connected, use zumen_propose (which writes the file) instead. screens = 0 means no human is looking at this screen.

Takes no parameters.

zumen_live_read

Read what the screen is showing

**Reads the screen, not the disk.** Edits the person just made but has not saved live here; zumen_read would not see them. Read this before changing anything.

Takes no parameters.

zumen_live_propose

Put a proposal on the screen

Puts a proposal **on the screen only**. It does not enter the source of truth; nothing happens until the person presses "apply". **You have no way to press it.** With wait, this blocks until the person answers (applied = they took it / discarded = they rejected it / timeout = they have not looked yet / gone = the screen went away). **timeout does not mean rejected.** A proposal that fails validation is never shown.

Parametersnotepathwaitsourcerequired

zumen_live_point

Point at an element

Selects that element on screen. **Selecting only; the diagram does not change.** Use it instead of describing in words which thing you mean.

Parametersidsrequirednote

Version history

2
  1. v0.7.0LatestNov 4, 2026
  2. v0.6.1Oct 13, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts
  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts