21st.dev

MCP server by 21st.dev

Search 21st.dev React UI components and themes, fetch their code, and generate new UI from your editor.

OAuth sign-in (You sign in with the vendor the first time you connect)Streamable HTTP

Connect to 21st.dev

21st.dev needs sign-in. Connect with its own URL:

https://21st.dev/api/mcp

Your client opens 21st.dev’s sign-in the first time you use it. The token stays between your client and 21st.dev.

Share this server

Opens this page, with the URL and setup steps.

mcp.tc/i/21st-dev

About

Connects an MCP client such as Cursor, Claude Code, Windsurf or VS Code to the 21st.dev catalog of React and Tailwind components, themes and templates. You can search the catalog, retrieve component code, and generate new UI with hosted 21st AI when it is enabled on the account. It succeeds the Magic MCP (@21st-dev/magic).

The server is hosted at https://21st.dev/api/mcp over streamable HTTP. Users sign in with OAuth, or send an x-api-key header with a key created at 21st.dev/mcp. Generation tools are listed only when hosted AI is enabled for the account. The @21st-dev/magic npm package remains as a stdio proxy for old configurations.

What you can do

  • Search the catalog for components, themes and templates
  • Retrieve component code to adapt in your own project
  • Generate new UI with hosted 21st AI when enabled
  • Iterate on earlier generations
  • Check account usage and whether AI access is enabled

Tools

21st.dev lists its tools only after you sign in, so we can’t show them here. Your client lists them once you’re connected.

Example prompts

  • Search 21st.dev for a pricing table component with three tiers

  • Get the code for a dark-themed login form from 21st.dev

  • Generate a React dashboard sidebar using 21st

  • Find themes on 21st.dev with a minimal look

Set up

Every client connects to 21st.dev, and 21st.dev asks you to sign in the first time. Pick yours; the page remembers your choice.

Claude Code

  1. Run this in a terminal, in your project folder:
claude mcp add --transport http 21st-dev https://21st.dev/api/mcp
  1. Start Claude Code, type /mcp, pick 21st-dev and choose Authenticate. A browser window opens for the 21st.dev sign-in.

Add --scope user to make it available in every project, not just this one.

Claude Desktop

  1. Open Settings → Connectors and click Add custom connector.
  2. Name it 21st.dev and paste this URL:
https://21st.dev/api/mcp
  1. Click Add, then Connect, and sign in when 21st.dev asks.

Claude Desktop’s JSON config file only starts local servers. Remote servers go through Connectors, and connectors you add on claude.ai show up here too.

claude.ai

  1. Open the connector form on claude.ai. This button fills in the name and URL for you:
  1. Check that the URL reads https://21st.dev/api/mcp and click Add.
  2. Click Connect and sign in when 21st.dev asks.

Free plans allow one custom connector. On Team and Enterprise plans an owner adds it under Organization settings → Connectors.

ChatGPT

  1. On chatgpt.com, open Settings → Security and login and turn on Developer mode.
  2. Go to chatgpt.com/plugins and click + to create an app for a remote MCP server.
  3. Paste https://21st.dev/api/mcp as the server URL and choose OAuth. ChatGPT sends you to 21st.dev to sign in.

Developer mode is available on the web for Plus, Pro, Business, Enterprise and Education accounts.

Cursor

Or add it by hand to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (this project):

mcp.json
{
  "mcpServers": {
    "21st-dev": {
      "url": "https://21st.dev/api/mcp"
    }
  }
}

Cursor shows Needs login next to the server. Click it to sign in.

VS Code

Or from a terminal:

code --add-mcp '{"name":"21st-dev","type":"http","url":"https://21st.dev/api/mcp"}'

Or commit it to the repo in .vscode/mcp.json:

.vscode/mcp.json
{
  "servers": {
    "21st-dev": {
      "type": "http",
      "url": "https://21st.dev/api/mcp"
    }
  }
}

VS Code asks you to sign in the first time the server starts.

Devin Desktop

  1. Add it to ~/.config/devin/mcp_config.json (macOS and Linux) or %APPDATA%\devin\mcp_config.json (Windows):
mcp_config.json
{
  "mcpServers": {
    "21st-dev": {
      "serverUrl": "https://21st.dev/api/mcp"
    }
  }
}
  1. Refresh the MCP server list in Cascade and sign in when asked.

