frontend-design-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DESIGNMD_API_KEY | No | Optional API key for downloading designmd.ai community kits. Get a free key from https://designmd.ai/api-keys |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_project_designA | Check whether the current project already has a DESIGN.md and summarize it: which design system it came from, its sections, and its colour tokens. Call this BEFORE writing or editing any frontend code, when resuming UI work after a break, and before fixing a visual bug - it is a cheap local read that tells you which design rules already apply. Returns exists:false when the project has none. |
| list_providersA | Show which design catalogs are available, what each can do right now, and how to enable anything currently gated (for example a missing DESIGNMD_API_KEY). |
| search_designsA | Search every enabled catalog at once for a design system by brand, style, or mood (for example "stripe", "dark fintech dashboard", "warm editorial"). Returns compact metadata with a namespaced id for each hit. Results marked fetchable:false are real but gated; the response's gating map says why. Use this when starting new UI work and the project has no DESIGN.md yet. |
| get_design_sectionsA | List the sections of a DESIGN.md with each one's size in bytes, without downloading the prose. Use this to choose what to read before calling get_design, so you pull one section instead of a 28KB document. |
| get_designA | Return a DESIGN.md, or - strongly preferred - one section of it. Always pass |
| get_design_tokensA | Return a design system's tokens - colours, typography, spacing, radii, components - as structured JSON. This is the cheapest way to answer any concrete styling question and should be your default over get_design. When a file has no machine-readable tokens the result sets partial:true and explains what is missing rather than returning nothing. |
| install_designA | Download a design system and write it to the project as DESIGN.md, stamped with its origin so a later session can identify it via get_project_design. Use this when the project is adopting a design system for real, rather than answering one question about it. |
| check_updatesA | Compare getdesign.md's live signed index against what is cached, reporting brands that are new or whose published sha256 changed. Only getdesign.md publishes digests, so only it can be checked this way. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 8 tools
Most tools have clearly distinct roles: search, install, project-state, and update-checking are well separated. The only soft spot is get_project_design vs get_design, since both involve DESIGN.md content, though one summarizes the local project file and the other fetches design documents/sections.
Every tool uses a consistent lowercase snake_case verb_noun pattern (get_*, list_*, search_*, install_*, check_*). The get_design_* family is predictable and makes related read operations easy to group.
Eight tools is a well-scoped size for a design-system MCP: enough to cover discovery, inspection, installation, and upkeep without redundancy or bloat.
The core lifecycle—search, inspect, install, check local state, and monitor updates—is covered. There is no explicit uninstall or apply-update operation, and local design access is summarized rather than returned in full, so agents may need workarounds for those edge cases.