Shadcn.io is not affiliated with official shadcn/ui
MCP Tools Reference
Deep dive into every tool the shadcnio MCP server exposes — what it does, how it's implemented, and how to invoke it manually.
The shadcnio MCP server ships 15 tools, auto-discovered by every MCP client on tools/list. Each tool has a dedicated page with its signature, response shape, internal data source, example prompts, and manual curl invocations.
Typical flow
┌─ search_items(q, type) ──┐
list_popular(type) ───┤ ├─▶ get_item ──▶ get_item_details (curated FAQ + related + opening)
│ │ ╲
list_block_categories │ │ ╲▶ get_item_source (full TSX)
└─ list_blocks_in_category ─▶ slug ───────────┤
│
└─▶ get_install_command ─▶ `shadcn add` runs with your token embedded
└─▶ get_preview_url ─▶ live iframe + docs page URLs
search_icons ─▶ get_iconAgents use get_item (lite) to browse candidates cheaply, then escalate to get_item_details (curated JSDoc) or get_item_source (full code) only for the winner. get_install_command is the final handoff — it emits a shadcn add URL with your registry token baked in, so the install runs with zero extra setup.
By category
Discovery
search_items
Fuzzy title search across every surface
list_items
Enumerate one entire surface
list_block_categories
The 56 block categories
list_blocks_in_category
Every block slug in one category
list_popular
Top downloads by analytics — battle-tested picks
Retrieval
get_item
Lightweight metadata, no source
get_item_details
Curated opening, related, and FAQ
get_item_source
Full registry JSON with source
get_preview_url
Iframe preview + docs page URLs
get_install_command
Ready-to-run shadcn add command
Icons
Utilities + Introspection
list_tools
280+ browser-only developer utilities
whoami
Email, Pro status, rate-limit remaining
get_registry_stats
Top-level counts across every surface
Manual invocation basics
Every tool can be driven by hand via JSON-RPC. The envelope is always the same:
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": "<tool-name>",
"arguments": { ... }
}
}'tools/listwith no arguments returns the full schema for all 10 tools — use this to introspect from a new client.- The
Authorization: Bearer YOUR_TOKENheader works as a fallback to the query-param token.
Rate limits
- Unauthenticated (no/invalid token): 60 requests/min per IP.
- Authenticated Pro: 600 requests/min per token.
Both return 429 with Retry-After when exceeded. Agents that blast past 600/min are almost always stuck in a loop — review the prompt.
Error shape
Tool handlers that fail validation or can't resolve a resource return MCP-standard errors inside the tool result:
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"content": [{ "type": "text", "text": "Registry item not found: nonexistent-slug" }],
"isError": true
}
}Auth failures (missing token, expired Pro, rate limit) are HTTP-level errors with JSON bodies, not MCP tool errors — they never reach the tool handler.
Was this page helpful?
Sign in to leave feedback.