/ 目录 / 演练场 / shadcn/ui MCP Server
● 社区 Jpisnice ⚡ 即开即用

shadcn/ui MCP Server

作者 Jpisnice · Jpisnice/shadcn-ui-mcp-server

告别复制粘贴 shadcn/ui 组件——Claude 在对话时从 registry 实时拉取最新源码、依赖和安装命令,不再有过时知识的问题。

shadcn/ui MCP 服务直接从 shadcn/ui registry 获取最新的组件源码、示例、安装命令和依赖关系。支持 React、Vue(Vite/Nuxt)、Svelte 5 和 React Native 变体。彻底消除「Claude 用的是去年 API 写的组件」这类 bug。

为什么要用

核心特性

实时演示

实际使用效果

shadcn-ui-mcp.replay ▶ 就绪
0/0

安装

选择你的客户端

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "shadcn-ui-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@jpisnice/shadcn-ui-mcp-server"
      ]
    }
  }
}

打开 Claude Desktop → Settings → Developer → Edit Config。保存后重启应用。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "shadcn-ui-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@jpisnice/shadcn-ui-mcp-server"
      ]
    }
  }
}

Cursor 使用与 Claude Desktop 相同的 mcpServers 格式。项目级配置优先于全局。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "shadcn-ui-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@jpisnice/shadcn-ui-mcp-server"
      ]
    }
  }
}

点击 Cline 侧栏中的 MCP Servers 图标,然后选 "Edit Configuration"。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "shadcn-ui-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@jpisnice/shadcn-ui-mcp-server"
      ]
    }
  }
}

格式与 Claude Desktop 相同。重启 Windsurf 生效。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "shadcn-ui-mcp",
      "command": "npx",
      "args": [
        "-y",
        "@jpisnice/shadcn-ui-mcp-server"
      ]
    }
  ]
}

Continue 使用服务器对象数组,而非映射。

~/.config/zed/settings.json
{
  "context_servers": {
    "shadcn-ui-mcp": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@jpisnice/shadcn-ui-mcp-server"
        ]
      }
    }
  }
}

加入 context_servers。Zed 保存后热重载。

claude mcp add shadcn-ui-mcp -- npx -y @jpisnice/shadcn-ui-mcp-server

一行命令搞定。用 claude mcp list 验证,claude mcp remove 卸载。

使用场景

实战用法: shadcn/ui MCP Server

使用当前 API 搭建 shadcn/ui Form,避免版本漂移

👤 开发 React/Next 应用的前端开发者 ⏱ ~20 min intermediate

何时使用: 你想用 Form + react-hook-form + Zod,但 Claude 一直使用过时的 shadcn 引入路径。

前置条件
  • 已初始化 shadcn/ui 的 Next.js / Vite 应用npx shadcn@latest init
步骤
  1. 获取当前 Form 源码
    shadcn-ui MCP:获取 form(React)的当前源码及其依赖,展示安装命令。✓ 已复制
    → 返回最新源码;依赖列表包含 react-hook-form、zod
  2. 构建表单
    现在用这些精确的 API 构建一个 SignupForm:邮箱 + 密码 + 条款复选框;带校验消息的 Zod schema。不允许使用自己发明的引入路径。✓ 已复制
    → 组件能在当前 shadcn 版本下编译通过
  3. 验证
    运行 tsc --noEmit,报告所有未解析的引入。✓ 已复制
    → TS 检查通过

结果: 针对当前 shadcn/ui API 的可用表单——不再出现 import { ... } from '@/components/ui/old-name' 错误。

注意事项
  • 项目使用的是旧版 shadcn — 通过 --registry 固定版本,或接受升级并运行 shadcn upgrade
搭配使用: filesystem

直接使用 shadcn block(登录页/dashboard)

👤 需要预制布局的开发者 ⏱ ~15 min beginner

何时使用: 你需要一个完整的登录页或 dashboard 布局,而不只是单个组件。

步骤
  1. 浏览 blocks
    shadcn-ui:列出可用的 blocks,我想要一个带侧边栏的 dashboard 布局。✓ 已复制
    → 返回带名称和预览的 block 列表
  2. 拉取并适配
    拉取 sidebar-07 的源码,将 demo 链接替换为我的路由——/dashboard、/clients、/settings。✓ 已复制
    → 返回 block 代码;路径已替换

结果: 10 分钟内完成可用的 dashboard 布局,已适配我的应用路由。

注意事项
  • block 依赖你未安装的组件 — MCP 会返回依赖列表;先安装缺失组件
搭配使用: filesystem

将 React 应用中的 shadcn 用法迁移到 Svelte

👤 正在迁移框架的开发者 ⏱ ~30 min advanced

何时使用: 你正从 Next 迁移到 SvelteKit,需要找到对应的 shadcn-svelte 组件。

步骤
  1. 映射组件
    列出我的应用从 @/components/ui 中引入的所有组件,对每个从 shadcn-ui MCP 获取 Svelte 5 等价物。✓ 已复制
    → 逐组件映射,附 API 差异说明
  2. 翻译示例
    将这段 React Form 用法翻译为 Svelte 版本,使用实际的当前 API。✓ 已复制
    → 地道的 Svelte 5 代码

结果: 迁移计划 + 供团队参考的翻译示例。

注意事项
  • 部分组件在 Svelte 移植版中尚不存在 — MCP 会返回「not found」;将这些标记为需要手动移植

组合

与其他 MCP 搭配,撬动十倍杠杆

shadcn-ui-mcp + filesystem

将生成的组件直接写入仓库

shadcn:获取 Form。Filesystem:将代码写入 src/components/SignupForm.tsx,使用我的 schema。✓ 已复制
shadcn-ui-mcp + github

提 PR 进行使用当前 shadcn API 的 UI 重构

拉取当前 Dialog API,重构 src/components/Modal.tsx 以匹配,提 PR。✓ 已复制

工具

此 MCP 暴露的能力

工具输入参数何时调用成本
list_components framework?: react|vue|svelte|react-native 探索阶段 1 次获取
get_component name: str, framework?: str 写代码之前 1 次获取
get_component_demo name: str, framework?: str 查看真实用法 1 次获取
list_blocks framework?: str 查找预制布局 1 次获取
get_block name: str 直接使用某个布局 1 次获取

成本与限制

运行它的成本

API 配额
GitHub 原始文件获取(未认证 60 次/时,认证后 5000 次/时)
每次调用 Token 数
300–4000(组件源码可能较大)
费用
开源免费
提示
设置 GITHUB_PERSONAL_ACCESS_TOKEN 以突破 60 次/时的限制

安全

权限、密钥、影响范围

凭据存储: 可选 GitHub token 用于提升限流
数据出站: github.com(raw 和 api)
切勿授予: repo:write

故障排查

常见错误与修复

超出限流

设置 GITHUB_PERSONAL_ACCESS_TOKEN 环境变量

框架中找不到该组件

Vue/Svelte 移植版落后于 React;检查 list_components 在该框架下的结果

返回的源码 API 与我的项目不一致

项目使用旧版 shadcn;要么升级,要么固定到旧版 registry

替代方案

shadcn/ui MCP Server 对比其他方案

替代方案何时用它替代权衡
Magic MCP(21st Dev)你想要更广泛的 UI 生成,不只是 shadcn更强约束;更重量级
Component MCP(自定义 registry)你有内部设计系统需要自行构建

更多

资源

📖 阅读 GitHub 上的官方 README

🐙 查看未解决的 issue

🔍 浏览全部 400+ MCP 服务器和 Skills