An artificial artisan for UI design: agents build screens, a design system keeps them consistent.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
One-click editor setup isnβt available for this listing yet β we donβt have a confirmed install command, and weβd rather show nothing than point your editor at the wrong package or host. Follow the projectβs own setup instructions, linked above.
An artificial artisan for UI design: agents build screens, a design system keeps them consistent.
Local-first UX design tool for AI agents. Agents design through MCP, the human reviews in the browser, state lives in plain files.
One Node process on 127.0.0.1. No database, no accounts, no hosting.
Status: Stable (1.0.1) β CLI, store, parser/model, the 24-tool MCP surface, browser preview with live reload/flows/comments, the design system (tokens, variants, drift warnings, promote_to_system), and packaging are all implemented. Artisign designs its own browser preview β see Designed with itself.
Node.js β₯ 20.19, on macOS or Linux. Windows is not supported β the store's atomic writes (write temp file, then rename) and its path handling have never been verified there, so the tool is not shipped for it. package.json declares this via os, which makes npm install refuse the platform rather than fail somewhere later.
Two ways to run it. npx artisign fetches the package on first use and needs no setup β the fastest way to try it. Installing it into a directory of your own is the other path, and the one the commands below are written for. Screenshots are not the difference between them: the two screenshot tools need Playwright, which a local install can sit next to and which the npx path reaches through ARTISIGN_PLAYWRIGHT_DIR β both routes are under Optional: screenshots below.
The commands below are written as npx artisign. With a local install, run ./node_modules/.bin/artisign instead β or npm install -g artisign and just artisign.
Canonical quickstart. The local install, from an empty directory to a connected agent. Start the daemon before registering the MCP server β the HTTP registration below runs against an already-running daemon:
The first two lines repeat the install above on purpose: the point of this block is that nothing has to be assembled from elsewhere. On the npx path, drop them and start with npx artisign start ./my-project instead β the screenshot tools then need ARTISIGN_PLAYWRIGHT_DIR, as described below.
Optional: screenshots. get_screenshot and inspect_node need a real browser, which is intentionally not bundled (npx artisign stays light without it). Playwright is an optional peer dependency β npm neither installs it nor its ~150 MB of browser binaries unless you ask for them by name. Two ways to do that:
Next to Artisign. In the directory you installed artisign into:
--no-save matters: it installs the package without writing it into package.json or the lockfile, which is the whole point of Playwright being optional. Without the flag npm edits both files; with some npm versions a plain npm install playwright even reports up to date and installs nothing, because an optional peer counts as satisfied when absent.
Anywhere, named by ARTISIGN_PLAYWRIGHT_DIR. Install Playwright once into a directory of its own and point Artisign at it:
This is the route that also works when artisign runs from npx's cache, and the one to use when the first route leaves the repo dirty. The variable has to be set for the process that runs the daemon β for a stdio MCP server, that is the env block of the host's config.
artisign imports Playwright dynamically, so without the variable Node resolves it from the tree artisign itself lives in: installing Playwright into your design project has no effect. If Playwright isn't installed, or is installed but broken (a partial copy, a symlink whose target is gone), both tools fail with the fix in the error message rather than crashing the server; every other tool works without it. A Playwright installed after the daemon started is picked up on the next call; a repaired one needs a daemon restart, and the error says so.
Register the MCP server.
Claude Desktop β stdio, add to claude_desktop_config.json:
Claude Code β stdio:
Recommended β against the running daemon (npx artisign start), streamable HTTP instead of spawning a second process. Bake the project into the URL, one stable entry per coding project:
The ?project= parameter scopes every tool call to that project (auto-opening it on first use), so several coding projects can share one daemon without ever restarting it. Without the parameter, calls go to the project currently active in the browser UI. init_project works even while no project is open.
Privacy. Artisign collects nothing β no telemetry, no account, no server beyond the local one it runs, no update check. Two things reach the network, neither of them about you: import_html fetches whatever URL you hand it, and the first render of a project fetches the font families named in your tokens β plus the Material Symbols Rounded icon font, always β from Google Fonts, then caches them locally (see Fonts & icons).
First run, in this order:
The remaining commands, for reference β this block is a catalogue, not a sequence:
artisign --help lists the flags each command accepts.
The daemon is multi-project: it runs permanently on 127.0.0.1:4711 and can hold several projects open at once. Open or create projects from the browser UI (project picker in the topbar), or let agents address any project directly via the MCP URL β no restart when you switch projects. The port comes from ~/.artisign/config.json or --port N on start and serve (a settings.port in a project's artisign.json is deprecated and ignored).
Daemon-level state β that config plus the daemon.lock holding the running pid and port β lives in ~/.artisign. Set ARTISIGN_HOME to move it somewhere else; that, together with --port, is what lets a second daemon run fully isolated from the first, which is worth doing before you try anything destructive against projects you care about.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/artisign)<a href="https://allmcps.com/mcp/artisign"><img src="https://allmcps.com/api/badge/artisign?style=directory" alt="Artisign on AllMCPs" /></a>