yamanahlawat/mcp-server-untitled-ui
About
Offline MCP server for Untitled UI components. No API keys, no remote calls at runtime, no rate limits.
Details
- Author
- yamanahlawat
- Categories
- Developer Tools, Design
Jump to
CLI Options & Manual Setup (Optional)
If you want to manually run the download/index setup or rebuild the local cache, you can run the server directly in your terminal:
npx mcp-server-untitled-ui [options] Options: --setup Download/rebuild index only and exit (useful for CI/CD or pre-setup) --rebuild Force re-download from GitHub and rebuild index --ttl <days> Days before the index is automatically refreshed on startup (default: 7) --no-auto-refresh Disable automatic index refresh on startup --version Print server version --help Show this help menu
When the server starts (either manually or via an MCP client) for the first time, it will:
- Download the latest component tarball from GitHub (untitleduico/reactanduntitleduico/icons).
- Extract them to a temporary directory.
- Parse and index component.tsx/.tsfiles (ignoring stories, tests, and pure utility modules), indexing.demo.tsxfiles separately as usage examples that are matched back to the components they actually render.
- Save the generated search index to~/.mcp-server-untitled-ui/index.json.
- Start the stdio MCP server.
Subsequent starts run the server instantly using the local index.
The server tracks when the index was built (generatedAt). On each startup it compares the index age against a TTL (default:7 days). If the index is older than the TTL, it silently re-downloads and rebuilds the index before starting — keeping your component library current without any user action.
# Rebuild if the index is older than 14 days npx mcp-server-untitled-ui --ttl 14 # Never auto-refresh (serve the cached index indefinitely) npx mcp-server-untitled-ui --no-auto-refresh
The TTL can also be set persistently via theMCP_SERVER_UNTITLED_UI_REFRESH_DAYSenvironment variable (seeEnvironment Variablesbelow).
The following environment variables can be used to customize server behaviour without passing CLI flags:
Example — store the index in a project-local cache:
MCP_SERVER_UNTITLED_UI_DATA_DIR=./.cache/untitled-ui npx mcp-server-untitled-ui
The server is split into two layers, each chosen to avoid Untitled UI's remote rate limits:
- Search & reference — local cache.Component source, props, dependencies, examples, and icons are served from a local index built once from the public GitHub repos. Browsing and searching never touch a remote API, so there are no keys, no rate limits, and no per-call latency.
- Installation — official CLI.When you actually want a component in a real project,get_install_commandhands off to the officialuntitleduiCLI. You get the supported, up-to-date install path, and dependency resolution is the CLI's job — not ours.
- Inline the source— useget_component,get_component_examples, andget_component_dependenciesto read the code and have the assistant write it (and the internal imports it lists) into your project directly.
- Install via the CLI— useget_install_commandto getnpx untitledui@latest add <name> --yes. Running it copies the component into your project along with every dependency the CLI determines it needs. The--yesflag runs non-interactively (suitable for AI agents and CI).
Note on names:component names in this server are derived from file paths (kebab-case, e.g.date-picker). The official CLI resolves names against its own curated registry, which is largely the same but not identical — some internal sub-components (e.g.avatar-label-group) aren't separately installable and come in as part of their parent component group. If the CLI reports "No components found", install the parent component instead.
Enables client side resource browsing for components without requiring tool calls:
- untitled-ui://components— JSON array of all component categories with counts.
- untitled-ui://components/{category}— JSON array of components under the specified category.
- untitled-ui://components/{category}/{name}— Full raw TypeScript source code of a specific component.
- untitled-ui://icons— JSON list of all icons.
Provides templated workflows to assist LLMs in building UI screens:
- build_component(description): Emits system context and matches existing components relevant to the UI screen you want to build.
- map_design_to_components(design_description): Guides the LLM to break a visual design description into logical sections and map them to Untitled UI components.
- component_usage(component_name): Generates imports, props descriptions, and a complete usage example for a component.
This project uses Node.js's native test runner. You can execute the test suites by running:
To run the server locally during development:
To force a rebuild of the index locally:
This project is licensed under theMIT License.
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Create crafted UI components inspired by the best 21st.dev design engineers.
AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform
Get access to MCP server SVG and MCP server PNG icons in your vibe-coding projects
An MCP server that allows AI assistants to interact with Adobe After Effects.
The industry-standard doctrine for safe, observable, and steerable AI agent UX — browse 10 principles, curated examples, and application guides via MCP.
Assists with aki-ui component development and usage.
745+ CSS3 animations and 9,000+ real SVG icons for AI coding agents. 10 MCP tools. Zero-clone setup via npx.
Access comprehensive documentation for Ant Design components, including examples, API references, and best practices.
Provides instant access to Apple's Human Interface Guidelines, with content auto-updated periodically.
Offline MCP server for Untitled UI components. No API keys, no remote calls at runtime, no rate limits.
The offline Model Context Protocol (MCP) server for Untitled UI.No API keys. No remote calls at runtime. No rate limits. Downloads components from GitHub once, builds a local index, and serves it locally forever.
This MCP server provides access to Untitled UI component source code, interfaces/props, dependencies, and icons, complete with fuzzy-search capabilities, pre-built workflow prompts, and browsable resources.
- 100% Offline at Runtime: Downloads and indexes the Untitled UI components and icons on the first run. Subsequent server startups are instant and completely local.
- Cascading Fuzzy Search: Rich scoring algorithm for components based on name, exports, subcategory, and path.
- TypeScript Interface/Props Extraction: Dynamically parses TypeScript interface and type declarations from the components so the LLM gets exact prop types.
- Internal Dependency Analysis: Reveals a component's internal Untitled UI imports — handy when inlining source directly (the official CLI install resolves dependencies on its own).
- Usage Examples & Official Install Command: Surfaces real.demo.tsxusage examples, and emits the official Untitled UI CLI command (npx untitledui@latest add <name> --yes) to drop a component straight into your project — the CLI resolves every dependency for you.
To use this server with your AI assistant, add it to your client's configuration file. The server will automatically download the components and build the search index on its first run.
Add this to yourclaude_desktop_config.json:
{ "mcpServers": { "untitled-ui": { "command": "npx", "args": ["-y", "mcp-server-untitled-ui"] } } }
- Go toSettings>Features>MCP.
- Click+ Add New MCP Server.
- Fill in:
- Name:untitled-ui
- Type:command
- Command:npx -y mcp-server-untitled-ui
Configure using the standard stdio protocol pattern by executingnpx -y mcp-server-untitled-ui.
CLI Options & Manual Setup (Optional)
If you want to manually run the download/index setup or rebuild the local cache, you can run the server directly in your terminal:
npx mcp-server-untitled-ui [options] Options: --setup Download/rebuild index only and exit (useful for CI/CD or pre-setup) --rebuild Force re-download from GitHub and rebuild index --ttl <days> Days before the index is automatically refreshed on startup (default: 7) --no-auto-refresh Disable automatic index refresh on startup --version Print server version --help Show this help menu
When the server starts (either manually or via an MCP client) for the first time, it will:
- Download the latest component tarball from GitHub (untitleduico/reactanduntitleduico/icons).
- Extract them to a temporary directory.
- Parse and index component.tsx/.tsfiles (ignoring stories, tests, and pure utility modules), indexing.demo.tsxfiles separately as usage examples that are matched back to the components they actually render.
- Save the generated search index to~/.mcp-server-untitled-ui/index.json.
- Start the stdio MCP server.
Subsequent starts run the server instantly using the local index.
The server tracks when the index was built (generatedAt). On each startup it compares the index age against a TTL (default:7 days). If the index is older than the TTL, it silently re-downloads and rebuilds the index before starting — keeping your component library current without any user action.
# Rebuild if the index is older than 14 days npx mcp-server-untitled-ui --ttl 14 # Never auto-refresh (serve the cached index indefinitely) npx mcp-server-untitled-ui --no-auto-refresh
The TTL can also be set persistently via theMCP_SERVER_UNTITLED_UI_REFRESH_DAYSenvironment variable (seeEnvironment Variablesbelow).
The following environment variables can be used to customize server behaviour without passing CLI flags:
Example — store the index in a project-local cache:
MCP_SERVER_UNTITLED_UI_DATA_DIR=./.cache/untitled-ui npx mcp-server-untitled-ui
The server is split into two layers, each chosen to avoid Untitled UI's remote rate limits:
- Search & reference — local cache.Component source, props, dependencies, examples, and icons are served from a local index built once from the public GitHub repos. Browsing and searching never touch a remote API, so there are no keys, no rate limits, and no per-call latency.
- Installation — official CLI.When you actually want a component in a real project,get_install_commandhands off to the officialuntitleduiCLI. You get the supported, up-to-date install path, and dependency resolution is the CLI's job — not ours.
- Inline the source— useget_component,get_component_examples, andget_component_dependenciesto read the code and have the assistant write it (and the internal imports it lists) into your project directly.
- Install via the CLI— useget_install_commandto getnpx untitledui@latest add <name> --yes. Running it copies the component into your project along with every dependency the CLI determines it needs. The--yesflag runs non-interactively (suitable for AI agents and CI).
Note on names:component names in this server are derived from file paths (kebab-case, e.g.date-picker). The official CLI resolves names against its own curated registry, which is largely the same but not identical — some internal sub-components (e.g.avatar-label-group) aren't separately installable and come in as part of their parent component group. If the CLI reports "No components found", install the parent component instead.
Enables client side resource browsing for components without requiring tool calls:
- untitled-ui://components— JSON array of all component categories with counts.
- untitled-ui://components/{category}— JSON array of components under the specified category.
- untitled-ui://components/{category}/{name}— Full raw TypeScript source code of a specific component.
- untitled-ui://icons— JSON list of all icons.
Provides templated workflows to assist LLMs in building UI screens:
- build_component(description): Emits system context and matches existing components relevant to the UI screen you want to build.
- map_design_to_components(design_description): Guides the LLM to break a visual design description into logical sections and map them to Untitled UI components.
- component_usage(component_name): Generates imports, props descriptions, and a complete usage example for a component.
This project uses Node.js's native test runner. You can execute the test suites by running:
To run the server locally during development:
To force a rebuild of the index locally:
This project is licensed under theMIT License.
This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.
Create crafted UI components inspired by the best 21st.dev design engineers.
AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform
Get access to MCP server SVG and MCP server PNG icons in your vibe-coding projects
An MCP server that allows AI assistants to interact with Adobe After Effects.
The industry-standard doctrine for safe, observable, and steerable AI agent UX — browse 10 principles, curated examples, and application guides via MCP.
Assists with aki-ui component development and usage.
745+ CSS3 animations and 9,000+ real SVG icons for AI coding agents. 10 MCP tools. Zero-clone setup via npx.
Access comprehensive documentation for Ant Design components, including examples, API references, and best practices.
Provides instant access to Apple's Human Interface Guidelines, with content auto-updated periodically.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





