底漆UI MCP
一个模型上下文协议(MCP)服务器,为Claude和其他人工智能助手提供对综合库的访问 底涂层CSS UI组件该服务器使AI助手能够检索预构建的、可访问的HTML组件和使用文档,以构建用户界面。
特性
- 77个预制组件 -跨5个类别的生产就绪HTML组件
- 7 MCP工具 -列出、搜索、检索组件和文档
- 综合文档 -25个详细的使用指南和示例
- 暗/亮模式 -内置主题切换支持
- 可访问性优先 -所有组件都包含正确的ARIA属性
需求
- Node.js >= 18.0.0
- npm (包含在Node.js中)
安装
选项1:从GitHub克隆
git clone https://github.com/Sorbh/basecoat-ui-mcp.git
cd basecoat-ui-mcp
npm install选项2:通过npm安装
npm install -g basecoat-ui-mcp配置
克劳德桌面
将服务器添加到Claude Desktop配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"basecoat-ui": {
"command": "node",
"args": ["/absolute/path/to/basecoat-ui-mcp/server.js"],
"env": {}
}
}
}如果通过npm全局安装:
{
"mcpServers": {
"basecoat-ui": {
"command": "basecoat-ui-mcp",
"env": {}
}
}
}更新配置后,重新启动Claude Desktop以加载MCP服务器。
其他MCP客户端
服务器使用标准I/O(stdio)传输,并与任何兼容MCP的客户端兼容。使用以下命令启动服务器:
node server.js可用工具
MCP服务器提供了7个AI助手可以使用的工具:
list_components
按类别列出所有可用的底漆组件。
No parameters required返回所有77个组件的完整清单,包括名称、类别和文件名。
______________________________________________________________________
get_component
检索特定组件的HTML代码。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
name | string | 是 | 组件名称(例如,“按钮主”、“卡基本”) |
示例名称:
button-primary,button-secondary,button-destructivecard-basic,card-with-iconinput-with-label,input-invalidalert-success,alert-error
______________________________________________________________________
get_usage
获取组件类型的全面使用文档。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
component | string | 是 | 组件类型(例如,“按钮”、“卡片”、“输入”) |
返回详细的markdown文档,其中包含示例、变体和最佳实践。
______________________________________________________________________
get_setup
使用CDN链接检索Basecoat CSS设置代码。
No parameters required返回HTML样板以在新项目中初始化Basecoat CSS:
______________________________________________________________________
get_theme_script
获取暗/亮模式的主题切换器脚本。
No parameters required返回一个完整的JavaScript实现,用于使用localStorage持久性进行主题切换。
______________________________________________________________________
search_components
按名称或类别搜索组件。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
query | string | 是 | 搜索词(例如,“按钮”、“表单”、“导航”) |
返回具有匹配类型(名称或类别匹配)的匹配组件。
______________________________________________________________________
get_category
获取特定类别中的所有组件。
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
category | string | 是 | 以下之一: forms, navigation, feedback, interactive, layout |
组件库
表格(20个组成部分)
| 组件 | 描述 |
|---|---|
button-primary | 主操作按钮 |
button-secondary | 辅助动作按钮 |
button-destructive | 破坏性/危险按钮 |
button-ghost | 重影/透明按钮 |
button-outline | 轮廓按钮 |
button-link | 链接样式按钮 |
button-large | 大尺寸按钮 |
button-small | 小尺寸按钮 |
button-icon | 仅图标按钮 |
button-icon-large | 大图标按钮 |
button-group | 分组按钮 |
input-basic | 基本文本输入 |
input-with-label | 带标签输入 |
input-invalid | 输入错误状态 |
input-group | 分组输入 |
checkbox-basic | 基本复选框 |
checkbox-with-label | 带标签的复选框 |
checkbox-with-description | 带有描述的复选框 |
radio-group | 单选按钮组 |
select-basic | 选择下拉菜单 |
textarea-basic | 文本区域输入 |
switch | 拨动开关 |
slider | 范围滑块 |
label | 表单标签 |
布局(17个组件)
| 组件 | 描述 |
|---|---|
card-basic | 基本卡容器 |
card-with-icon | 带有图标的卡片 |
card-standard | 标准卡片布局 |
table | 数据表 |
avatar-small | 小头像 |
avatar-medium | 中型头像 |
avatar-large | 大头像 |
avatar-fallback | 带有回退功能的头像 |
pagination | 分页控制 |
skeleton-basic | 基本加载骨架 |
skeleton-profile | 轮廓加载骨架 |
skeleton-card | 卡片加载骨架 |
spinner | 加载旋转器 |
empty-state | 空状态显示 |
kbd | 键盘按键元素 |
item | 列表项 |
导航(6个组件)
| 组件 | 描述 |
|---|---|
accordion | 可伸缩手风琴 |
breadcrumb-basic | 基本面包屑 |
breadcrumb-advanced | 高级面包屑 |
sidebar | 侧边栏导航 |
tabs | 选项卡导航 |
command | 命令面板 |
反馈(13个组成部分)
| 组件 | 描述 |
|---|---|
alert-standard | 标准警报 |
alert-error | 错误/破坏性警报 |
alert-success | 成功警报 |
badge-primary | 主要徽章 |
badge-secondary | 次要徽章 |
badge-destructive | 破坏性徽章 |
badge-outline | 轮廓徽章 |
dialog-standard | 标准对话框 |
dialog-modal | 模态对话框 |
dialog-alert | 警报对话框 |
toast | 吐司通知 |
progress | 进度条 |
交互式(8个组件)
| 组件 | 描述 |
|---|---|
combobox | 可搜索选择 |
dropdown | 下拉菜单 |
popover | 波波弗元素 |
tooltip | 标准工具提示 |
tooltip-bottom | 底部工具提示 |
tooltip-right | 右侧工具提示 |
theme-switcher | 暗/亮模式切换 |
使用示例
示例1:构建表单
问克劳德:
“使用Basecoat组件创建登录表单”
Claude将使用MCP工具:
- 拿到
input-with-label电子邮件/密码字段组件 - 拿到
button-primary提交按钮的组件 - 拿到
checkbox-with-label为“记住我” - 将它们组合成一个完整的、可访问的形式
示例2:添加通知
问克劳德:
“如何将吐司通知添加到我的应用程序中?”
克劳德将使用:
get_usage用“吐司”获取文档get_component用“吐司”来获取HTMLget_setup以确保您拥有所需的脚本
示例3:搜索组件
问克劳德:
“有哪些按钮组件可用?”
克劳德将使用 search_components 使用“按钮”列出所有按钮变体。
运行服务器
启动服务器
npm start开发模式(更改后自动重启)
npm run dev运行测试
npm test详细测试输出
npm run test:verbose项目结构
basecoat-ui-mcp/
├── server.js # Main MCP server implementation
├── server.test.js # Test suite
├── package.json # Node.js configuration
├── style-guide.md # Comprehensive styling guide
├── claude_desktop_config.json # Example Claude config
│
├── components/ # 77 HTML component files
│ ├── forms/ # Form components
│ ├── layout/ # Layout components
│ ├── navigation/ # Navigation components
│ ├── feedback/ # Feedback components
│ └── interactive/ # Interactive components
│
├── usage/ # 25 markdown documentation files
│ ├── forms/
│ ├── layout/
│ ├── navigation/
│ ├── feedback/
│ └── interactive/
│
└── scripts/ # Setup and theme scripts
├── setup.html # CDN setup code
└── theme-script.html # Theme switcher script关于底漆CSS
底涂层CSS 是基于Tailwind CSS v4构建的现代组件库。它提供:
- 具有适当可访问性的语义HTML组件
- 用于主题化的CSS自定义属性
- 开箱即用的黑暗模式支持
- 交互式组件的最小JavaScript
- 符合WAI-ARIA标准的组件
贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
测试
该项目包括全面的测试,包括:
- 组件检索和验证
- 类别过滤和组织
- 搜索功能
- 文件可用性
- 错误处理和边缘情况
- 性能基准
运行完整的测试套件:
npm test许可证
MIT许可证-请参阅 许可证 了解详情。
作者
Saurabh K.Sharma -
