Skip to content

Your AI editor just learned shadcn/ui.

One MCP gives your agent every component, for React, Vue, Svelte and Solid, and 294k icons: live search, docs and installs, with every Pro plan.

Add shadcn.io to your AI agent. · Pro About a minute in Claude Code, Cursor or any MCP client.

Set it up

How it works: one prompt, real components

Your agent
  1. shadcn.io MCP connected · 18 tools
  2. You: Add a search icon to the navbar.
  3. Agent step: Read components/icons/Returns: Your project uses Lucide
  4. MCP call: search_icons({ query: "search" })Returns: Searched 222 libraries: Lucide, Tabler, Phosphor…
  5. MCP call: get_icon({ library: "lucide", name: "search" })Returns: React source + install command
  6. Agent step: Ran shadcn addReturns: components/icons/lucide-search.tsx
  7. Your agent: Added SearchIcon from Lucide to the navbar, so it matches the icons you already use.

In your project

Compared in 8 sets, picked Lucide

  • Lucide, picked
  • Tabler
  • Heroicons
  • Phosphor
  • Material
  • Radix
  • Font Awesome
  • Feather

Lucide Search

  • The set your other icons use
  • A typed React component

1 prompt → 2 MCP calls

Setup

Works with the editors you already use

About a minute in each, and any MCP-ready client works with the same URL. Guides for all 38 clients.

Claude Code

One terminal command

  1. Copy your MCP URL from the dashboard. It comes with every Pro plan.
  2. Run the command in your terminal.
  3. Check the connection with /mcp.

The full Claude Code guide, or every other client.

Terminal

$ claude mcp add --transport http --scope user shadcnio "https://kit.dev/api/mcp" --header "Authorization: Bearer YOUR_TOKEN"

Replace YOUR_TOKEN with your personal token. Treat it like an API key.

Cursor

A global server in settings

  1. Copy your MCP URL from the dashboard. It comes with every Pro plan.
  2. Open Settings → Cursor Settings → MCP.
  3. Add a global server, paste the config.

The full Cursor guide, or every other client.

~/.cursor/mcp.json

{
  "mcpServers": {
    "shadcnio": {
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      },
      "url": "https://kit.dev/api/mcp"
    }
  }
}

Replace YOUR_TOKEN with your personal token. Treat it like an API key.

Zed

An entry in settings.json

  1. Copy your MCP URL from the dashboard. It comes with every Pro plan.
  2. Add the shadcnio entry under context_servers.
  3. Relaunch Zed. It starts the server on launch.

The full Zed guide, or every other client.

~/.config/zed/settings.json

{
  "context_servers": {
    "shadcnio": {
      "args": [
        "-y",
        "mcp-remote",
        "https://kit.dev/api/mcp?token=YOUR_TOKEN"
      ],
      "command": "npx",
      "source": "custom"
    }
  }
}

Replace YOUR_TOKEN with your personal token. Treat it like an API key.

Claude Desktop

Paste one URL

  1. Copy your MCP URL from the dashboard. It comes with every Pro plan.
  2. Open Settings → Connectors.
  3. Add a custom connector named shadcnio.

The full Claude Desktop guide, or every other client.

Settings → Connectors

Name: shadcnio
URL:  https://kit.dev/api/mcp?token=YOUR_TOKEN

Replace YOUR_TOKEN with your personal token. Treat it like an API key.

VS Code

One file in your workspace

  1. Copy your MCP URL from the dashboard. It comes with every Pro plan.
  2. Add .vscode/mcp.json to your workspace.
  3. Approve the trust prompt on first start.

The full VS Code guide, or every other client.

.vscode/mcp.json

{
  "servers": {
    "shadcnio": {
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      },
      "type": "http",
      "url": "https://kit.dev/api/mcp"
    }
  }
}

Replace YOUR_TOKEN with your personal token. Treat it like an API key.

Windsurf

A block in Cascade's config

  1. Copy your MCP URL from the dashboard. It comes with every Pro plan.
  2. In Cascade, open MCPs → View raw config.
  3. Merge the mcpServers block and save.

The full Windsurf guide, or every other client.

~/.codeium/windsurf/mcp_config.json

{
  "mcpServers": {
    "shadcnio": {
      "headers": {
        "Authorization": "Bearer YOUR_TOKEN"
      },
      "serverUrl": "https://kit.dev/api/mcp"
    }
  }
}

Replace YOUR_TOKEN with your personal token. Treat it like an API key.

JetBrains

IntelliJ, WebStorm and more

  1. Copy your MCP URL from the dashboard. It comes with every Pro plan.
  2. Open Settings → Tools → AI Assistant → MCP.
  3. Add a server as JSON, paste the config, Apply.

