Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

MCP

list_components

List every shadcn component for one framework and base, grouped by category. Add detail when you need each item's description and kind.

Inputs
base?category?detail?framework?kind?
Access
Read-only

When to use it

  • To see everything for one framework and base before picking.
  • To list one category, or only the utilities or hooks (kind).

Inputs

InputType
base?"base" | "aria" | "ark" | "radix"

React only. Default base (Base UI).

Type
"base" | "aria" | "ark" | "radix"
category?string

One category: Overlays.

detail?boolean

Each item's description and kind. Default: names by category.

framework?"react" | "vue" | "svelte" | "solid"

Default react.

Type
"react" | "vue" | "svelte" | "solid"
kind?"component" | "utility" | "hook"

Only these.

Type
"component" | "utility" | "hook"

Example prompts

Name the server, so the agent doesn't answer from memory:

Prompts
use shadcnio to list every overlay for Solid
use shadcnio to list the hooks

Call and response

Asked “Show me every overlay for Solid”, the agent sends this call. The response is real, trimmed: long lists show their first items and long strings are cut.

Call
list_components({ category: "Overlays", framework: "solid" })
Response
{
  "categories": [
    {
      "category": "Overlays",
      "names": [
        "action-bar",
        "alert-dialog",
        "… 9 more"
      ]
    }
  ],
  "count": 11,
  "next": "detail: true, or get_component, says what each is.",
  "target": "Solid · Ark UI"
}

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.

Terminal
Sign in to get your config
Sign in with a Pro account, and this holds your MCP URL, ready to paste.

What your agent reads

The server's description of list_components, one of the Discover tools. Your agent reads it to decide when to call the tool:

tools/listlist_components.description
The catalog for a target: names by category (a few hundred tokens), or with detail each one's description and kind. Narrow by category or kind.

Next

FAQ

What does list_components return if I don't pass detail?

Names by category: the whole catalog for a target in a few hundred tokens. detail: true adds each one's title, description and kind.

Why does a component have a note?

With detail, an item that doesn't come on the base you asked for has a note: the tools use its main version, which works in any React project.