claude.design-mcp
Click on "Install 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., "@claude.design-mcpCreate a design for a tech startup landing page"
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.
claude.design-mcp
An MCP that drives the real Claude Design web app from your editor/agent — log in once, then create, iterate on, and pull designs that claude.ai/design generates on your own account (not a local imitation).
How it works
It drives your own logged-in Chrome (a dedicated profile) over CDP with
playwright-core, and talks to the realclaude.ai/design"Omelette" API as you, through your browser session.Generation is triggered the way the website does it — your prompt is typed into the design composer and submitted; the tool then waits for the turn to finish (the
ReleaseTurnnetwork signal + file-tree stability) and reports the files Claude Design wrote. Files are pulled back to local on request.Project metadata, files, deletes, and direct file edits use the documented JSON RPCs (
CreateProject/ListFiles/GetFile/WriteFiles/EditFile/DeleteProject), run in-page so they share your session + Cloudflare clearance.Not a
claude -pmimic. Every design is produced by claude.ai/design itself.
Related MCP server: Browser Agent MCP
Tools
Tool | Does |
| One-time: open Chrome to log into claude.ai/design (session persists) |
| List your claude.ai/design projects |
| Create a project and generate a design from a prompt — |
| Send a follow-up prompt to modify a design — |
| Download a project's files to local — |
| Render a project's self-contained HTML to a full-page PNG for review — |
| Read one file from a project — |
| Report a project's chat/turn state — |
| Apply a direct file edit — |
| Delete a project — |
Setup
npm install # installs playwright-core (NO browser download — uses your Chrome)
node src/server.mjs login # opens Chrome once; log into claude.ai (session is then reused, invisibly)Register as a local MCP (opencode example):
{ "mcp": { "claude-design": { "type": "local", "command": ["node", "/abs/path/claude.design-mcp/src/server.mjs"], "enabled": true } } }CLI
node src/server.mjs login
node src/server.mjs list
node src/server.mjs create "minimal landing page for a coffee shop" coffee
node src/server.mjs iterate <projectId> "add a dark mode toggle to the header"
node src/server.mjs pull <projectId|name>
node src/server.mjs preview <projectId|name> [outDir] [width]
node src/server.mjs delete <projectId>After the one-time login, list/create/iterate/pull run with no visible window
(off-screen Chrome) and reuse the persisted session.
Requirements
Node.js 22+ (uses built-in
fetch/WebSocket;playwright-coreis the only npm dependency)Google Chrome (the tools drive a dedicated Chrome profile)
A claude.ai account with Design access (you log in once via
design_login)
Env
CLAUDE_DESIGN_PROFILE— dedicated Chrome profile dir (default~/.cache/claude-design-mcp/chrome-profile)CLAUDE_DESIGN_CHROME— path to Google Chrome (default: macOS Google Chrome)CLAUDE_DESIGN_CDP_PORT— remote-debugging port (default9377)CLAUDE_DESIGN_DIR— wheredesign_pull/design_previewwrite (default: the working folder)CLAUDE_DESIGN_HEADLESS— set1to drive headless Chrome instead of off-screenCLAUDE_DESIGN_TURN_TIMEOUT_MS— hard cap per generation turn (create ~420s, iterate ~300s defaults)CLAUDE_DESIGN_QUIET_MS— how long the turn network must stay silent before a generation is judged complete (default45000)
When is a generation "done"?
claude.ai/design drives generation as turns: your prompt streams in over a Chat RPC,
kept alive by RenewTurn keepalives (~every 10s) and ended by a ReleaseTurn. design_create /
design_iterate return once the files have settled AND the turn network has gone quiet for
CLAUDE_DESIGN_QUIET_MS — comfortably longer than the keepalive interval, so a generation is never
cut off mid-write (you always get a complete, coherent design, not a half-rendered one).
Note that claude.ai often runs an automatic refine pass that starts ~30s after the first design
settles, so the design keeps improving on the server after the tool has returned its first complete
version. To get the most-refined output, design_pull / design_preview always fetch the latest
state, or raise CLAUDE_DESIGN_QUIET_MS (e.g. 60000) to make create wait through later refine
passes (at the cost of a longer wait).
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/coin-seeker/claude.design-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server