cursor-design
The README references a Notion document as the source of truth for the specification of the Cursor Design MCP server, but this is not an integration target; it is used for documentation.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cursor-designopen the artboard"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
cursor-design
Agent-driven live HTML artboard for Cursor - Claude Design–style canvas without in-panel chat.
Panel: Webview artboard (host chrome + sandboxed HTML iframe)
Brain: Cursor Agent (your subscription) via local MCP + disk under
.cursor-design/Not: a Next.js app, Chrome extension, or in-extension LLM calls
Status
v0.1.0: installable .vsix with an artboard panel, seven MCP tools, export handoff + stale badge, and documented v1 limits.

Spec (source of truth): Notion - Cursor Design
Related MCP server: figsnap-mcp
MCP tools
Server name: cursor-design. Tools:
set_artboard- create a new artboard id (htmlrequired; empty string allowed)update_artboard- replace HTML; requiresbaseGenerationand/orbaseHashread_artboard- HTML + meta;artboardIdoptional (defaults to active)list_artboards- ids on disk (no HTML bodies)set_active_artboard- switch the active id (does not open the panel)export_artboard- write.cursor-design/handoff/<exportId>/and recordlastExport(call before implementing)handoff_status-{ stale, activeArtboardId, activeHash, lastExport? }; re-export whenstaleis true
Allowlist the server if Cursor prompts. If MCP is denied, edit .cursor-design/** on disk and tell the user to allowlist the tools.
Install
From this repo:
pnpm vsixwritescursor-design-0.1.0.vsixat the repo root.In Cursor: Command Palette → Extensions: Install from VSIX… → pick that file → reload.
Open a trusted folder. Command Palette → Cursor Design: Open Artboard.
Settings → MCP: allowlist
cursor-design(toggle off/on if the tool count stays 0; see Limits).
Smoke-tested 2026-09-13, Cursor 3.20.17.
Develop
pnpm install
pnpm compileConfirm dist/mcp.js exists after compile or the watch/preLaunchTask build. F5 will not register a working stdio server without it.
In Cursor: open this folder → F5 (Run Extension). The Extension Development Host opens fixtures/dev-workspace (positional folder arg in .vscode/launch.json). The panel does not open on startup.
Then in the Extension Development Host window (not this repo window):
Command Palette → Cursor Design: Open Artboard - chrome + disk preview, no CSP errors in the webview console.
Check MCP: Settings → MCP. Server name
cursor-design. Activation isonStartupFinished, so it registers without opening the panel.Allowlist
cursor-design(toggle off/on if the tool count stays 0).
Commands:
Cursor Design: Open Artboard - open/reveal the panel
Cursor Design: Reveal Design Folder - reveal
.cursor-design/if it exists (does not create it)Cursor Design: Export Handoff - export the active artboard to
.cursor-design/handoff/<exportId>/
Output: View → Output → Cursor Design.
Agent entry: AGENTS.md
Workflow overlay: AI Blueprint (plans and review gates, not the product stack).
Export to implement trial
F5 in the Extension Development Host with fixtures/dev-workspace open:
Command Palette → Cursor Design: Open Artboard. No handoff badge.
Design a hero + CTA on the active artboard via Cursor Agent (
set_artboard/update_artboard).Call
export_artboard(or Command Palette → Cursor Design: Export Handoff). Confirm.cursor-design/handoff/<exportId>/{index.html,IMPLEMENT.md,tokens.json}andmanifest.jsonlastExport. Badge still hidden.In a second Agent session, open
.cursor-design/handoff/<exportId>/IMPLEMENT.md(frommanifest.json.lastExport.exportId) and implement intofixtures/dev-workspace/sample-app/index.html. Do not copy.cursor-design/into the app.Edit
artboards/<id>.htmland save. Within ~200ms the panel badge showsHandoff out of date. Re-export.Re-export. Badge clears. The previous handoff directory stays on disk.
Then cd fixtures/dev-workspace/sample-app && pnpm install --ignore-workspace && pnpm dev to view the implemented page. (--ignore-workspace is required because this repo has a root pnpm-workspace.yaml; without it, pnpm install no-ops and vite is missing.) Observed 2026-09-12: Vite 8.3.0 served index.html at http://localhost:5173/ (Implement the exported artboard here.).
Trial performed: 2026-09-12 (live F5 pass, steps 2–6 green; 6 handoffs on disk, stale:false, Vite 200 with latest implement).
Limits (v1)
Facts, not a roadmap. Drift vs the rules or overview is labeled.
Cursor only: MCP registration uses
vscode.cursor.mcp.registerServer. In plain VS Code the server is not registered (warning in Output → Cursor Design); the panel still renders.cursor-design/from disk, with no Agent loop.First workspace folder only; multi-root beyond the first folder is ignored (
revealDesignFolder.ts,handleOpenArtboard.tsponytail).Untrusted workspaces unsupported (
capabilities.untrustedWorkspaces.supported: false); artboard HTML is executable workspace content.One active artboard, no gallery; variants are new ids +
set_active_artboard.Writes: one process-wide MCP queue (recorded drift vs rule 02 "Serialize writes per artboard id"; documented as-is, queue unchanged); host-vs-MCP manifest writes are last-writer-wins; no cross-window lock (
mcpQueue.ts,watchArtboardDisk.ts,artboardFs.tsponytails). Failed multi-file writes leave partial files (no journal/rollback); orphan handoff dirs are never deleted.Artboard iframe:
sandbox="allow-scripts". CSP blocks inline event handlers,style=""attributes, and external subresources in the artboard (artboardChromeHtml.tsv1 limit).Handoff carries the whole document in
index.html(no CSS/JS split; recorded Phase 3 lock vs overview "HTML+CSS+JS");.cursor-design/assets/is copied manually;tokens.jsonis passed through without validation.Brain is Cursor Agent only: no in-panel chat, no model API keys, no
vscode.lm.Not on the Marketplace; install from
.vsix(Extensions: Install from VSIX…).Cursor MCP settings may show 0 tools until the server is toggled off/on.
Chrome is vanilla nonce'd script, not the Svelte 5 + Vite chrome named in the overview (recorded drift, not fixed here).
License
MIT - see LICENSE.
This server cannot be deployed
Maintenance
Related MCP Connectors
Publish and manage existing HTML presentations from an MCP-capable Agent.
Build, preview, version and publish small browser apps from coding agents over MCP.
Agent-native website builder: create, edit, and host websites via MCP
Publish HTML, Markdown, and multi-file sites as shareable URLs instantly via MCP.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables MCP agents to read a user's Prefab template library, preview and create project deployments, and manage watched folders and globals on macOS.26 npmMIT
- AlicenseAqualityBmaintenanceEnables coding agents to interact with the currently open Figma file via local MCP tools, including reading the design, extracting nodes as PNG, React, HTML or CSS, editing the canvas when permitted, and sharing saved component sets.3945 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables stdio MCP clients such as Cursor and Claude Code to read and modify the currently open Figma Desktop file, export selected nodes as local PNG/SVG files, and create or edit basic canvas nodes using precise layout data for pixel-level reconstruction.2,181 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables a coding agent to create, read, write and link HTML-native artboards, capture screenshots of its own rendered output, and collect queued canvas feedback so it can see and refine UI designs in a loop. Provides tools such as screenshot_artboard, write_artboard and get_pending_marks to close the write-render-look-fix cycle on real HTML files.1MIT