grocers-design-mcp
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., "@grocers-design-mcpshow me the ProductTile component"
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.
grocers-design-mcp
MCP server exposing the Grocers Design System as queryable tools for coding agents.
Hosted on Fly.io. Auth is a single long-lived token embedded in the URL path — no OAuth, no client config beyond pasting the URL.
Live: https://grocers-design-mcp.fly.dev/<TOKEN>/mcp
Health (no auth): https://grocers-design-mcp.fly.dev/health
What it serves
Design tokens — every CSS custom property from the Grocers DS (colors, spacing, radii, shadows, type scale, motion). 101 tokens indexed at boot.
Semantic type classes —
t-h1,t-display,t-body,t-price, etc. (16 ready-to-apply utility classes).UI components — JSX source from the
web,mobile, andadminUI kits. 44 components — Dashboard, KpiCard, OrdersScreen, OrderRow, CartSheet, MProductTile, etc.Brand foundations — content rules (tone, casing, no-emoji), visual rules (red ≠ error, destructive uses ink + type-to-confirm), iconography (Lucide, 2px stroke, 24px grid).
Skill manifest — one-paragraph brand brief for fast agent bootstrap.
Related MCP server: GDS MCP
Tools
Tool | Purpose |
| Discover tokens by category/group |
| Full detail for one token (with |
|
|
| Components by kit (web/mobile/admin) |
| JSX source + metadata |
| README sections: visual/content/iconography/… |
| The SKILL.md manifest |
| Full-text search with pt-BR↔en synonyms |
| Lint CSS/JSX against 11 brand rules |
| Intent → idiomatic component or pattern |
Lint rules in validate_snippet
Rule | Severity | Catches |
| error | Any emoji in source (incl. composed sequences) |
| warning |
|
| warning |
|
| warning |
|
| warning | Brand red near 'erro/error/invalid' → use danger |
| warning | Destructive cue + brand red → ink + type-to-confirm |
| warning |
|
| warning |
|
| warning |
|
| info |
|
| info |
|
| info |
|
Intent map in suggest_component
30 curated entries spanning all three kits plus 5 non-component patterns
(destructive-action, error-state, price-display, icon-usage,
tone-of-voice). Kit inference from natural language ("mobile", "painel",
"web") biases the ranking.
Using with Claude Code
Add to ~/.claude.json or project .mcp.json:
{
"mcpServers": {
"grocers-design": {
"type": "http",
"url": "https://grocers-design-mcp.fly.dev/<TOKEN>/mcp"
}
}
}The token lives in fly secrets and rotates via
fly secrets set GROCERS_MCP_TOKEN=$(openssl rand -hex 32) -a grocers-design-mcp.
Quick example flow (agent building a Grocers admin screen)
1. get_foundations({section:"visual"}) → brand rules
2. suggest_component({intent:"tabela de pedidos no admin"})
→ admin/OrdersScreen
3. suggest_component({intent:"modal de cancelar pedido"})
→ pattern destructive-action
(ink + type-to-confirm)
4. get_component({name:"OrdersScreen", kit:"admin"})
→ JSX source
5. validate_snippet({snippet: <composed JSX>}) → catch drift before shipLocal dev
npm install
GROCERS_MCP_TOKEN="$(openssl rand -hex 32)" PORT=8080 npm run dev
# Health: http://localhost:8080/health
# MCP: http://localhost:8080/<TOKEN>/mcpArchitecture
Hono +
@hono/node-serverfor HTTP.@modelcontextprotocol/sdk for JSON-RPC / streamable HTTP transport, stateless mode (fresh
McpServerper request — no session state).Token-in-URL middleware:
timingSafeEqualagainstGROCERS_MCP_TOKEN; wrong token returns 404 (not 401 — hides existence).The DS bundle ships inside the container at
bundle/and is indexed once at boot into in-memory maps (O(1) lookups).Fly app runs 2 machines (HA) in
gru, 256MB each, auto-stops when idle.
Deploy
fly deploy -a grocers-design-mcp --remote-onlyLayout
bundle/ # Grocers DS handoff bundle (source of truth)
project/
colors_and_type.css # all design tokens
README.md # foundations
SKILL.md # one-paragraph brand brief
ui_kits/{web,mobile,admin}/ # React/JSX components
preview/*.html # visual specimens (not served by MCP)
src/
index.ts # entrypoint
server.ts # Hono app + token middleware
indexer.ts # CSS + JSX + README parser
tools/
tokens.ts # list_tokens, get_token, list_semantic_classes
components.ts # list_components, get_component
foundations.ts # get_foundations, get_skill
search.ts # search (synonym-aware)
validate.ts # validate_snippet (11 rules)
suggest.ts # suggest_component (30 entries)
Dockerfile
fly.tomlRoadmap
Out of scope for v0.3, candidates for next iteration:
Multi-theme support (Zona Sul and other clients as override layers).
validate_snippet: semantic copy lint (e.g. "Erro: ..." string detection).suggest_component: broader UI primitive coverage (TableHeader, Pagination states, EmptyState variants).get_screen(name): return a parent component + all its children in one call.shadcn/ui compatibility layer (map Grocers semantic tokens →
--primary/--backgroundetc.).
This server cannot be deployed
Maintenance
Related MCP Connectors
Access and maintain design system docs, tokens, components, skills, and contexts across any project.
Serves your design system and coding standards to coding agents, so they stop guessing.
Pull your TasteMaker brand kit + generated Agent Skill into your coding tool. Read-only.
Live React design-system APIs, patterns, and code validation so AI agents build real UI, not slop.
Related MCP Servers
- FlicenseNot gradedqualityFmaintenanceProvides AI assistants with access to WordPress Design System component information and design guidance.9-
- FlicenseAqualityDmaintenanceExposes Levit design system (GDS) metadata to AI coding tools, enabling queries about color tokens and component usage via natural language.11-
- AlicenseAqualityCmaintenanceProvides AI agents with tools to access Material 3 design components, design tokens, icons, and accessibility guidelines across multiple frameworks.829 npm6MIT
- AlicenseAqualityBmaintenanceProvides deterministic, read-only design knowledge for AI coding agents to help them choose visual directions, plan UI states, and compose design tokens, all without network access.612 npm4MIT