Make your AI a shadcn expert

list_items

Dump every item on one shadcn.io surface — blocks, components, hooks, charts, themes, and more. The bulk-view tool for cataloguing.

list_items is the bulk-view counterpart to search_items. Same data source, same row shape — no query, higher default limit. Reach for it when the agent is cataloguing rather than searching.

When to use it

  • The agent is scaffolding something big (a full landing page, a component inventory) and needs to see the whole surface.
  • You're answering a "list all X" prompt.
  • You want to filter client-side after pulling the full set ("all blocks with 'dashboard' in the title").

If the user gave a keyword, prefer search_items — it's cheaper on tokens and faster to iterate.

Arguments

NameTypeRequiredDefaultNotes
typesurface enumThe surface to enumerate — see search_items for valid values
limitnumber (1–1000)500Raise to 1000 when you want the full blocks catalog

Example prompts

use shadcnio to list every hook
use shadcnio to list all themes so I can pick one for a dark-mode landing page
use shadcnio to list 1000 blocks — I want to see the full catalog

Response shape

Same row shape as search_items: { id, title, url, tag }.

{
"count": 500,
"items": [
  { "id": "/blocks/ai-agent-workflow", "title": "React AI Agent Workflow Block", "url": "/blocks/ai-agent-workflow", "tag": "blocks" },
  { "id": "/blocks/ai-agent-task-queue", "title": "React AI Agent Task Queue Block", "url": "/blocks/ai-agent-task-queue", "tag": "blocks" }
]
}

If count === limit, assume you truncated — raise limit or paginate on the client.

Manual invocation

curl -s -X POST "https://www.shadcn.io/api/mcp?token=YOUR_TOKEN" \
-H "content-type: application/json" \
-d '{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "list_items",
    "arguments": { "type": "hooks", "limit": 200 }
  }
}' | jq '.result.content[0].text | fromjson | .count'

FAQ

Was this page helpful?

Sign in to leave feedback.