Search shadcn registry items, read props and get exact install commands for React components.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
The exact shadcn CLI command that installs an item, for npm, pnpm, yarn or bun. Run it in the project's root.
The exact shadcn CLI command that installs an item, for npm, pnpm, yarn or bun. Run it in the project's root.
| Argument | Type | Description |
|---|---|---|
| name* | string | |
| type | string | |
| packageManager | string |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"minLength": 1
},
"type": {
"enum": [
"component",
"chart",
"block",
"template",
"pattern",
"hook"
],
"type": "string"
},
"packageManager": {
"enum": [
"npm",
"pnpm",
"yarn",
"bun"
],
"type": "string",
"default": "npm"
}
}
}Everything about one item: description, props, a usage example, dependencies, accessibility notes, quality checks, docs URL, registry JSON URL and install command.
| Argument | Type | Description |
|---|---|---|
| name* | string | Item name, e.g. 'marquee' or 'chart-bar-stacked'. Prefix @tealmac-pro/ for the Pro registry when a name exists in both. |
| type | string | Optional: pick the item of this type. |
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"minLength": 1,
"description": "Item name, e.g. 'marquee' or 'chart-bar-stacked'. Prefix @tealmac-pro/ for the Pro registry when a name exists in both."
},
"type": {
"enum": [
"component",
"chart",
"block",
"template",
"pattern",
"hook"
],
"type": "string",
"description": "Optional: pick the item of this type."
}
}
}The accessibility, motion, theming and SSR rules every item follows, with why each matters and how to meet it. Read them before writing UI so the first draft already passes.
No arguments.
{
"type": "object",
"properties": {}
}How many components, charts, blocks, templates, patterns and hooks exist, and the categories each is grouped into, with counts. Use a category name as the filter of list_items.
No arguments.
{
"type": "object",
"properties": {}
}List items, optionally filtered by category (a name from list_categories) and type.
| Argument | Type | Description |
|---|---|---|
| type | string | Only return this kind of item: component, chart, block (a page section), template (a whole page), pattern (a scenario built from components, such as a confirm-delete flow) or hook (a React hook). |
| category | string | Category name. |
{
"type": "object",
"properties": {
"type": {
"enum": [
"component",
"chart",
"block",
"template",
"pattern",
"hook"
],
"type": "string",
"description": "Only return this kind of item: component, chart, block (a page section), template (a whole page), pattern (a scenario built from components, such as a confirm-delete flow) or hook (a React hook)."
},
"category": {
"type": "string",
"description": "Category name."
}
}
}Search components, charts, blocks, templates, patterns and hooks by what you need, for example 'date picker', 'pricing section', 'stacked bar chart', 'modal', 'confirm before delete' or 'debounce'. Common synonyms are understood. Returns the best matches with install commands.
| Argument | Type | Description |
|---|---|---|
| type | string | Only return this kind of item: component, chart, block (a page section), template (a whole page), pattern (a scenario built from components, such as a confirm-delete flow) or hook (a React hook). |
| limit | integer | |
| query* | string | What to find. |
{
"type": "object",
"required": [
"query"
],
"properties": {
"type": {
"enum": [
"component",
"chart",
"block",
"template",
"pattern",
"hook"
],
"type": "string",
"description": "Only return this kind of item: component, chart, block (a page section), template (a whole page), pattern (a scenario built from components, such as a confirm-delete flow) or hook (a React hook)."
},
"limit": {
"type": "integer",
"default": 10,
"maximum": 50,
"minimum": 1
},
"query": {
"type": "string",
"minLength": 1,
"description": "What to find."
}
}
}