shadcn.exchange
Server Details
Search 12,000+ shadcn/ui blocks from 130+ registries, free and paid, with install commands.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: search_blocks finds blocks, get_block retrieves one block's details/source, list_categories enumerates section kinds, and list_registries enumerates sources. There is little risk of selecting one tool instead of another for the same task.
All four tools follow a consistent snake_case verb_noun pattern: get_block, list_categories, list_registries, search_blocks. The convention is predictable and readable.
Four tools is well-scoped for discovering and inspecting shadcn/ui blocks. Each tool supports a distinct part of the workflow: searching, detail retrieval, category browsing, and registry browsing.
The surface covers the core discovery lifecycle: search blocks, inspect details/source, list categories, and list registries. Minor gaps include no explicit browse-all/pagination or free/paid filtering, but these are workable through search and the provided result metadata.
Available Tools
4 toolsget_blockGet a shadcn/ui blockARead-onlyIdempotentInspect
Get one block's details by its id from search_blocks: what it is, its install command, the npm packages and registry items it depends on, the files it adds, and its registry's notes on using it. Set include_source to also get its source code, for when the user wants to read or adapt the code rather than install it.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The block's id from search_blocks, as registry/name, such as efferd/hero-1. Its page's address works too. | |
| include_source | No | Also give the source of its files. It can be long, and installing the block adds the files anyway. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe, idempotent read operation. The description adds useful behavioral context beyond the annotations, including the returned information and the caveat that source can be long and that installing the block adds the files anyway.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and is front-loaded with the core purpose. Every sentence earns its place: the first defines the returned details, and the second explains the optional source behavior.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only lookup tool with no output schema, the description is complete enough. It names the returned fields and explains the only optional behavior, giving an agent what it needs to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema. The description reinforces the id source and gives a decision rationale for include_source, but adds only marginal semantic detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: get one block's details by id. It also enumerates what those details include and explicitly ties the id source to search_blocks, making it distinguishable from the search/list siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly indicates that this is used with an id obtained from search_blocks and explains when to set include_source: when the user wants to read or adapt code rather than install it. It does not explicitly state when not to use this tool versus search_blocks, keeping it just below a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList block categoriesARead-onlyIdempotentInspect
List the kinds of section the blocks are sorted into, such as hero, pricing, login, dashboard and footer, with how many blocks each has. Pass one to search_blocks as its category.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description adds that each entry carries a block count, but says nothing about ordering, pagination, or whether the category list is stable — modest added context on top of annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: the first defines the resource with illustrative examples, the second states the actionable next step. Front-loaded, zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description still conveys the return shape (categories plus per-category block counts) and the intended downstream use. Nothing an agent needs to call it and act on the result is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; there is nothing for the description to disambiguate. The schema coverage is 100% and empty, consistent with the description's parameter-free call pattern.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific verb (list) and resource (block categories) and concretizes it with real examples (hero, pricing, login, dashboard, footer). An agent immediately understands the tool's output, and the closing sentence positions it relative to search_blocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states the follow-up workflow: 'Pass one to search_blocks as its category,' which tells the agent this is a discovery step that feeds a sibling tool. No when-not guidance or mention of get_block/list_registries, so not a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_registriesList shadcn registriesARead-onlyIdempotentInspect
List the public shadcn/ui registries whose blocks shadcn.exchange lists, the most blocks first, with how many of each are free and paid, what each one is, and its page. Pass a registry's id to search_blocks to search only its blocks.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Only registries with this in their id, name or description, such as dashboard or animated. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only, idempotent, and non-destructive behavior, so the bar is lower. The description still adds useful context beyond them: the result ordering by block count and the fact that free/paid counts and a page URL are included per registry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both doing work: the first packs purpose, ordering, and return contents; the second routes to the sibling tool. Slightly dense but front-loaded and free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by enumerating the returned fields, and annotations carry the safety profile. Only minor gaps remain, such as whether there is a cap on the number of registries returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is only one optional parameter and the schema documents it at 100% coverage, including examples ('dashboard or animated'). The description itself never mentions the query filter, so it adds nothing over the schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List the public shadcn/ui registries'), plus the ordering ('most blocks first') and the fields returned (free/paid counts, description, page). This clearly separates it from sibling search_blocks, which it explicitly names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives an explicit routing rule: pass a registry id to search_blocks to scope a search to that registry. It establishes the discover-then-search workflow without stating an explicit 'do not use this when…' exclusion, so it falls just short of a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_blocksSearch shadcn/ui blocksARead-onlyIdempotentInspect
Search the shadcn/ui blocks listed on shadcn.exchange: ready-made sections of a page, such as heroes, pricing tables, login forms, dashboards, footers and FAQs, from every public shadcn registry, free and paid. Use it when the user is building a page or a screen with shadcn/ui and wants a section to start from, or asks what blocks exist for something. Results come best first. Each has its id (for get_block), its description, its install command if it is free or where to buy it if it is paid, and its page with a live preview. Every word of the query has to be in a block's name, title, description or registry, so use one or two words, and the category for the kind of section.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many results to return, up to 50. | |
| price | No | free: blocks that install now with one command. paid: blocks their registries sell. any: both. | any |
| query | No | One or two words to find, such as "pricing", "sign in", "testimonials" or "bento". Leave it out to list a category or a registry. | |
| offset | No | How many results to skip, for the next page. | |
| category | No | The kind of section, from list_categories, such as hero, pricing, login, dashboard or footer. | |
| registry | No | Only this registry's blocks: its id from list_registries, such as efferd or shadcnblocks. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish this as a safe, idempotent read. The description adds real context: results are relevance-ordered ('best first'), and each result carries an id, description, install command or purchase location, and a live-preview page. The key matching rule ('every word of the query has to be in a block's name, title, description or registry') is behavior an agent cannot infer elsewhere.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The paragraph is dense and front-loaded: what it searches, then when to use, then result shape, then query constraints. The enumerated section examples (heroes, pricing tables, login forms, dashboards, footers, FAQs) partly duplicate the category enum, which is the one stretch that does not fully earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on the burden of describing return contents, and it does: ordering, id, description, install command versus where to buy, and preview page. Combined with the explicit query-matching rule and the six fully documented parameters, an agent can call this correctly on the first try.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description still contributes the AND-matching semantics of query and the advice to use 'one or two words, and the category for the kind of section', which meaningfully changes how an agent should combine query with category.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
A specific verb plus resource, with the resource itself defined: 'ready-made sections of a page' from 'every public shadcn registry, free and paid'. It also implicitly distinguishes itself from siblings by naming the block id '(for get_block)' and pointing to the category/registry fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it when the user is building a page or a screen with shadcn/ui and wants a section to start from, or asks what blocks exist for something' gives a clear trigger condition. The split from get_block (detail lookup) and list_categories/list_registries (enumeration) is only implied through field references rather than stated as an alternative, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
get_block - First observed
list_categories - First observed
list_registries - First observed
search_blocks
Related MCP Connectors
Search free React, Tailwind, and shadcn components, blocks, and dashboards; get installable source.
React components and blocks with motion. Search docs, props and shadcn install commands.
Motion-first React components for shadcn: search, read docs and get install commands.
Search and install interactive React components with unusual motion, via the shadcn CLI.
Related MCP Servers
- AlicenseAqualityAmaintenanceSearch, inspect and install Ballmac UI React + Tailwind components, blocks and templates, with props, keyboard notes and the exact shadcn install command, and plan whole pages from blocks.811MIT
- AlicenseAqualityDmaintenanceProvides AI assistants with comprehensive access to shadcn/ui v4 components, blocks, demos, and metadata across React, Svelte, Vue, and React Native, enabling efficient component integration and code generation.102,669 npmMIT
- FlicenseAqualityDmaintenanceProvides AI assistants with direct access to shadcn/ui components and blocks, enabling real-time fetching of component source code, documentation, and implementation examples.419 npm4-
- AlicenseAqualityDmaintenanceProvides coding agents live access to shadcn-style component registries, enabling them to search, compare, and fetch real component source code for UI composition.533 npm5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.