Paper workflow
Design in Paper Desktop with the Yuno kit as the ground truth for tokens and components. One agent, two MCPs, zero drift from production.
Why Paper + kit
Paper Desktop is a browser-based design canvas that ships an MCP server. Wired next to the kit MCP, a single agent in Claude Code (or Cursor) can read the Paper canvas AND consult the kit at the same time. The kit MCP tells the agent what Yuno looks like; the Paper MCP is where the design lands. Same tokens, same components, no manual copy and paste.
Prerequisites
- Node 22
Node 25 breaks with a simdjson dylib issue. Install via nvm or Homebrew (`brew install node@22`).
- Paper Desktop
Download from paper.design. Opening any Paper file starts its MCP on http://127.0.0.1:29979/mcp automatically.
- Claude Code
Any recent version. Cursor works too, same setup shape.
- A local clone of the kit
`git clone https://github.com/yuno-payments/prototype-kit` and `cd prototype-kit && npm install`.
Setup in 10 minutes
- 1Install the kit MCP dependencies
The kit ships its own MCP server under `mcp-server/`. Install its deps once.
cd prototype-kit/mcp-server npm install - 2Register the Paper MCP with Claude Code (user scope)
One-off. Paper Desktop must be running with a file open so the MCP is live on port 29979.
claude mcp add paper --transport http http://127.0.0.1:29979/mcp --scope user - 3Register the kit MCP at the project level
Create `.mcp.json` at the root of your prototype folder. Project-scoped so each prototype resolves its own `KIT_ROOT`.
{ "mcpServers": { "yuno-kit": { "type": "stdio", "command": "node", "args": ["mcp-server/index.mjs"] } } } - 4Open Claude Code inside the prototype folder
Run `claude` in the folder. Type `/mcp`. You should see both `paper` (http) and `yuno-kit` (stdio) as connected.
- 5Open (or fork) the Paper starter file
The Yuno starter file ships all foundations pre-loaded: colors light and dark, typography scale, radius scale, spacing, shadows. Fork it once per prototype so tokens land in your canvas.
Your first prompt
With both MCPs connected and the starter file open, ask the agent in natural language. It will call `list_components` and `list_tokens` on the kit MCP before drawing artboards via the Paper MCP.
Troubleshooting
- /mcp does not show paper as connected
Paper Desktop is not running or no file is open. Open any Paper file, then restart Claude Code.
- /mcp does not show yuno-kit as connected
Check that `.mcp.json` sits at the project root and that Node 22 is on the PATH. Run `node mcp-server/index.mjs` from the kit root. It should print `[yuno-kit-mcp] connected. KIT_ROOT=...` to stderr.
- Agent invents components that are not in the kit
Prompt it explicitly: 'Use list_components to survey the kit before creating anything. Refuse to invent components not returned by list_components.' The KIT-FIRST PROTOCOL in CLAUDE.md enforces this, but reinforcing in-prompt helps early sessions.
- Tokens on the canvas do not match the kit
You forked the starter file, right? If yes, run `list_tokens` on the kit MCP and compare against the tokens tab in Paper. Differences mean the starter is stale and needs a refresh from the kit.