Archlang MCP server
Compile, describe, lint, validate, score and repair multi-storey and curved ArchLang floor plans.
10 stars326 downloads/wk
Reviews
Write oneNobody has reviewed Archlang yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
Archlang tools (9)
write = sends, deletes, buys or postsRead from the package source without running it. The installed server may list more.
compileCompile ArchLang `.arch` source (or a Plan-JSON object) to an SVG floor plan, or to a zero-dependency ASCII text plan (format:"txt"). Returns the rendered output plus diagnostics \u2014 each a byte span, line/col, catalogued E_/W_ code, and a machine-applicable fix. Errors are DATA, never exceptions: read `diagnostics` and correct the source. A MULTI-STOREY plan (`level <n> { \u2026 }`) is a set o
completeCompletion items in scope at a source BYTE offset (the LSP `completion()` core): keywords, element names, ids, enum values \u2014 for structured or assisted authoring.
describeSemantic facts about a plan without rendering: rooms (areas, bboxes, adjacency, uses, and the exact shape \u2014 `floor_polygon` for a `room polygon`, `floor_circle` for a `room circle`, whose area is exact \u03C0R\xB2), doors (what they connect), windows, circulation (walk distance / bottleneck width / detour), zones, storeys (`levels[i]` carries the same facts per floor) with the shafts that joi
fixApply the machine-applicable fixes a compile attaches to its diagnostics \u2014 the SYNTACTIC corrector (off-wall openings \u2192 the attachment form, out-of-range positions clamped, \u2026), distinct from `repair`'s geometric solver. Bounded fixpoint (\u22644 passes; a pass that raises the error count is rolled back). `unsafe:true` also applies `maybe-incorrect` fixes. Returns { ok, passes, appli
lintAdvisory `W_*` soundness warnings as data: unreachable room, windowless bedroom, too-narrow door, blocked doorway, furniture through a wall, circuitous path, and more. `profile` selects a ruleset (e.g. "residential-basic", "accessibility-advisory").
repairThe explicit source-to-source corrector (ADR 0006): push furniture out of walls / doorways / swing arcs, separate overlaps, relocate wrong-room fixtures, snap floating pieces to walls. Returns corrected `.arch` source + a change log. It NEVER adds doors or windows \u2014 that is a design choice; use `suggest` for topology.
scoreThe continuous intent-satisfaction METER: check a brief's intent JSON (per /intent.schema.json) against a plan and report how much it satisfies. Returns { ok, satisfied, total, score, subscores, violations } where `score` is satisfied/total in [0,1] (an empty intent scores 1). It MEASURES, it never gates \u2014 so you can watch a plan approach the brief across edits. A malformed intent returns `{
suggestAdvisory topology suggestions as DATA \u2014 never applied (ADR 0005). For a room with no path back, a building with no entrance, a bath reachable only through a bedroom, or a windowless bedroom, returns ready-to-paste `door`/`window` statements (attachment form, furniture-aware) plus a rationale, for the agent to choose among and insert.
validateThe ship gate: parse + resolve + lint in one pass, no render. `strict:true` makes advisory warnings fail too. Optional `graph` checks the plan's interior-door adjacency against an intended room graph (`{ room: [neighbours] }`); a mismatch fails. Optional `intent` (a brief's expectations per /intent.schema.json) is checked against the plan \u2014 a failing GATING assertion (room count / existence /
Public scan report
scanner v0.1.5 · 2026-09-19 · same rubric, same numbers if you re-run it
- Code scan5 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitylocal package, no credentials required12/15
- Maintenancelast push 2 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
What the publisher says
From the Archlang repository's README, as published. We do not edit it. Read it on GitHub
<!-- AGENT-FIRST NOTICE -->
[!IMPORTANT]
### 🤖 Read this with your AI agent — don't read it by hand.
This repo is written agent-first. Point Claude Code, GitHub Copilot, Cursor, or any agent at it:
"Read the README and AGENTS.md, then help me run / extend this."
Structure + AGENTS.md are optimized for agent comprehension.
<!-- /AGENT-FIRST NOTICE -->
Floor plans as code — compiled to SVG, DXF and PDF.
An open-source (MIT) DSL for floor plans that compiles .arch source to SVG/DXF/PDF with linting and geometric validation — diffable, reproducible, and LLM-writable. Text in, a precise architectural drawing out: deterministic, zero-dependency, and built so an AI agent can verify its own plan without ever looking at an image.
▶ Live Playground · 📖 Docs · ⌨ CLI reference · 📦 npm · 🧩 VS Code
👀 See it
Here is a whole program, and below it the actual drawing it compiles to — not a mock-up. Not one coordinate in it places a door, a window or a piece of furniture: every opening is pinned to a distance along a named wall, every fixture resolves against a room or a wall, and the bath and bedroom are laid out by a strip. site { street north } names the two facades the plan turns on — the front door faces the lane, the glazing faces the garden.
# A one-bedroom laneway cottage — 49 m² that reads as one program.
#
# Nothing here is positioned by hand. Every opening is pinned to a run distance along a
# named wall (`on <wall> at <pos>`), every fixture resolves against a room or a wall
# (`in <room> anchor …`, `against wall …`), and the bath/bedroom pair is laid out by
# `strip`. `site { street north }` names the two facades the plan turns on: the door
# faces the lane, the glass faces the garden.
plan "Laneway House" {
units mm
grid 50 # partitions are 100 thick, so a `flush` fixture lands on a …50
north up
dims auto all
site { street north }
wall id=w_lane exterior thickness 200 { (0,0) (7500,0) }
wall id=w_east exterior thickness 200 { (7500,0) (7500,6500) }
wall id=w_garden exterior thickness 200 { (0,6500) (7500,6500) }
wall id=w_west exterior thickness 200 { (0,0) (0,6500) }
wall id=w_hall partition thickness 100 { (4200,0) (4200,6500) }
wall id=w_bath partition thickness 100 { (4200,2500) (7500,2500) }Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
Install directly
Runs npx -y @chanmeng666/archlang-mcp on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add archlang-mcp -- npx -y @chanmeng666/archlang-mcp
Archlang: common questions
- Is Archlang MCP server safe?
- Yes, by our scan: it is graded A (92/100). Read the Archlang safety report
- How do I install Archlang?
- It runs on your machine. Copy the Claude Code, Claude Desktop or Cursor config from the install section.
- Does Archlang need an API key?
- Not as far as the registry entry and our scan can tell: no credentials are declared or required.
- Is Archlang maintained?
- The last commit was 3 days ago (2026-09-17). The latest release is v0.2.16.
- What can I use instead of Archlang?
- Servers from other publishers that do the same job: Semiotic MCP server.
Alternatives to Archlang
Same job from other publishers: the closest match first, then the best rated.
- SemioticVerified React chart generation: select, validate, repair, render, and inspect charts through MCP.not reviewedWidely usedB