harvey-design-system-mcp
A Model Context Protocol server that exposes a versioned brand package (tokens, rules, recipes, media rights, and audit gates) as resources, tools, and prompts for AI agents. It enables agents to plan and audit on-brand UI, image, motion, and video outputs while remaining read-only and credential-free.
README
Design System MCP
An independent Harvey case study and a reusable blueprint for brand-governed AI
Independent project — not affiliated with Harvey. This is an unofficial educational case study created from publicly observable brand materials. It is not sponsored, endorsed, reviewed, or maintained by Harvey AI, Inc. “Harvey” and associated marks belong to their respective owners. See NOTICE.md before reusing brand assets or guidance.

This repository demonstrates how to turn a design system into two synchronized interfaces:
- a visual atlas that people can browse; and
- a Model Context Protocol (MCP) server that agents can query before designing UI, images, motion, or video.
The Harvey package is a worked example. The reusable idea is the contract: structured tokens, rules, recipes, media rights, evaluation gates, capability modules, prompts, tools, and audits that all resolve from one versioned brand package.
Try the example
- Visual design-system atlas: harvey-design-system.vercel.app
- Public Streamable HTTP MCP: harvey-design-system.vercel.app/mcp
Add the remote endpoint to any compatible AI agent:
{
"mcpServers": {
"harvey-design-system": {
"url": "https://harvey-design-system.vercel.app/mcp"
}
}
}
Then try requests such as:
Use the Harvey design-system MCP to create a responsive product-page blueprint.
Compile an on-brand image prompt for a legal team working late in New York.
Plan a ten-second partnership announcement and audit it before rendering.
Explain which rules made the output pass or fail.
The MCP is a read-only brand-intelligence layer. It does not need a Harvey credential, collect API keys, submit paid generation jobs, or claim that concept work is approved for publication.
What is inside
harvey-design-system-mcp/
├── src/ # React visual atlas
├── api/mcp.mjs # Vercel Streamable HTTP handler
├── mcp/
│ ├── server.mjs # tools, resources, and prompts
│ ├── brand-loader.mjs # package loading and rights checks
│ ├── production-planner.mjs # UI, image, motion, and video planning
│ ├── audit.mjs # deterministic brand preflight
│ ├── brand-system-spec/
│ │ └── v1/schemas/ # reusable JSON schemas
│ └── brand-package/
│ └── harvey/ # worked brand-package example
├── scripts/
│ └── validate-brand-package.mjs
├── tests/ # MCP, HTTP, and hosting checks
├── worker/ # alternate Sites-compatible runtime
└── videos/ # inspectable motion example source
The frontend is presentation-only. The MCP provides machine-readable governance. Your AI agent of choice remains responsible for calling image/video providers, composing output, inspecting the result, and preserving provenance.
The portable brand-package contract
Each brand lives in one directory:
<brand-id>/
├── brand.json
├── tokens.json
├── rules.json
├── recipes.json
├── media.json
├── evaluation.json
├── DESIGN.md
├── media/
│ ├── official/
│ └── marketing-reference/
└── modules/
├── interactive.json
├── static.json
├── imagery.json
├── commerce.json
├── marketing.json
├── motion.json
├── generative-image.json
├── generative-video.json
├── spatial.json
└── sequential.json
| File | Responsibility |
|---|---|
brand.json |
Identity, package version, audiences, traits, provenance, and module registry |
tokens.json |
Semantic color, type, spacing, size, shape, border, and layout primitives |
rules.json |
Required, preferred, permitted, prohibited, and reference-only behavior |
recipes.json |
Repeatable compositions that connect inputs, tokens, and rule IDs |
media.json |
Asset/source catalog with provenance, checksums, rights, and allowed uses |
evaluation.json |
Hard rejection gates, weighted quality dimensions, and approval policy |
DESIGN.md |
Human-readable interpretation of the same package |
modules/*.json |
Capability-specific extensions without duplicating the core system |
Stable IDs matter more than prose. An audit can cite rule.motion.partnership.identity-reveal, a recipe can point back to it, and a later package version can supersede it without silently changing what an old production meant.
Build a design MCP for your own brand
1. Establish authority and rights first
Use source priority deliberately:
- official brand manuals and licensed asset portals;
- design files and production components owned by the brand;
- current public product and marketing surfaces;
- inferred patterns, labeled as inferred rather than official.
Record source URL, retrieval date, confidence, lifecycle, permitted uses, and whether an asset may be uploaded to a model. Do not bundle proprietary fonts, customer data, private design files, or reference imagery without redistribution rights.
2. Fork the repository and replace the example package
git clone https://github.com/thenpceo/harvey-design-system-mcp.git
cd harvey-design-system-mcp
npm install
cp -R mcp/brand-package/harvey mcp/brand-package/example-brand
Replace every Harvey-specific value, rule, recipe, source, and asset. A practical final cleanup is:
rg -n -i "harvey" . \
--glob '!node_modules/**' \
--glob '!dist/**' \
--glob '!.git/**'
Do not merely recolor the example. Rebuild the package from evidence for the new brand.
3. Encode tokens, then behavior
Start with semantic tokens (color.surface.primary, not just #ffffff). Add rules with:
- a stable ID;
- authority level;
- lifecycle and confidence;
- capabilities the rule applies to;
- a testable statement; and
- source IDs that justify it.
Add recipes only after the primitives and rules exist. A recipe should describe how to compose a known output, not smuggle in undocumented design decisions.
4. Separate core truth from provider adapters
Keep volatile provider syntax outside the canonical package. The package should say what the brand requires; adapters translate that into GPT Image, fal, Kling, HyperFrames, CSS, or another renderer.
This boundary lets the brand survive tool changes:
brand package → MCP plan/audit → provider adapter → generation/composition → inspected output
5. Expose resources, tools, and prompts
A useful design MCP normally needs all three:
- Resources for identity, tokens, rules, recipes, assets, and the human guide.
- Tools that compile prompts, create UI/motion/video plans, retrieve authorized files, and audit outputs.
- Prompts that teach an agent the recommended workflow for common production intents.
Return rule IDs and package versions in outputs. That makes a generated artifact explainable and reproducible.
6. Add deterministic gates
At minimum, block:
- unsupported claims or metrics;
- missing source records;
- unlicensed logo/font/media use;
- reference-only assets used as production assets;
- likeness or customer-story ambiguity;
- paid generation without a disclosed model and cost; and
- delivery without inspection evidence.
An MCP should not say “on brand” merely because a prompt contains adjectives. It should be able to explain which constraints were applied and which evidence was checked.
7. Validate the package
npm run validate:brand
npm test
npm run build
The included validator checks package completeness, stable references, token references, schemas, asset checksums, evaluation weights, module declarations, and tool-independent core guidance.
8. Deploy Streamable HTTP
The Vercel handler at api/mcp.mjs is stateless and credential-free. After replacing the package and server naming, deploy with your preferred Vercel workflow. Your endpoint will be:
https://<your-project>.vercel.app/mcp
Keep provider credentials in the user's agent secret store. Never put them in the browser frontend, Git repository, brand package, production plan, or MCP response.
Local development
Requirements: Node.js 20+ and npm.
npm install
npm run dev
Run the MCP over local stdio:
npm run mcp:start
Example local client configuration:
{
"mcpServers": {
"harvey-design-system": {
"command": "node",
"args": ["/absolute/path/to/harvey-design-system-mcp/mcp/server.mjs"]
}
}
}
Verification
npm run validate:brand # package contract and references
npm run test:mcp # tool/resource/prompt inventory and behavior
npm run test:http-mcp # Streamable HTTP handshake
npm run test:sites # alternate hosting worker
npm run build # production frontend + server artifacts
The current example exposes 14 tools, 10 resources, and 8 prompts. Treat those counts as a versioned test fixture, not as a universal target for every brand.
Generative media and motion
The repository contains original synthetic demo imagery and footage plus an inspectable HyperFrames-style partnership composition. Brand-critical text, claims, UI, and logos remain deterministic overlays rather than being baked into generative footage.
The example MCP may recommend optional companions for production:
- fal.ai MCP for model discovery and generation;
- HyperFrames for deterministic motion composition and rendering.
Those services are independent, may incur cost, and are not called by the public website or this brand-intelligence endpoint.
Important limitations
- This repository is not an official Harvey design system.
- Public interfaces and brand details can change after the recorded research date.
- Inferred guidance must yield to any current official manual.
- The included Harvey-specific package is an educational example, not permission to publish as Harvey.
- Official marks remain subject to Harvey's current press and trademark terms.
- Proprietary Harvey font files are not bundled. The demo documents fallbacks and references public web resources, but production use requires appropriate authorization.
- Partnership names and claims in motion examples are fictional concept material unless separately sourced and approved.
License and attribution
Original code is available under the MIT License. That license does not grant rights to Harvey trademarks, third-party brand assets, fonts, public-site content, model outputs with separate terms, or any material identified as reference-only. See NOTICE.md and the rights record in media.json.
If you build your own design MCP from this project, keep the provenance and rights layer. It is part of the architecture, not paperwork to remove at the end.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。