Skip to content

shadcn.io is an independent project built on shadcn/ui

MCP

list_blocks

List the shadcn block categories, or every block in one category by group. Add detail for each block's description, then get_block adds one.

Group
Blocks
Inputs
base?category?detail?framework?group?
Access
Read-only

When to use it

  • To see which kinds of section and screen exist before picking.
  • To browse one category's groups and compare its variants.

Inputs

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

React only. Default base (Base UI).

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

One category: its groups and blocks. Default: every category.

detail?boolean

Each block's one-line description.

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

Default react.

Type
"react" | "vue" | "svelte" | "solid"
group?string

With category: only this group.

Example prompts

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

Prompts
use shadcnio to list the kanban blocks
use shadcnio to show the block categories

Call and response

Asked “What kanban boards are there?”, the agent sends this call. The response is real, trimmed: long lists show their first items and long strings are cut.

Call
list_blocks({ category: "kanban" })
Response
{
  "category": "kanban",
  "count": 100,
  "groups": [
    {
      "blocks": [
        {
          "slug": "kanban-agile-board",
          "title": "Agile Sprint Board Kanban"
        },
        {
          "slug": "kanban-developer-sprints",
          "title": "Developer Sprints Kanban"
        },
        "… 5 more"
      ],
      "count": 7,
      "id": "sprints",
      "line": "Stories across columns with points, capacity and a backlog to pull from.",
      "name": "Sprint boards"
    },
    {
      "blocks": [
        {
          "slug": "kanban-changelog-pipeline",
          "title": "Changelog Pipeline Kanban"
        },
        {
          "slug": "kanban-dependency-board",
          "title": "Dependency Board Kanban"
        },
        "… 6 more"
      ],
      "count": 8,
      "id": "gates",
      "line": "A change moves forward only when its checks, blockers or notes say it can.",
      "name": "Pipelines and gates"
    },
    "… 13 more"
  ],
  "kind": "app",
  "line": "Kanban sections: boards with columns, cards, keyboard moves, limits and filters.",
  "next": "get_block({ name }) has a block's install, faq and links; its page is /blocks/<slug>.",
  "target": "React · Base UI",
  "title": "Kanban"
}

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_blocks, one of the Blocks tools. Your agent reads it to decide when to call the tool:

tools/listlist_blocks.description
The block catalog: the categories (kind, count, one line), or with category its groups and blocks. detail adds each block's description.

Next

FAQ

What does list_blocks return without a category?

The categories, each with its kind (marketing or app), how many blocks it holds and a line on what it is: a few hundred tokens for the whole catalog.

What does a category return?

Its groups (the families a gallery sorts blocks into, with a line and a count), each with its blocks' slug and title. group narrows to one, detail adds a line per block.