Skip to content
shadcn.io

shadcn.io is not affiliated with official shadcn/ui

MCP

Troubleshooting

Fix a shadcn MCP connection that fails, a 401 or 403, or an agent that never calls the tools. Start by calling whoami yourself.

Check it by hand

Before changing your editor's config, call the server without it. This asks whoami who you are:

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

An answer on the data: line, with your email, means your URL works: the problem is in the client's config. An error tells you which of the sections below applies.

It doesn't connect

  • Copy the whole URL, ?token= and all, from your dashboard. A URL cut at the ? connects to nothing.
  • Restart the client, or reload its servers, after editing its config: most read it once at startup.
  • Check the transport. The server speaks MCP over HTTP. A client that only runs local servers needs the bridge: npx -y mcp-remote <your URL>, which also needs Node.js.
  • Check the network. Behind a proxy or a firewall, the client needs HTTPS access to this site.

401 Unauthorized

The token is missing, or it isn't valid. Copy your URL again from your dashboard and replace it in every config: once you regenerate your token, the old URL stops working everywhere.

403 Pro required

The account behind the token has no Pro. The MCP comes with every Pro plan; your URL works again within a few minutes of Pro starting, with no config to change.

429 Too Many Requests

You've passed 600 calls a minute on your token. Wait a minute: the response's Retry-After header says how long. A prompt takes a handful of calls, so this usually means an agent stuck in a loop.

The same 429 comes from too many refused calls (no token, or a wrong one) from one network. Fix the token, then wait a minute.

The agent doesn't use the tools

  • Name the server in your prompt: use shadcnio to…. See Prompting.
  • Check that its tools are on. Some clients list each server's tools with a switch, and some cap how many tools they load across every server: turn off the servers you aren't using.
  • Use agent mode where the client has one (Copilot Chat, Qodo Gen): plain chat may not call tools at all.

The output is too large

A whole docs page, or the install plan of a big component, can pass a client's limit. Ask for less: one part's props (get_component_api with part or prop), one demo, a docs section, and for a plan, have with what the project already has. In Claude Code, you can also raise the limit:

MAX_MCP_OUTPUT_TOKENS=50000 claude

It used the wrong framework or primitives

Your agent reads them from package.json. If it can't (a chat app, a monorepo's root), say it in the prompt: "for Vue", "on Radix". When a component doesn't come on your base, the tools fall back to one it does, and say so in the response's note. See Frameworks and bases.

The install command fails

  • 401 from the CLI: the token in the command is the one in your MCP URL. Regenerated it? Ask your agent for the command again.
  • No components.json: the project isn't set up yet. Ask your agent to set it up (get_project_setup has the init command), then run the command again.
  • Files in the wrong folder: the CLI follows your components.json aliases. For Vue, Svelte and Solid, the plan's paths assume @/components/ui, @/lib and @/hooks: ask your agent to adjust them to your aliases.

Still stuck? Each setup guide has its client's own FAQ.

FAQ

How do I tell a bad URL from a bad config?

Call whoami with curl, as on this page. An email on the data: line means the URL works and the client config is wrong. An error tells you which section below applies.

What does 401 Unauthorized mean?

The token is missing or no longer valid. Copy the URL again from your dashboard. After you regenerate a token, the old URL stops everywhere.

What does 403 Pro required mean?

The account has no Pro. The MCP comes with every Pro plan. The same URL works again within a few minutes of Pro starting.

Why isn't my agent calling the tools?

Name the server: use shadcnio to…. Turn on its tools, and use agent mode where the client has one. Plain chat often never calls tools.

Why did it install the wrong framework?

It reads package.json. A chat app or a monorepo root may not show the app's dependencies. Say "for Vue" or "on Radix" in the prompt.