getUIComponentsLABSCO SUMMARY
The category split exists because clients cap how many tools they will take.
Generating one tool per category rather than one per component is the design choice worth copying: it keeps the tool count manageable and gives the model a sensible way to narrow down. Install it as-is and you get someone else's demo registry — the value only arrives after you point it at yours.
What it is
A starter template rather than a working server. It is aimed at UI libraries that follow the shadcn registry format: point it at your registry URL, list your components by category, and it creates one tool per category so an assistant can fetch component code, usage and installation instructions.
What you get
- A tool returning every component in your registry —
getUIComponents - One tool generated per category you define, so
ButtonsbecomesgetButtonsandFormsbecomesgetForms— add a category and the tool appears - Per-component output covering implementation details, usage examples, installation instructions and related components
- Zod schemas for validation, a hot-reload dev server, and an inspect script for testing the tools interactively
- A worked real-world instance to copy from: the stackzero-labs registry server built on this template
Requirements
Node.js 18 or higher and pnpm. Your registry must follow the shadcn registry.json and /r/{component-name}.json shape. Three files to edit before it does anything for you: the config with your project and registry URLs, the category map, and the server name. The template ships pointing at a demonstration URL that you must replace. No account or key. It runs from a clone: the mcp-starter package on npm is an unrelated project, not this template.
Setup effort
Build from source — git clone https://github.com/revskill10/hello-mcp
USE CASES
Making your component library usable by a coding assistant
Point the config at your registry, group your components into categories, and the assistant can fetch real implementations and install commands instead of inventing component names.
Keeping the tool count inside a client's limit
Group components into categories rather than exposing each one — the server creates a tool per category automatically as you add them.
Adapting the template to something other than UI components
Add your own schema, an API function to fetch the items, and register the tool — the same structure works for any catalogue that is worth exposing.
1 tool
Listed in project docs. Your client may show a different list.
BEFORE YOU INSTALL
What to know first
Tools you get
1 tool named in the project's documentation. It is a template: getUIComponents is built in, and each category defined in src/lib/categories.ts adds a tool such as getButtons or getForms.
Requires
- Node.js 18 or higher
- pnpm (recommended) or npm
Where it runs
Both documented clients run the server on your machine.
INSTALLATION
Connect your client
You clone and build this one yourself.
Server setup
git clone https://github.com/revskill10/hello-mcp
cd hello-mcp
pnpm install
pnpm run buildEdit src/lib/config.ts (your project and registry URLs), the category map in src/lib/categories.ts and the server name in src/server.ts — the template ships pointing at a demonstration registry
Then point your client at the built server — <YOUR_PATH_TO_MCP_STARTER>/dist/server.js in the blocks under MCP Clients is dist/server.js in the folder you just cloned
MCP Clients
Claude Desktop, Any MCP client
{
"mcpServers": {
"<YOUR_MCP_SERVER>": {
"command": "node",
"args": [
"<YOUR_PATH_TO_MCP_STARTER>/dist/server.js"
]
}
}
}