by nikolas-sapa
A catalog of 223 ready‑to‑use React components that can be installed as plain source files, with built‑in Tailwind v4 theming and an optional MCP server for programmatic discovery and installation.
Ns Ui offers a curated collection of React UI components split into a production‑focused core set (183 components) and a flashy loud set (35 components). Each component is shipped as source code, eliminating runtime package dependencies, and is validated by a Playwright gate that ensures interactive quality and accessibility.
npx shadcn add https://design.helpmarq.com/r/<component-name>.json
The command drops components/ui/<name>.tsx into your repo and installs any npm dependencies required by the component.npx @nikolas.sapa/ns-ui add <component-name>
Additional commands (search, list, info, categories) let you explore the catalog from the terminal.npx -y @nikolas.sapa/ns-ui-mcp
The server exposes endpoints such as search_components, get_component, list_categories, install_command, and get_conventions.GET https://design.helpmarq.com/llms.txt
Use llms-full.txt for detailed behavioral descriptions.core for restrained production UI, loud for experimental showcases.npx shadcn add workflow.Q: Do I need to add a dependency on ns-ui?
A: No. Components are added as plain .tsx files, so there is no runtime package to keep in sync.
Q: Which React version is required? A: Any version compatible with Next.js 13+ and Node 22.18 or newer.
Q: How are accessibility issues handled? A: The verification script fails components that lack accessible names, proper ARIA states, or keyboard navigation, ensuring only compliant components are published.
Q: Can I customize the installed component code? A: Absolutely. Since the source is copied into your repo, you can edit props, styles, or logic as needed.
Q: What is the purpose of the MCP server? A: It provides a programmatic interface for agents or tooling to search the catalog, retrieve full component source, and get install commands without manual HTTP fetches.
Q: How do I contribute a new component?
A: Add a folder with component.tsx, demo.tsx, and meta.json; registration is automatic via the repository scripts. See CONTRIBUTING.md for details.
218 React components you install by URL, no package to depend on. Every one is built around a single interaction and gated by a Playwright suite that refuses to pass a component whose hover looks identical to its resting state.
Two collections. core (183) is restrained and production-facing, Geist-dark.
loud (35) is a deliberately flashy showcase.
Browse them live at design.helpmarq.com.
![]() |
![]() |
| particle-hero — a field that answers the cursor | pressure-front — contour lines that bunch toward the CTA |
![]() |
![]() |
| caustic-coverflow — drag to scrub, flick for momentum | ridge-walk — pick a point on a pareto frontier |
![]() |
![]() |
| crack-compare — the before/after divider is a fracture | knockout-404 — type carved out of the surface |
Any shadcn-configured project, zero config:
npx shadcn add https://design.helpmarq.com/r/<name>.json
That drops the source at components/ui/<name>.tsx and installs the
component's npm dependencies. There is no ns-ui package and nothing to keep
in sync. The code is yours to edit.
New project:
npx shadcn init -d
npx shadcn add https://design.helpmarq.com/r/caustic-coverflow.json
GET https://design.helpmarq.com/llms.txt
One fetch returns the whole catalog as plain text: every component, its props, the situation it suits, and its exact install command. No tool definitions, no pagination. An agent that can make an HTTP request can pick the right component and install it in two steps.
llms-full.txt at the same origin adds the full behavioral description per
component, hand-written rather than derived from tags, for the cases where
several components share a UI role and a model has to tell them apart.
/registry.json serves the standard shadcn registry index for tools that
expect it.
Prefer tools over a one-time fetch (an agent working across a whole session,
not just picking one component up front)? mcp/ is an MCP server
over the same catalog — search_components, get_component (full prop
signature + real source), list_categories, install_command, and
get_conventions (the token/theming contract). npx -y @nikolas.sapa/ns-ui-mcp,
stdio transport, per-client config at
design.helpmarq.com/connect or
mcp/README.md.
There's also a thin CLI, cli/ (@nikolas.sapa/ns-ui): npx @nikolas.sapa/ns-ui add <name> installs a component, search/list/info/
categories cover the rest of the catalog from a terminal. See
cli/README.md.
scripts/verify.ts is why the registry stays small. It drives every component
through headless Chromium, screenshots each state against each theme, and
hard-fails on:
role=switch|checkbox|radio
without aria-checked, a visible dialog with no accessible name, or controls
Tab cannot reachoverflow: hidden, caught by hit-testing the opened element rather than
measuring its boxThe screenshots it produces are committed, so the claims above are auditable in the repo rather than asserted here.
npm install
npm run dev # / lists components, /preview/<name> renders one
npm run verify # the gate, in another shell, with dev running
Node 22.18 or newer.
Copy .env.example to .env and fill in what you need. Everything is
optional locally — the app still runs and the email form still renders, it
just returns an error on submit if the EmailOctopus vars are unset.
| Variable | Purpose |
|---|---|
NEXT_PUBLIC_REGISTRY_ORIGIN |
Overrides the public origin install commands and llms.txt resolve against. Defaults to https://design.helpmarq.com. |
EMAILOCTOPUS_API_KEY |
Bearer key for the EmailOctopus v2 API, used by the email capture form (lib/actions/subscribe.ts). Server-only, never exposed to the client. |
EMAILOCTOPUS_LIST_ID |
The EmailOctopus list contacts are added to. |
Adding a component means creating a folder with
component.tsx, demo.tsx and meta.json; registration is automatic. See
CONTRIBUTING.md, and AGENTS.md if you are an
agent working inside this repo.
MIT. See LICENSE.
Please log in to share your review and rating for this MCP.
Explore related MCPs that share similar capabilities and solve comparable challenges
by modelcontextprotocol
A Model Context Protocol server for Git repository interaction and automation.
by zed-industries
A high‑performance, multiplayer code editor designed for speed and collaboration.
by modelcontextprotocol
Model Context Protocol Servers
by modelcontextprotocol
A Model Context Protocol server that provides time and timezone conversion capabilities.
by cline
An autonomous coding assistant that can create and edit files, execute terminal commands, and interact with a browser directly from your IDE, operating step‑by‑step with explicit user permission.
by upstash
Provides up-to-date, version‑specific library documentation and code examples directly inside LLM prompts, eliminating outdated information and hallucinated APIs.
by daytonaio
Provides a secure, elastic infrastructure that creates isolated sandboxes for running AI‑generated code with sub‑90 ms startup, unlimited persistence, and OCI/Docker compatibility.
by continuedev
Enables faster shipping of code by integrating continuous AI agents across IDEs, terminals, and CI pipelines, offering chat, edit, autocomplete, and customizable agent workflows.
by github
Connects AI tools directly to GitHub, enabling natural‑language interactions for repository browsing, issue and pull‑request management, CI/CD monitoring, code‑security analysis, and team collaboration.
{
"mcpServers": {
"ns-ui": {
"command": "npx",
"args": [
"-y",
"@nikolas.sapa/ns-ui-mcp"
],
"env": {}
}
}
}claude mcp add ns-ui npx -y @nikolas.sapa/ns-ui-mcp