The full JetBrains guide, or every other client.

Settings → Tools → AI Assistant → MCP

{
  "mcpServers": {
    "shadcnio": {
      "url": "https://kit.dev/api/mcp?token=YOUR_TOKEN"
    }
  }
}

Replace YOUR_TOKEN with your personal token. Treat it like an API key.

OpenAI Codex

CLI and IDE, one config

  1. Copy your MCP URL from the dashboard. It comes with every Pro plan.
  2. Add the block to ~/.codex/config.toml.
  3. Restart Codex, then check it with /mcp.

The full OpenAI Codex guide, or every other client.

~/.codex/config.toml

[mcp_servers.shadcnio]
url = "https://kit.dev/api/mcp?token=YOUR_TOKEN"
startup_timeout_sec = 20

Replace YOUR_TOKEN with your personal token. Treat it like an API key.

Before and after

No more AI guesswork

What changes when your agent plugs into the shadcn.io MCP.

Tokens per lookup
With MCP: ~200
30k+ without MCP
Tries per install
With MCP: 1
3–4 without MCP
Icons your agent can search
With MCP: 294k
None without MCP
  • Hallucinated output

    Without MCP: Fake props, invented APIs, wrong deps

    With MCP: Real metadata, verified dependencies

  • Context window

    Without MCP: Pasting docs burns 30k+ context tokens

    With MCP: Only what it asks for: one part's props, one demo

  • Installing components

    Without MCP: Copy URL, paste token, every time

    With MCP: One command with your token, or every file for Vue, Svelte and Solid

  • Starting a project

    Without MCP: Tailwind, aliases and theme, set up by hand

    With MCP: One call: the preset, the theme and the aliases

  • Finding an example

    Without MCP: Written from scratch, or guessed from docs

    With MCP: Search every demo for the pattern you need

  • Data freshness

    Without MCP: Months-stale training data

    With MCP: Live registry, always current

  • Your stack

    Without MCP: React and Radix, whatever your project runs

    With MCP: React, Vue, Svelte or Solid, on the primitives you use

  • Icon discovery

    Without MCP: Copy SVG markup by hand

    With MCP: Search 294k icons by meaning, then the exact import

  • See it before installing

    Without MCP: Install first, then see what you got

    With MCP: Live demos and an anatomy of every component

Stop paying for guesses. Real components, first try, with every Pro plan.

Get Pro

18 tools

The entire shadcn.io registry

Your agent searches, reads and installs every component for React, Vue, Svelte and Solid, 294k icons and 500 brands' design systems, live.

Find any component, utility or hook for your framework and primitives: the catalog by category, ranked search that knows a modal is a dialog, and search across every demo for a pattern.

list_componentsBy category

The catalog, by category

› Show me every overlay for Solid.
list_components({ category: "Overlays", framework: "solid" })

{
  "target": "Solid · Ark UI",
  "categories": [{ "category": "Overlays", … }],
  "count": 11,
  "next": "detail: true, or get_component, says what…"
}

search_componentsRanked, with aliases

Ranked search with aliases

› I need a modal for my React Aria app.
search_components({ base: "aria", limit: 3, query: "modal" })

{
  "target": "React · React Aria",
  "count": 3,
  "query": "modal",
  "results": [{ "name": "dialog", … }, …]
}

search_demosAcross every demo

Find the demo of a pattern, across every component

› Is there a demo of a date range picker I can start from?
search_demos({ query: "date range" })

{
  "target": "React · Base UI",
  "count": 10,
  "next": "get_demo({ name: \"date-input\", demo: \"…",
  "query": "date range",
  "results": [{ "name": "date-input", … }, …]
}

A component and what you need of it, in one call: its install, usage and a demo. Then only what's next: one part's props, another demo, the docs or the source.

get_componentInclude what you need

A component, and what you need of it, in one call

› Add a dialog to this page.
get_component({ include: ["install", "usage"], name: "dialog" })

