gravityui-reference-mcp
by antonskiter
README.md
# gravityui-reference-mcp
An MCP (Model Context Protocol) server providing AI-optimized access to the [Gravity UI](https://gravity-ui.com) design system — 34 libraries, 1351 entities, 19 recipes. Pre-ingested data is included, so the server works offline with no setup beyond `pnpm install`.
## Tools
The server exposes 3 tools:
**find** — Search by intent across all entity types. Describe what you need in plain language.
- `query` (required) — e.g. "date picker", "sidebar navigation", "toast notification"
- `type` (optional) — filter by entity type: "component", "hook", "utility", "asset", "token-set", "config-doc", "guide"
**get** — Deep dive into one entity, recipe, or the system overview.
- `name` (required) — entity name ("Button"), recipe id ("confirmation-dialog"), or "overview"
- `detail` (optional) — "compact" (default) or "full"
**list** — Browse entities with orthogonal filters.
- `type` (optional) — "component", "hook", "utility", "asset", "config-doc", "guide", "token-set"
- `category` (optional) — "actions", "ai", "data-display", "feedback", "forms", "layout", "navigation", "overlays", "typography", "utility"
- `library` (optional) — e.g. "uikit", "aikit", "navigation"
## Setup
```bash
pnpm install
```
## Usage
### Local setup
1. Clone and install:
```bash
git clone https://github.com/antonskiter/gravityui-reference-mcp.git
cd gravityui-reference-mcp
pnpm install
```
2. Verify the server starts:
```bash
pnpm serve
```
Press `Ctrl+C` to stop. The server communicates over stdio.
### With Claude Code
Register globally:
```bash
claude mcp add gravityui-docs -s user -- npx tsx /absolute/path/to/gravityui-reference-mcp/src/server/server.ts
```
Or per-project:
```bash
claude mcp add gravityui-docs -- npx tsx /absolute/path/to/gravityui-reference-mcp/src/server/server.ts
```
Verify:
```bash
claude mcp list
# gravityui-docs: ... - Connected
```
> Use the absolute path to `src/server/server.ts`.
### With Cursor
Create `.cursor/mcp.json` in your project root (or `~/.cursor/mcp.json` globally):
```json
{
"mcpServers": {
"gravityui-docs": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/gravityui-reference-mcp/src/server/server.ts"]
}
}
}
```
Restart Cursor or reload MCP servers from Settings > MCP.
### Try it
Ask your AI assistant:
> I need a date range picker for a booking form
It will use `find` to discover DatePicker, then `get` to retrieve props and examples.
## Data Pipeline
Three-step pipeline for updating data from vendor submodules:
```bash
pnpm run update-submodules # pull latest vendor/ sources
pnpm run extract # per-library LLM extraction -> data/entities/*.json
pnpm run overview # ecosystem overview + categories -> data/overview.json
pnpm run validate # Zod schema + cross-reference checks
```
## Data Model
All public-facing things in the ecosystem are **entities** with a unified schema:
- **component** — React components with props, examples, import statements
- **hook** — React hooks with signature, parameters, return type
- **utility** — Functions, classes, constants
- **asset** — Icons and illustrations
- **token-set** — Design tokens (spacing, breakpoints)
- **config-doc** — Shared configs (eslint, tsconfig, prettier)
- **guide** — Conceptual documentation (i18n-react, nodekit overview)
Plus **recipes** — hand-maintained UI patterns (confirmation dialog, dashboard layout, form validation, etc.).
## Scripts
- `pnpm serve` — Start the MCP server (stdio, dev mode)
- `pnpm build` — Compile TypeScript
- `pnpm test` — Run tests (Vitest)
- `pnpm test:watch` — Watch mode
- `pnpm run extract` — Per-library LLM entity extraction
- `pnpm run overview` — Generate ecosystem overview
- `pnpm run validate` — Validate data with Zod schemas
- `pnpm run update-submodules` — Update vendor git submodules
## License
MIT. Documentation in `data/` is sourced from [Gravity UI](https://github.com/gravity-ui) repositories (MIT licensed).
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues