Server data from the Official MCP Registry
VaneUI React component docs and per-component prop tables for AI coding agents.
About
VaneUI React component docs and per-component prop tables for AI coding agents.
Security Report
This is a documentation-serving MCP server for VaneUI with two read-only tools (search_docs and get_component_props) that operate on bundled markdown and a prop JSON file. No network calls, shell execution, credential handling, or data exfiltration patterns were found, and its permissions (local file reads of its own resources directory) match its stated purpose. Only minor observations remain, such as the lack of authentication being appropriate for a local public documentation server and the regex search accepting user-supplied patterns without complexity limits. Supply chain analysis found 5 known vulnerabilities in dependencies (0 critical, 3 high severity). Package verification found 1 issue.
8 files analyzed · 8 issues found
Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.
Permissions Required
This plugin requests these system permissions. Most are normal for its category.
How to Install
Add this to your MCP configuration file:
{
"mcpServers": {
"io-github-vaneui-mcp": {
"args": [
"-y",
"@vaneui/mcp"
],
"command": "npx"
}
}
}Documentation
View on GitHubFrom the project's GitHub README.
@vaneui/mcp
A Model Context Protocol server that exposes the VaneUI documentation to AI coding agents. Any MCP-aware client (Claude Code, Claude Desktop, Cursor, VS Code, etc.) can read the component docs on demand and search across them with a single tool call, so your agent writes correct VaneUI code without you pasting rules into prompts by hand.
It serves the full component reference, getting-started and customization guides, and a structured prop table for every component, plus two tools: search_docs and get_component_props.
Requirements
- Node.js 24 (the
npxcommand below downloads and runs the server for you).
Quickstart
The server runs over stdio and is published to npm as @vaneui/mcp. Add it to your client with the snippets below; no local clone or build is needed.
Claude Code
claude mcp add vaneui -- npx -y @vaneui/mcp
Claude Desktop
Edit your claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"vaneui": {
"command": "npx",
"args": ["-y", "@vaneui/mcp"]
}
}
}
Restart Claude Desktop afterward.
Cursor
Add to ~/.cursor/mcp.json (global) or .cursor/mcp.json (per project):
{
"mcpServers": {
"vaneui": {
"command": "npx",
"args": ["-y", "@vaneui/mcp"]
}
}
}
VS Code
code --add-mcp '{"name":"vaneui","command":"npx","args":["-y","@vaneui/mcp"]}'
Or add to .vscode/mcp.json (note VS Code uses the servers key):
{
"servers": {
"vaneui": {
"command": "npx",
"args": ["-y", "@vaneui/mcp"]
}
}
}
Other clients
Any client that accepts a stdio MCP server works. Use npx as the command and -y @vaneui/mcp as the args, following that client's config format.
How to use it
Once the server is connected, just build with VaneUI in natural language. The agent pulls the right docs through the tools automatically:
- "Using VaneUI, build a pricing card with a title, a feature list, and a filled primary button." → the agent reads
card,list, andbuttonprops and composes them correctly. - "What's the default appearance and variant of
Chip?" →get_component_propsreturns the prop table (Chip defaults tosecondary+outline, notprimary). - "How do I set app-wide defaults for every Button?" →
search_docsfinds thetheme-defaultsguide and shows theThemeProvider themeDefaultspattern. - "Which VaneUI prop maps to
flex-1?" →search_docsfinds it in the prop-to-Tailwind mapping.
Verifying it works
After adding the server and restarting your client:
- The client should list a server named
vaneuiwith the toolssearch_docsandget_component_props(and thevaneui://docs/*resources). - To smoke-test the server directly, run
npx -y @vaneui/mcpin a terminal. It starts and waits on stdio (no output is normal for an MCP stdio server; press Ctrl+C to exit).
Tools
search_docs
Substring or regex search across the full doc corpus.
| Param | Type | Notes |
|---|---|---|
query | string | Required. Case-insensitive. |
regex | boolean | Optional. If true, query is parsed as a JavaScript regex. Defaults to false. |
Returns up to 50 hits, each containing uri, slug, lineNumber, and a short surrounding snippet. Use this before guessing prop names, defaults, or class mappings — the answer is almost always already in the docs.
get_component_props
Returns a component's boolean props as plain text, one line per category, with the default marked *. Props in one category are alternatives. The data comes from @vaneui/ui's ComponentCategories, ComponentKeys, defaultTheme, and PropDescriptions.
| Param | Type | Notes |
|---|---|---|
slug | string | Required. The component slug, matching the resource basename, e.g. button, card, icon-button, page-title. common lists the shared layout props. |
detail | "compact" | "full" | Optional. Defaults to "compact". |
The shared layout props (display, gap, justify, border, width and the rest) are the same on most components, so compact output leaves them out: it lists the component's own props, then names the shared categories the component takes and its shared defaults. Call it with slug: "common" once to get those props. full adds a description to every prop and lists the shared props too.
card boolean props. Props in one category are alternatives; * marks the default. Descriptions: call again with detail "full".
Size: xs sm md* lg xl
Appearance: primary* accent secondary tertiary success danger warning info inheritAppearance
Variant: filled outline* ghost
...
Shared layout props (get_component_props "common" lists them): Hide, Show, Items, Justify, ...
Shared defaults: flex gap column border responsiveSizing
Props that take a value, such as Field's label or Modal's title, are not boolean category props: read them in the component's doc, vaneui://docs/<slug>.
Available resources
Each documentation file is exposed as a resource named vaneui://docs/<slug>, where <slug> is the lowercased source filename minus the .md extension. All resources have mimeType: text/markdown.
Examples:
vaneui://docs/claude— VaneUI project overview.vaneui://docs/component-usage,vaneui://docs/prop-to-tailwind-mapping,vaneui://docs/component-patterns,vaneui://docs/props-and-theme,vaneui://docs/css-conventions,vaneui://docs/testing,vaneui://docs/e2e-testing,vaneui://docs/playground-examples— agent-facing rule files.vaneui://docs/installation,vaneui://docs/usage-basics,vaneui://docs/core-concepts— getting-started guides.vaneui://docs/theming-overview,vaneui://docs/using-theme-provider,vaneui://docs/theme-defaults,vaneui://docs/theme-and-override,vaneui://docs/extra-classes,vaneui://docs/customizing-styles,vaneui://docs/variant-inheritance,vaneui://docs/css-variables— customization guides.vaneui://docs/common-props— shared layout/typography prop reference.vaneui://docs/button,vaneui://docs/card,vaneui://docs/modal, ... — one per component.
Development
This section is for contributors and maintainers working on the server itself.
Sources
The doc corpus is bundled from two sibling repos at build time:
vaneui/(a checkout of vaneui/vaneui) — API reference and agent-facing rules (CLAUDE.md+.claude/rules/*.md).vaneui-web/(a checkout of vaneui/web) — narrative guides and per-component reference, authored as plain markdown underapp/docs/data/**/*.md(one file per component, with frontmatter).
Each .md file goes into resources/ keyed by its basename (filenames are globally unique, so the corpus is flat). Files from vaneui/ are copied verbatim. vaneui-web/ pages are written with their {% include "x.md" %} tags expanded through vaneui-web's own include helper (lib/docs/includes.mjs), so each resource matches the page on vaneui.com. Files and directories whose name starts with _ are partials that pages include, so they get no resource of their own. scripts/sync-component-props.ts additionally reads each component's componentKey frontmatter and joins it with @vaneui/ui's exported metadata to produce resources/component-props.json. It marks a prop as shared (isCommon) when its category is in vaneui-web/app/docs/commonCategories.ts, the same split the props tables on vaneui.com use.
Building
Everything in this repo is TypeScript. src/ compiles to dist/, which is what the npm package ships. The sync scripts in scripts/ and the tests in test/ are .ts files that Node 24 runs directly (type stripping), so they need no build step.
resources/ is committed to git, so a fresh clone already has everything the server needs to run.
npm install
npm run build # compile src/ to dist/ (tsconfig.build.json), using the committed resources/
npm run typecheck # type-check src/, scripts/ and test/ (tsconfig.json)
npm start # run the built server over stdio
Point a client at the local build with node /absolute/path/to/vaneui-mcp/dist/server.js as the command.
Testing
npm test compiles src/, type-checks the whole repo and runs the tool tests in test/ with node --test against the compiled dist/.
Re-syncing the corpus (maintainers)
The sync scripts expect vaneui/ and vaneui-web/ as sibling folders of this repo (resolved as ../vaneui and ../vaneui-web). Override with VANEUI_PATH / VANEUI_WEB_PATH env vars if they live elsewhere. Run npm install in vaneui-web/ first, because its include helper loads @vaneui/md from there. A missing or cyclic include stops the sync.
npm run build:full # re-sync resources/ from the sibling repos, then build
npm run sync— lenient sync: copies every.mdfrom both sources intoresources/and writescomponent-props.json. ⚠️ Wipesresources/first; if a sibling repo is missing you'll get a partial bundle. Preferbuild:full.npm run sync:strict— strict sync: exits non-zero if any sibling repo is missing or no MD files are found. Used byprepublishOnly.
Adding or updating a doc
- Edit (or create) the source markdown in
vaneui/orvaneui-web/:- Component reference:
vaneui-web/app/docs/data/<category>/<slug>.md(with frontmatter). - Narrative guide:
vaneui-web/app/docs/data/{getting-started,customization,reference}/. - Agent rule:
vaneui/.claude/rules/<slug>.md.
- Component reference:
npm run build:fullto regenerateresources/and recompile.- Commit the regenerated
resources/alongside the source edit, and restart your MCP client.
src/resources.ts reads the resources directory at startup, so no registry edit is needed when adding a file.
License
Reviews
No reviews yet
Be the first to review this server!
More Developer Tools MCP Servers
Rea
Freeby Morluto · Developer Tools
Reverse engineer anything from your terminal or agent with one CLI and MCP server.
Paperclip
Freeby Paperclipai · Developer Tools
Trending hip-hop artist momentum scores across four cultural dimensions.
Fetch
Freeby Modelcontextprotocol · Developer Tools
Web content fetching and conversion for efficient LLM usage
Git
Freeby Modelcontextprotocol · Developer Tools
Read, search, and manipulate Git repositories programmatically
Toleno
Freeby Toleno · Developer Tools
Toleno Network MCP Server — Manage your Toleno mining account with Claude AI using natural language.
MCP Marketplace
Freeby mcp-marketplace · Developer Tools
Search and install MCP servers from inside your AI client.
