should-i-render
This server is a read-only MCP assistant that recommends and evaluates measured React components and complete page templates for UI tasks.
find_component ranks up to three verified React components for a UI task, optionally filtered by pattern, style, or palette.
palette_pick returns one to three accessible WCAG AA palettes with hex roles and copyable CSS variables.
check_component gives the full verdict, skip conditions, and measured render/accessibility/bundle/bare/provider facts.
alternatives ranks same-pattern component alternatives for comparison.
install_plan details dependencies, setup notes, provider requirements, license, author credit, sources, and an exact shadcn command when supported.
skip_list surfaces failure warnings and the worst measured offenders for a pattern and optional style.
find_template ranks up to three complete page templates, excluding failed accessibility audits.
check_template returns a template's stack, license, audit status, preview, source, download, and palette variants.
template_plan provides an exact clone/setup plan and can select a built palette variant.
The server is read-only, runs locally over stdio, needs no API key/database/network, and clamps responses to roughly 500 tokens.
Click on "Deploy 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., "@should-i-render what's a good button component for a dark theme?"
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.
should-i-render
should-i-render is a read-only MCP server for choosing measured React components and complete vibecodng page templates from a curated snapshot. It answers fit questions with terse verdicts and practical adoption facts instead of returning source dumps.
The bundled snapshot currently contains the published should-i-render index, including 91 complete page templates and 435 palette variants. It runs over stdio, needs no API key, database, or network access, and clamps every text response to approximately 500 tokens.
The hosted free beta at vibecodng.com reads the live index and includes 100 tool calls per API key per UTC day. Create a key in the browser, then connect an HTTP-capable MCP client to https://vibecodng.com/mcp. Use this npm package when you want a private, offline, versioned snapshot with no quota.
Local use
{
"mcpServers": {
"should-i-render": {
"command": "node",
"args": ["/path/to/should-i-render/server.js"]
}
}
}Node 20 or newer is required. Run npm test to verify the bundled snapshot, tool metadata, structured responses, and response cap.
With npm, no checkout is needed:
{
"mcpServers": {
"should-i-render": {
"command": "npx",
"args": ["-y", "should-i-render@0.2.6"]
}
}
}The hosted service may add paid plans later for fresher data, higher quotas and team workflows. The published offline package remains available under the licenses below.
Related MCP server: Knossos MCP
Tools
find_component({task, pattern?, style?, palette?})ranks up to three verified, rendering fits over the component prose, pattern, style, and measured results. Failure warnings stay out of recommendations. Pass a palette slug to append its CSS variables.palette_pick({mood?})returns one to three curated accessible palettes with hex roles and a copyable CSS-variable block.check_component({name})returns the full verdict, skip conditions, and measured strip.alternatives({name})ranks same-pattern candidates.install_plan({name})returns dependencies, bare-harness gaps, provider requirements, setup notes, license, author credit, the measured gallery page, the upstream source, and an exact shadcn command when the source supports it.skip_list({pattern, style?})puts explicit failure warnings and the worst measured offenders first.find_template({task, category?, style?})ranks up to three complete page templates and excludes failed audits.check_template({name})returns one template's stack, license, audit status, preview, source, download, and palette variants.template_plan({name, palette?})returns an exact clone/setup plan and can select a built palette preview.
Every tool includes a title, read-only annotations, an output schema, and structured content alongside the clamped text response.
Palettes
The package bundles 24 original four-color palettes. Each palette defines accent, surface, text, and muted; every text-on-surface pair is validated at WCAG AA contrast of 4.5:1 or better. Use palette_pick with a palette slug or moods such as dark, light, pastel, neon, retro, earth, warm, cold, or mono.
:root {
--bw-accent: #E85D4A;
--bw-surface: #FFF7F1;
--bw-text: #34231F;
--bw-muted: #775F57;
}Automatic theming applies to first-party components; third-party entries need manual mapping.
What the measured strip means
RENDERS is the prepared harness mount result. A11Y is the sum of recorded axe violations. KB is the marginal gzip bundle size over the harness baseline. BARE is a second build-and-mount pass without the prepared shadcn-style helpers. PROVIDER means a missing-provider mount error was measured.
The style axis
Pattern and style answer different questions. A pattern is what the component does, such as button, calendar, carousel, or text reveal. A style is the visual world it belongs to, such as minimal-flat, brutalism, spatial, bento, or dark-futuristic. Filtering by both is useful when the interaction is fixed but the product language is not.
Styles are editorial classifications, not package capabilities. Two entries with the same pattern and style can still differ sharply in dependencies, accessibility findings, bundle cost, bare compatibility, and provider requirements.
Data
data/components.json is a point-in-time export of published component records. It contains prose, measured results, source and author credit, license metadata, pattern and style, and relative preview paths. It does not contain preview image or video bytes. data/palettes.json is the bundled palette catalog, and data/templates.json describes the public complete-template library.
Set SHOULD_I_RENDER_DATA=/path/to/components.json to test another snapshot with the same shape.
Limitations
The harness currently measures React components only.
Coverage is curated rather than an exhaustive registry crawl.
The snapshot is point-in-time; upstream component APIs and dependencies can change after export.
Harness results are controlled measurements, not production QA. They do not replace browser, design-system, accessibility, security, or user testing in your app.
Demos are written against each component's source API and drive the screenshots. A demo can cover the intended state without covering every prop, interaction, server behavior, or data-loading path.
A clean accessibility count means the recorded demo had no axe findings in this harness. It is not an accessibility certification.
Verdicts and style labels are editorial judgment grounded in the recorded measurements and source APIs.
License
Server code is MIT licensed. The compiled index metadata is CC BY 4.0 with attribution to mrkeyoor.com; individual component source projects retain their own licenses and author credit.
Contributing
Found a wrong verdict or stale component record? Open an issue.
Code changes are welcome for the MCP server and ranking logic. Keep responses inside the clamp and run
npm testbefore opening a pull request.data/components.jsonis generated from the measured vibecodng index, so data corrections should start as an issue rather than a direct edit to the snapshot.
Available Tools
9 toolsalternativesRank same-pattern alternativesARead-onlyIdempotent
Compare same-pattern candidates using their verdicts and measured harness results.
Inputs: name (required). Returns: query, source, candidates
check_componentCheck one componentARead-onlyIdempotent
Return the full verdict, skip conditions, and measured render, accessibility, bundle, bare, and provider facts.
Inputs: name (required). Returns: query, component
check_templateCheck one complete templateARead-onlyIdempotent
Return a template summary, stack, license, accessibility status, preview, source, download, and available palette variants.
Inputs: name (required). Returns: query, template
find_componentFind a measured componentBRead-onlyIdempotent
Rank up to three verified, rendering React components for a UI task using prose, pattern, style, and measured harness results. Failure warnings are excluded.
Inputs: task (required), style, palette, pattern. Returns: query, matches, palette
find_templateFind a complete page templateARead-onlyIdempotent
Rank up to three complete React page templates for a product or business task. Templates with a failed accessibility audit are excluded from recommendations.
Inputs: task (required), style, category. Returns: query, matches
install_planPlan component installationARead-onlyIdempotent
List dependencies, bare-harness gaps, provider requirements, setup notes, license, author credit, measured review URL, source URL, and an exact shadcn command when supported.
Inputs: name (required). Returns: plan, query
palette_pickPick an accessible paletteARead-onlyIdempotent
Return one to three curated four-color palettes by mood, with hex roles and copyable CSS variables.
Inputs: mood. Returns: query, palettes
skip_listFind components to skip firstARead-onlyIdempotent
Show failure warnings and the worst measured offenders in a pattern, optionally filtered by visual style.
Inputs: pattern (required), style. Returns: query, entries
template_planPlan template adoptionARead-onlyIdempotent
Return an exact clone and setup plan for a complete template, optionally selecting one of its built palette variants.
Inputs: name (required), palette. Returns: plan, query
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 9 tools
Most tools cleanly separate resource (component vs template) and action (find, check, plan, skip). The main ambiguity is between find_component and alternatives, since both rank or compare candidates using measured harness results, though one is top-N ranking and the other is explicit same-pattern comparison.
The dominant pattern is verb_noun (find_component, check_component, install_plan, skip_list, find_template, check_template, template_plan), which is predictable. Palette_pick reverses the order and alternatives is a bare noun, so there are minor deviations but no chaotic mixing of conventions.
Nine tools is a well-scoped set for a UI component/template recommendation service. Each tool covers a distinct stage in the workflow—discovery, inspection, comparison, planning, palette selection, and failure warnings—without redundancy.
The tool surface covers the full decision flow: find and compare candidates, inspect verdicts, get install/clone plans, select palettes, and view failure warnings. A minor gap is the lack of a direct tool to fetch or modify component source, though install_plan and check_template provide source URLs.
Maintenance
Related MCP Connectors
Read-only MCP server for The Quiet Protocol's engines, benchmarks, proof, and business data.
Read-only MCP server for the WebAssembly spec: instructions, types, sections, search, proposals.
Guarded MCP server for agent-readable business truth, provenance, readiness, and discovery.
Public, read-only MCP server for FarmNeural company facts, packages, and capabilities.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceRead-only MCP server for searching and listing components in Nexus Repository Manager 3 (Docker, Maven, npm, PyPI, etc.) with tools for repositories, components, Docker tags, and latest version.-
- AlicenseNot gradedqualityBmaintenanceLocal-first MCP server that scans a repository once and answers architecture questions from an evidence-backed graph, enabling dependency analysis, impact analysis, and codebase exploration without re-reading the source tree.8MIT
- AlicenseAqualityCmaintenanceRead-only MCP server that exposes a design system's tokens, components, conventions, and deprecations as queryable tools, enabling agents to look up canonical values, assess change impact, and detect hardcoded value drift.83 npmMIT
- AlicenseAqualityBmaintenanceMCP server that evaluates compatibility between exact versions of packages and runtimes using official evidence, returning structured verdicts (supported/unsupported/unknown) with sources and limitations.2MIT