harvey-design-system-mcp

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.

Category
访问服务器

README

Design System MCP

An independent Harvey case study and a reusable blueprint for brand-governed AI

Live atlas MCP endpoint License: MIT

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.

A generated architectural study used by the demo

This repository demonstrates how to turn a design system into two synchronized interfaces:

  1. a visual atlas that people can browse; and
  2. 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

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:

  1. official brand manuals and licensed asset portals;
  2. design files and production components owned by the brand;
  3. current public product and marketing surfaces;
  4. 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

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选