{
  "name": "dialog",
  "title": "Dialog",
  "category": "Overlays",
  "target": "React · Base UI",
  "demos": ["default", …],
  "dependencies": ["@base-ui/react", …],
  "description": "A modal window that appears on top…",
  …

get_component_apiProps · Attributes · Keys

Props, data attributes, CSS variables, keyboard

› What props does the Dialog's content take?
get_component_api({ name: "dialog", part: "Content" })

{
  "name": "dialog",
  "target": "React · Base UI",
  "parts": [{ "part": "DialogContent", … }]
}

get_component_docsMarkdown

The docs page as Markdown, by section

› How do I use the Combobox in Svelte?
get_component_docs({ framework: "svelte", name: "combobox", sections: ["Usage"] })

---
title: Combobox
description: "Displays a searchable list of options."
category: Selection
---

## Usage

  …

get_guideForms · Theming · RTL

Forms, theming, colors and RTL, as Markdown

› How do I validate this form with React Hook Form?
get_guide({ sections: ["Validation"], topic: "react-hook-form" })

---
title: React Hook Form
description: "Build forms in React using React Hook Form and Zod."
---

## Validation

### Client-side
  …

get_demoReady to paste

A demo's code, ready to paste

› Give me the Calendar's range demo for Vue.
get_demo({ demo: "range", framework: "vue", name: "calendar" })

{
  "name": "calendar",
  "title": "Range",
  "target": "Vue · Ark UI",
  "code": "<script setup lang=\"ts\">\nimport { shal…",
  "demo": "range",
  "file": "calendar/example-range.vue",
  "language": "vue",
  …

A project's setup, once, then one add command with your token for any framework (several components at once): the shadcn CLI for React and Solid, shadcn-vue, shadcn-svelte. Or every file and package, without a CLI.

get_install_commandToken-embedded

The shadcn CLI command, token included

› Install the Color Picker.
get_install_command({ name: "color-picker", packageManager: "pnpm" })

{
  "name": "color-picker",
  "target": "React · Base UI",
  "command": "pnpm dlx shadcn@latest add \"https://k…",
  "next": "Adds it to the project's ui folder, with …"
}

get_install_planVue · Svelte · Solid

Every file and package an install needs

› Add the Dialog to my Vue project.
get_install_plan({ framework: "vue", name: "dialog" })

{
  "name": "dialog",
  "target": "Vue · Ark UI",
  "cssVars": { "dark": {…}, "light": {…} },
  "files": [{ "target": "lib/utils.ts", … }, …],
  "install": "npm install @ark-ui/vue @lucide/vue cn…",
  "items": ["utils", …],
  "next": "1 more file (pending): get_install_plan({…",
  …

get_project_setupPreset · Theme · Aliases

Init a project: preset, theme, aliases

› Set up a new Vite app with shadcn.io.
get_project_setup({ framework: "react", stack: "vite" })

{
  "target": "React · Base UI",
  "guide": "## Use the shadcn.io Preset\n\n### Creat…",
  "init": "npx shadcn@latest init \"https://kit.dev/…",
  "next": "Then get_install_command (or get_componen…",
  "registry": { "componentsJson": {…}, … },
  "stack": "Vite"
}

Search 294k icons across 222 libraries by meaning, then add them: the import from the set's package, or a component for your framework.

list_icon_libraries222 libraries

Every icon library, most used first

› Which icon sets do you have?
list_icon_libraries({ limit: 3, query: "material" })

{
  "count": 8,
  "libraries": [{ "name": "Material Symbols", … }, …]
}

search_icons294k icons

Search 294k icons across 222 libraries

› Find icons for the sidebar: home, settings and logout.
search_icons({ library: "lucide", queries: ["home", "settings", "logout"] })

{
  "count": 7,
  "next": "get_icon with names (one set) gives one i…",
  "results": [{ "names": ["house", …], … }, …]
}

get_iconImport or component

The import, or a component, for any framework

› Add the sidebar's icons.
get_icon({ library: "lucide", names: ["house", "settings", "log-out"] })

{
  "library": "lucide",
  "import": "import { HouseIcon, SettingsIcon, LogOu…",
  "package": "lucide-react",
  "framework": "react",
  "icons": [{ "name": "house", … }, …]
}

A real brand's design system as a DESIGN.md (colors, type, spacing and components from 500 brands) for your agent to match a look, and templates to start a project from.

search_designs500 brands

500 brands' design systems, by name, product or color

› Find me a design system like Stripe's to base our app on.
search_designs({ limit: 5, query: "fintech" })

{
  "count": 5,
  "next": "get_design({ name: \"stripe\" }) returns …",
  "query": "fintech",
  "results": [{ "name": "Stripe", … }, …]
}

get_designDESIGN.md

A brand's DESIGN.md, whole or by section

› Make this app look like Linear.
get_design({ name: "linear", sections: ["tokens"] })

{
  "name": "Linear",
  "slug": "linear",
  "categories": ["Project Management", …],
  "description": "A near-black product-focused marke…",
  "download": "https://kit.dev/design/linear/raw",
  "file": "DESIGN.md",
  "sections": ["tokens", …],
  …

search_templatesCode · Live demo

Templates to start from, by what the app is

› Is there a template I can start my SaaS dashboard from?
search_templates({ limit: 3, query: "saas dashboard" })

{
  "count": 3,
  "next": "Start from one: clone its github (premium…",
  "query": "saas dashboard",
  "results": [{ "name": "Prodexa — Productivit…", … }, …]
}

Who your agent is connected as, your plan, and how many calls are left this minute.

whoamiAccount · Limits

Who's connected, and the rate limit

› Is my MCP connection working?
whoami()

{
  "email": "you@example.com",
  "plan": "Pro",
  "rateLimit": { "limit": 600, "remaining": 598, … }
}

ROI calculator

What Pro saves you

Plug in your own numbers. Hand-coding cost is blocks × hours × rate, over a year.

  • Blocks you build per month
  • Hours per block, by hand
  • Your hourly rate

You keep

You keep $23,611 a year. Hand-coding: $24,000 a year. Pro, billed yearly: $389 a year. About 240 hours back each year.

Pricing

Get MCP with Pro

MCP comes with every Pro plan. Pick the seats you need.

4.9/5 out of 5 · 150+ reviewsfrom 150+ founders and developers.

Billed once a year in USD. Cancel anytime.

Individual

For personal projects & open source

$32instead of $49/mo

$389 billed yearly

  • How many people can use the license.Seats: 1 seat
  • Client work, SaaS products and anything you charge for.Commercial use: Personal & open source only
  • Production-ready React sections: hero, pricing, features, dashboards and more.Pro blocks: 6,000+ blocks
  • Complete multi-page sites you can ship as they are.Templates: All 14 templates
  • React icons from every major library, installable with one command.React icons: 294k+ icons
  • Presets that restyle every block, in light and dark.Themes: All 59 themes
  • Lets your AI editor search, preview and install blocks for you.MCP server: Basic usage
  • Priority requests are answered first.Support: Standard

Team

Most popular

For freelancers, agencies & startups

$66instead of $99/mo

$789 billed yearly · ≈ $13/dev/mo

Everything in Individual, plus

  • How many people can use the license.Seats: Up to 5 seats
  • Client work, SaaS products and anything you charge for.Commercial use: Included
  • Lets your AI editor search, preview and install blocks for you.MCP server: High usage
  • Priority requests are answered first.Support: Priority

Organization

For companies with larger teams

$132instead of $199/mo

$1,589 billed yearly

Everything in Team, plus

  • How many people can use the license.Seats: Unlimited seats
  • Lets your AI editor search, preview and install blocks for you.MCP server: Unlimited usage
  • Secure checkout via Stripe
  • Code lives in your repo
  • Keep what you've shipped if you cancel
  • License terms

Included in Pro

14 premium templates

Complete multi-page sites to start from, in every Pro plan.

Every template, every block. Included in every Pro plan.

Get Pro

Reviews

Devs love shadcn.io

We've been blown away by the love & support from users.

  • “Beautiful landing page design with perfect balance and flow. The color palette combined with the animations creates an exceptional user experience.”

    AOAlan Obeng-PeprahSenior Designer @ NativeXAI
  • “The templates are not just visually stunning but also incredibly well-structured. Saved us weeks of development time.”

    ABAbiola BraimahDeveloper @ Studio IX
  • “shadcn.io templates have completely transformed how we approach new client projects. The code quality is exceptional and the designs are truly world-class.”

    DGDanny G.Founder of DevStack
  • “I've used many template libraries before, but shadcn.io stands out for its attention to performance optimization and clean code architecture.”

    IDIan D.CTO at Wavelength
  • “I appreciate how modular and well-documented these components are. We've been able to mix and match pieces from different templates seamlessly.”

    GPGarrett P.Frontend Lead at TechFusion
  • “The ROI on shadcn.io templates is incredible. We've dramatically reduced our development time while delivering higher quality sites to our clients.”

    XCXavier C.Agency Owner

Ship like they do. MCP is in every Pro plan.

Get Pro

Used by 50k devs and across top universities

  • University of Washington
  • University of Illinois Urbana-Champaign
  • Arizona State University
  • Harvard University
  • UC Berkeley
  • Cornell University
  • Dartmouth College
  • Carnegie Mellon University
  • UCLA
  • UC San Diego
  • Northeastern University
  • Boston University
  • Rochester Institute of Technology
  • Worcester Polytechnic Institute
  • University of Pittsburgh
  • University of Georgia
  • University of Cincinnati
  • IE Business School
  • ESSEC Business School
  • Universidad EAFIT
  • Universitat Pompeu Fabra

FAQ

Frequently asked questions

What MCP gives your agent, how it compares to pasting docs, and how Pro access works.

Give your agent the whole registry

18 tools, every component for React, Vue, Svelte and Solid, and 294k icons, in every Pro plan: monthly, yearly or lifetime.

Get Pro