shadcn.io is an independent project built on shadcn/ui
- Group
- Blocks
- Inputs
querybase?category?framework?limit?- Access
- Read-only
When to use it
- The user wants a whole section or screen ("a pricing page", "a chat window", "a settings screen").
- Before building a section from components: a block may already be it.
Inputs
querystring
What it does: "pricing page with a yearly toggle".
base?"base" | "aria" | "ark" | "radix"
React only. Default base (Base UI).
- Type
"base" | "aria" | "ark" | "radix"
category?string
Only this category.
framework?"react" | "vue" | "svelte" | "solid"
Default react.
- Type
"react" | "vue" | "svelte" | "solid"
limit?numberExample prompts
Name the server, so the agent doesn't answer from memory:
Call and response
Asked “I need a pricing section with a monthly and yearly toggle”, the agent sends this call. The response is real, trimmed: long lists show their first items and long strings are cut.
search_blocks({ query: "pricing page with a monthly yearly toggle" }){
"categories": [
"pricing"
],
"count": 10,
"next": "get_block({ name: \"<slug>\", include: [\"install\"] }) adds one; list_blocks({ category }) shows the rest of a category.",
"query": "pricing page with a monthly yearly toggle",
"results": [
{
"category": "pricing",
"group": "Billing switches",
"line": "Three plan cards under a monthly and yearly switch that wears its saving in the header row, with prices that roll to their new amount and ea…",
"slug": "pricing-billing-toggle",
"title": "Billing Toggle Pricing",
"url": "https://kit.dev/blocks/pricing-billing-toggle"
},
{
"category": "pricing",
"group": "Plan rows",
"line": "Three plan rows for an email API, each its own band with its price and call to action in view, opening in place to list its features, with a…",
"slug": "pricing-accordion-plans",
"title": "Accordion Plans Pricing",
"url": "https://kit.dev/blocks/pricing-accordion-plans"
},
"… 8 more"
],
"target": "React · Base UI",
"total": 112
}Call it by hand
Your MCP client sends this for you. To try the tool without one, post the call yourself; the server answers in server-sent events, the result on the data: line.
What your agent reads
The server's description of search_blocks, one of the Blocks tools. Your agent reads it to decide when to call the tool:
Find blocks (whole sections and app screens) by what they do ("pricing with a yearly toggle", "kanban board"): slug, title, category and a line, best first. Then get_block adds one.
Next
- get_blockA block, and what you need of it, in one call
- list_blocksThe block catalog, by category and group
FAQ
What is a block, and how is it different from a component?
A component is one piece (a button, a dialog). A block is a finished section or screen built from components: a pricing table, a kanban board, a settings page. Search a component for a piece, a block for a whole area of a page.
Which frameworks do blocks come in?
Every block comes on all seven targets: React on Base UI, Ark UI, Radix or React Aria, plus Vue, Svelte and Solid. Pass framework and base so the links and the install match your project.