Bridge your coding agent to Open Design.
A stdio Model Context Protocol server that lets OpenCode, Claude Code, Cursor and Zed list projects, fetch artifacts, lint HTML, and generate full designs through your own BYOK provider — against a running Open Design daemon.
Get startedInstall
Add the server to your MCP client config (OpenCode example shown — the same shape works for Claude Code, Cursor, and Zed):
{
"mcp": {
"open-design": {
"command": "npx",
"args": ["-y", "open-design-mcp"],
"env": {
"OD_DAEMON_URL": "http://ai-open-design:7456",
"BYOK_BASE_URL": "https://your-ai-proxy.example.com/v1",
"BYOK_API_KEY": "<provider-api-key>",
"BYOK_MODEL": "open-design"
}
}
}
}
The server boots with only OD_DAEMON_URL set — BYOK vars are validated lazily
when od_generate_design is first called.
See the README for the full env-var reference.
v0.17.0 ships13 MCP tools
Eleven of the thirteen work with only OD_DAEMON_URL; only od_generate_design and od_generate_design_system require BYOK vars.
| Tool | Verb | Purpose |
|---|---|---|
| od_list_projects | read | List all projects on the daemon. |
| od_get_project | read | Fetch a project + its artifact files, including customInstructions, fidelity, skillId, designSystemId. |
| od_create_project | write | Create a project with a client-supplied id, optional customInstructions and design-system link. |
| od_update_project | write | Patch a project's name, custom instructions, or metadata. |
| od_delete_project | write | Permanently delete a project (db row + on-disk dir). |
| od_save_artifact | write | Persist HTML to the daemon's global artifact store. |
| od_save_project_file | write | Persist a file inside a project so it appears in the daemon UI. |
| od_compose_brief | format | Format a Turn 3 prompt with form answers, brand spec, and design system summary. |
| od_extract_design_system | read | Parse a design-system.html and return the JSON manifest + three CSS blocks. |
| od_generate_design_system | generate | Generate a design-system.html (tokens, components, layout) via BYOK. |
| od_update_design_system | write | Patch a design system via semantic (BYOK) or delta (deterministic) mode. |
| od_lint_artifact | validate | Lint an HTML document; optional design-system conformance checks (DS001-DS005). |
| od_generate_design | generate | Generate a design via BYOK; auto-injects linked design system in strict/advisory mode. |
Recommended for multi-page projectsDesign-system-first workflow
For projects that span more than one page, generate a shared design system before any individual page.
Every subsequent od_generate_design call against the same project will auto-inject
the system contract — no copy-paste, no drift.
od_generate_design_system → od_save_project_file (design-system.html)
→ od_update_project { designSystemId: "design-system.html" }
→ od_generate_design (×N pages, contract auto-injected)
→ od_lint_artifact (DS001-DS005 conformance)
Strict mode is the default once a design system is linked. Use designSystemMode: "advisory"
for looser enforcement or "off" to skip injection entirely.
ResourcesProject links
- Source on GitHub
- Package on npm
- Changelog
- Issue tracker
- README
- Upstream Open Design (the daemon this bridges to)
- Model Context Protocol