matchcn
MCP server and semantic index that tags shadcn-format components once and matches a plain-language brief to them deterministically.
Overview
matchcn is a semantic index across shadcn-format component registries, so you can find a component by what it does rather than what it is called. Hundreds of registries publish components that npx shadcn add can install, but directory tools only search names, which does not help when you know you need 'a pricing section with three plans' but not that someone called it simple-pricing-with-three-tiers.
matchcn tags every indexed component once across seven fixed properties, including category, domain, motion, visual density and interaction model, using classifier.dev, a decision-model classification service, and commits the tags. At query time your brief is classified the same way and matched against the tags with deterministic code, so the same brief always gives the same ranking, and when nothing fits well it says so rather than returning the closest wrong answer. It ships as an MCP server with one pick_component tool for Claude Code, Codex, Cursor, VS Code and other clients, and a website at matchcn.dev.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Choice | Which category, domain, motion, density and interaction model does this component (or brief) have? | — |
How it works
- Index components from registries
- Tag each component once across fixed properties and commit tags
- Classify the user's brief the same way
- Match deterministically and rank components
- Report no match when nothing fits well
Strengths
- Deterministic, repeatable rankings
- Honest 'no good match' results
- One-command MCP install for many clients
Caveats
- Uses classifier.dev rather than Jev directly
- Fixed property set limits nuance
- Index freshness depends on re-tagging
Getting started
npx matchcn, or claude mcp add matchcn -- npx -y matchcn.At a glance
- Type
- MCP server
- Status
- beta
- Language
- TypeScript
- Runtime
- MCP server (npm)
- Has code
- yes
- Has tests
- yes
Use cases and integrations
How curated lists describe it
Semantic index across shadcn-format registries: components are tagged once across six dimensions and committed, and your brief is classified at query time to match against them. Ships as an MCP server.
MrJev/awesome-jev
Frequently asked questions
How does matching work?
Components and briefs are classified into the same fixed properties, then matched by deterministic code.
Does it use Jev?
It uses classifier.dev, a decision-model classification service, per the README.
What if no component fits?
It says so instead of returning a wrong match.
Related projects
CLI and MCP server giving coding agents Jev-powered semantic search, focused reads and list picking in about a second for about a cent.
BenchmarkbetaPythonClaude Code and Codex skill that routes a task to one of 27 specialist roles, with an optional Jev engine for catalog selection.
ProjectbetaPythonSingle MCP tool that indexes a repo and has Jev rank a shortlist so a coding agent reads the right files and lines instead of grepping.
MCP serverbetaPythonLocal long-term memory for coding agents with an optional Jev reranker that orders recalled memories.
ProjectproductionTypeScriptMCP server giving coding agents fast typed decisions (ship gates, risk checks, file triage, page checks) as accept, review or escalate.
MCP serverbetaTypeScriptDeterministic code-graph context for coding agents on Postgres, AGE and pgvector, with optional Jev or local re-selection of symbols.
MCP serverbetaPython