Devin Desktop is the new name for Windsurf. It reads serverUrl (or url) for remote servers.

Codex

codex mcp add 21st-dev --url https://21st.dev/api/mcp
codex mcp login 21st-dev

Or edit ~/.codex/config.toml directly:

config.toml
[mcp_servers.21st-dev]
url = "https://21st.dev/api/mcp"

Gemini CLI

gemini mcp add --transport http 21st-dev https://21st.dev/api/mcp

Then, inside Gemini CLI, run /mcp auth 21st-dev to sign in.

This adds it to the current project. Add -s user to use it everywhere.

Any client

Most clients accept this shape. Some name the URL field differently: serverUrl in Devin Desktop, httpUrl in Gemini CLI’s settings file.

{
  "mcpServers": {
    "21st-dev": {
      "type": "http",
      "url": "https://21st.dev/api/mcp"
    }
  }
}

Zed puts servers under context_servers in its settings. Cline needs "type": "streamableHttp", or it assumes SSE.

Client only starts local servers? Bridge it with npx -y mcp-remote https://21st.dev/api/mcp.

FAQ

Can I paste mcp.tc/i/21st-dev into my MCP client?

No. mcp.tc links are pages, not server addresses. Connect with https://21st.dev/api/mcp, so your client talks to 21st.dev directly. The sign-in token only works there anyway. The quick link is for sharing: it opens this page, with setup steps for every client.

Does 21st.dev need an API key or a sign-in?

Yes, you need a 21st.dev account. The first time your client connects, it opens 21st.dev’s sign-in page. The token goes straight to the server’s own URL, never through mcp.tc.

Is 21st.dev a remote or a local server?

Remote. 21st.dev hosts it at https://21st.dev/api/mcp, and it speaks Streamable HTTP. There’s nothing to install.

What can 21st.dev do?

You can search the catalog for components, themes and templates, retrieve component code to adapt in your own project and generate new UI with hosted 21st AI when enabled.

Which clients can use it?

Any client that supports remote MCP servers: Claude Code, Claude Desktop, claude.ai, ChatGPT in developer mode, Cursor, VS Code, Devin Desktop, Codex, Gemini CLI, Zed and others. The setup steps cover each one.

Who wrote this page?

mcp.tc’s robot read 21st.dev’s own metadata (its MCP handshake, tool list and public pages), and an AI model drafted the text from it. A person reviews anything the checks can’t confirm. The text can still be wrong, so if you spot a mistake, use Report this listing on this page.

Embed

Show 21st.dev in a README or on your site. Each embed links to this page, uses the server’s own URL, and sets no cookies. How embeds work

README badge

Badge preview, lightBadge preview, dark
Markdown
[![21st.dev on mcp.tc](https://mcp.tc/i/21st-dev/badge.svg)](https://mcp.tc/i/21st-dev)
HTML
<a href="https://mcp.tc/i/21st-dev"><img src="https://mcp.tc/i/21st-dev/badge.svg" alt="21st.dev on mcp.tc" height="20"></a>

It follows the reader’s light or dark mode. Add ?theme=light or ?theme=dark to fix it, or ?style=compact to show the mark without the word.

Website card

HTML
<script src="https://mcp.tc/w/21st-dev.js" async></script>

The card appears where the tag is. Add data-theme="dark" or data-size="compact" to the tag to change it. The file holds everything it needs, so it makes no other requests and sets no cookies.

iframe

HTML
<iframe src="https://mcp.tc/embed/21st-dev" title="21st.dev on mcp.tc" width="420" height="200" loading="lazy" allow="clipboard-write" style="border:0;border-radius:8px;max-width:100%"></iframe>

Use it on pages that don’t allow scripts. Add ?theme=light or ?theme=dark to the address to fix the colors.

JSON

The listing as data for your own pages and tools: name, tagline, the server’s own URL, tools and the “Add to” links. Any site can read it (CORS is open).

https://mcp.tc/i/21st-dev.json

What each field means

mcp.tc isn’t affiliated with 21st.dev. This page was built from 21st.dev’s public metadata, last checked on 3 Oct 2026, and an AI model wrote the description, so it can be wrong. Names and marks belong to their owners. Something off? Report this listing.