encode-ui
This server is a read-only MCP tool that lets AI coding agents discover, explore, and install React components from the encode-ui registry (352 components). It provides:
Search: find components by name, alias, natural language, or keywords, with filters for group, type, motion, and dependency‑free status; multiple search engines (web, catalog, db) are available.
Metadata: retrieve detailed component info (description, group, categories, dependencies, license, byte sizes, install command) without fetching code.
Source code: fetch full TSX source (all shipped files) or demo usage examples.
Similar components: discover related components based on shared groups, categories, or composition.
Registry browsing: list groups with component counts and enumerate all components in a group (optional dependency‑free filter).
Install command: generate a single
npx shadcn@latest addcommand for one or more components.Icons: search, verify, resolve legacy aliases for Lucide icon names, and browse by category.
Guidance: access long‑form prompts (
use-registry,setup-project) for workflow and project setup.Token support: optional
ENCODE_UI_TOKENfor gated components.
Provides verified Lucide icon name lookup, including concept search, category browsing, and legacy alias resolution, so agents can reference correct lucide-react imports.
Click on "Install 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., "@encode-uisearch for a responsive navbar 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.
encode-ui
Component lookup over the encode-ui registry — 352 shadcn
components, served to AI coding agents over MCP. Your agent searches the catalog, reads any
component's source, and hands back the exact npx shadcn@latest add command.
It also validates a brand theme of your own: validate_theme runs the WCAG-AA clamp and
the uniqueness math the registry's 48 themes each passed, and hands back paste-ready CSS
variables.
Read-only by design. This server tells an agent what to install; installing stays on your own shadcn path, and nothing here touches your project.
Install
One stdio command. npx fetches it on first run — nothing to install or keep current:
npx -y encode-uiZero flags gives you the zero-setup web engine: it fetches the catalog from the deployed registry at startup, caches it, and falls back to a bundled copy, so startup never fails offline. Only three runtime dependencies are required — the native stack behind the semantic engine is optional, so a machine that can't build it still installs and still runs.
Claude Code
The -- is required; without it claude reads the server's flags as its own.
claude mcp add encode-ui -- npx -y encode-uiVerify with claude mcp list (→ ✔ Connected) or /mcp in a session.
Or install the plugin instead, which brings the server plus a brand-theme designer — see Plugin below. Pick one: the plugin registers the server itself, so doing both runs it twice.
Claude Desktop, Gemini CLI, and other hosts
The same JSON block works anywhere that speaks stdio MCP — Claude Desktop's
Settings → Developer → Edit Config, or ~/.gemini/settings.json:
{
"mcpServers": {
"encode-ui": {
"command": "npx",
"args": ["-y", "encode-ui"]
}
}
}Prefer this form when passing flags: they arrive as discrete args that no wrapper can
reinterpret. Restart the host completely after editing. If the server never appears in a
GUI-launched app, it likely didn't inherit your shell's PATH — use an absolute npx path.
ChatGPT is not supported: its connectors accept only remote HTTPS MCP servers, and this one is stdio.
Gated components
A few items need an account. Sign in at encode-ui.com, copy the
token from any gated item's Install tab, and put it in the registration's env block —
not on the command line, where ps can read it:
{ "env": { "ENCODE_UI_TOKEN": "eyJ…" } }Everything else works without it.
Related MCP server: @jpisnice/shadcn-ui-mcp-server
Tools
Tool | What it does |
| Component search — natural language or names |
| Metadata for one component, plus the byte size of its source and demo |
| The full TSX source, or the demo |
| Related components |
| The taxonomy with per-group counts |
| Full membership of one group — the enumeration search can't be |
| One |
| Verified lucide icon names — by concept, or to check a spelling ( |
| Your own brand theme, checked: AA clamp, per-pair contrast, distance from 48 palettes, plus paste-ready |
Every search and list hit carries pure: true when the item's whole install tree adds no
npm packages beyond the shadcn substrate you already have. search_components and
list_components take a dependencyFree filter.
Two behaviours worth knowing. Search is not an oracle of absence — for "does the registry
have X?" or "list everything in Y", enumerate with list_groups then list_components and
judge the descriptions. And a misspelt name is an error, not an empty result: it comes
back carrying the closest matches, so the agent self-corrects in one turn.
Prompts
Two slash commands carry the long-form guidance, at zero token cost until invoked:
Prompt | Slash form |
|
|
|
|
use-registry is the recurring workflow (discover → assess → install → customize);
setup-project is the one-time consumer init — the components.json namespace, the OKLCH
token contract, tw-animate-css, and a smoke test.
Plugin
Claude Code only. The plugin bundles this server together with a
brand-theme-designer agent, the two skills it drives, a slash-command shortcut that
dispatches it, slash forms of the server's two prompts, and a typed command for every
tool — so one install gives you both component lookup and a way to brand your app, all
under the /encode-ui:* umbrella:
/plugin marketplace add reuvenaor/encode-ui
/plugin install encode-ui@encode-ui-theme-genWhat you get | How you reach it |
the MCP server | registered automatically — see the caveat below |
| the shortcut: hand it a brief, it runs the agent end to end |
| designs a full brand from a brief, validates it, writes your CSS, and leaves a brand guide |
| the method: personality tuple, OKLCH role mapping, dark re-derivation, shadow knobs, uniqueness floors |
| where the tokens go in a stock |
| the component workflow — the |
| one-time consumer setup — the |
the nine tools, typed | one command per tool: |
Skills and commands are slash commands; agents are not. The agent is reached by the
shortcut above, by @agent-encode-ui:brand-theme-designer, or by just describing what
you want — there is no / form for an agent in Claude Code. The two prompt wrappers
mirror src/mcp/prompts.ts verbatim, and the command set tracks
the tool surface one-to-one; test/plugin-naming.test.ts goes red if either drifts.
Caveat — do not do both. The plugin registers the server itself. If you already ran
claude mcp add encode-ui, remove it first (claude mcp remove encode-ui), or the server
runs twice and its tools appear under two names (bare, and
mcp__plugin_encode-ui_registry__*). Under the plugin the server shows in /mcp as
plugin:encode-ui:registry, so it sorts under p — it is renamed, not missing.
Not on Claude Code? Plugins are a Claude Code format, but the pieces are not locked to
it. validate_theme is a plain MCP tool that works in any host. And the skills are
plain Agent Skills folders — copy
plugin/skills/brand-design and plugin/skills/theme-tokens into wherever your tool
reads skills from (Cursor, Codex, Copilot and others support the format). The agent
definition and its dispatcher skill are the Claude-Code-specific pieces.
Engines
--registry-engine <web|catalog|db> picks how search works. The default is fine for most
people; the other two trade setup for better ranking.
web (default) — no model, no index. Fetches the catalog from the registry, and source bodies per call. Its search is a plain filter over names, aliases and keywords, so behaviour-style discovery works best by reading the
encode-ui://catalogresource once and letting the model judge the descriptions.catalog — offline lexical ranking over the bundled index. Ranking never touches the network; source bodies still come from the origin (or a registry checkout, if one surrounds the package).
db — hybrid semantic + lexical retrieval over each component's description, full source, and demo. The strongest for vague, behaviour-style queries. Served from the
index.dbshipped in the package; the first query downloads ~1.2 GB of ONNX weights once per machine (--lexical-onlyskips the model entirely).
Configuration
Every install-time property is a flag; --help prints this to stderr. The only
configuration environment variable is ENCODE_UI_TOKEN.
Flag | Engine | Effect |
| — | Which engine serves the tools. Unset = |
| db | Path to |
| web, catalog | Origin bodies are fetched from. Default |
| catalog | Registry checkout to read source bodies from. |
| db | Where ONNX weights are cached. Default |
| db | Skip the model; FTS5-only. Results flagged |
| — | Print usage / version to stderr and exit. |
A flag the selected engine would ignore is a usage error (exit 2), same as a malformed
value — the server never warn-and-ignores something you typed deliberately. Path flags
expand ~ and resolve relative values against the server's cwd.
Gotchas
Rebuilding the index means restarting every running server. The build replaces
index.dbwith a new file, while the server opens it once and holds the handle — so a long-lived server keeps serving the deleted snapshot, silently. After a rebuild, reconnect and check that the startup banner's item count matches.Icons are data, not components. The registry ships no icon components;
find_iconsanswers from vendored lucide metadata at the exact tag the registry pins forlucide-react. Ask it rather than guessing an import.
License
MIT, Copyright (c) 2026 Reuven Naor — see LICENSE. This package ships a prebuilt
index carrying component source, some of it adapted from other MIT-licensed projects; their
notices travel with it in NOTICE.md. The bundled agent-index.json is generated
from the registry, so regenerating it is a maintainer task rather than something a clone can
reproduce.
Questions, licensing or otherwise: info@reuvenaor.com.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseAqualityDmaintenanceHelps AI assistants access shadcn/ui component documentation and examples through a TypeScript-based MCP server that provides reference information for component details, usage examples, and search capabilities.477660MIT
- AlicenseAqualityDmaintenanceA mcp server to allow LLMS gain context about shadcn ui component structure,usage and installation102,9032,932MIT
- AlicenseNot gradedqualityDmaintenanceA comprehensive template for building MCP servers that expose UI component registries and design systems to AI assistants. It enables users to browse, fetch, and retrieve implementation details from registries following the shadcn/ui format.892MIT
- AlicenseNot gradedqualityDmaintenanceThis MCP server provides tools to install and manage shadcn/ui components directly from AI coding agents.2MIT
Related MCP Connectors
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
An MCP server that gives your AI access to the source code and docs of all public github repos
Find, compare, and audit software for AI agents. Scored registry of tools and MCP servers.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/reuvenaor/encode-ui'
If you have feedback or need assistance with the MCP directory API, please join our Discord server