用途
gluestack-mcp-tools 提供使用 gluestack-ui MCP 服务器工具所需的专家知识,用于发现、探索并检索 gluestack-ui 组件的源代码与元数据。gluestack-ui MCP 服务器通过 6 个专用工具提供对 gluestack-ui 组件库的直接访问。
适用场景包括:
- 发现 gluestack-ui 中可用的组件
- 获取某个组件的实际源代码,以便复制到项目中
- 了解组件的变体(NativeWind、Themed、Unstyled)
- 访问展示组件使用模式的 Storybook 演示
- 检索组件的 TypeScript 属性与依赖
- 浏览 gluestack-ui monorepo 结构
主要能力(可用工具)
list_components
列出全部 70 多个 gluestack-ui 组件及其名称和基本描述。
使用时机:当需要了解有哪些组件可用,或按名称查找组件时的起点。
示例工作流:
- 调用 list_components 查看所有可用组件
- 找出符合需求的组件
- 使用 get_component 或 get_component_metadata 获取详情
list_component_variants
显示某个组件可用的样式变体:NativeWind、Themed 和 Unstyled。
使用时机:在确定组件后,用它了解支持哪些样式方案。
变体说明:
- NativeWind:面向 React Native 的 Tailwind CSS 类(推荐用于新项目)
- Themed:基于 token 的主题化,与设计系统集成
- Unstyled:无样式的基础组件(用于完全自定义)
get_directory_structure
浏览 gluestack-ui monorepo,理解包的组织方式。
使用时机:当需要理解 gluestack-ui 如何组织其包,或在仓库中查找特定文件时。
get_component
获取任意 gluestack-ui 组件的完整源代码。
使用时机:当需要将组件代码复制到项目中,或理解实现细节时。
示例工作流:
- 使用 list_components 找到组件名
- 使用 list_component_variants 选择变体
- 以组件名和变体调用 get_component
- 将源代码复制到项目的 components/ui/ 目录
get_component_demo
访问展示组件真实使用模式的 Storybook 示例。
使用时机:当需要了解组件在实践中如何使用,包括属性组合和组合模式时。
可获得内容:
- 可运行的代码示例
- 不同的属性组合
- 与子组件的组合模式
- 交互状态与变化
get_component_metadata
检索组件的 TypeScript 属性、依赖及其他元数据。
使用时机:当需要了解 TypeScript 接口、必填属性或对等依赖时。
提供的信息:
- TypeScript 属性类型与接口
- 必填与可选属性
- 默认值
- 对等依赖
- import 语句
使用方式(常见工作流)
向项目添加新组件
- 发现:list_components — 找到需要的组件
- 探索变体:list_component_variants — 选择 NativeWind、Themed 或 Unstyled
- 获取源码:get_component — 检索完整源代码
- 查看演示:get_component_demo — 查看使用示例
- 复制到项目:将代码加入 components/ui/ 目录
理解组件 API
- 获取元数据:get_component_metadata — 查看 TypeScript 属性
- 查看演示:get_component_demo — 在上下文中查看属性用法
- 阅读源码:get_component — 理解实现
探索可用组件
- 列出全部:list_components — 查看完整组件库
- 检查结构:get_directory_structure — 理解组织方式
- 查看演示:get_component_demo — 了解组件能力
最佳实践
1. 从发现开始
探索时始终先使用 list_components,这样可获得其他工具使用的规范名称。
# 推荐:从发现开始
1. list_components -> 找到 "Button"
2. get_component("Button", "nativewind")
# 避免:猜测组件名
get_component("Btn") -> 可能找不到
2. 选择合适的变体
- NativeWind:最适合使用 Tailwind CSS 的新项目
- Themed:最适合已有设计 token 系统的情况
- Unstyled:最适合需要完全控制样式的情况
3. 实现前先查看演示
Storybook 演示展示了真实使用模式,可能揭示:
- 必需的组合模式(例如 Button 需要 ButtonText)
- 良好配合的属性组合
- 边界情况与无障碍考量
4. 验证依赖
使用 get_component_metadata 了解:
- 需要安装的对等依赖
- 内部使用的其他组件
- 可能需要导入的 TypeScript 类型
环境配置
MCP 服务器可运行于两种模式:
GitHub 模式(默认)
直接从 gluestack-ui GitHub 仓库获取组件。
# 可选:提高 API 速率限制
export GITHUB_TOKEN="your-token-here"
本地模式
使用 gluestack-ui 仓库的本地克隆,实现离线访问。
# 指向本地克隆
export GLUESTACK_PATH="/path/to/gluestack-ui"
与其他技能集成
可将 MCP 工具与其他 gluestack 技能结合:
- gluestack-components:获取源代码后,使用组件技能了解实现模式
- gluestack-theming:与 Themed 变体组件配合,集成设计 token
- gluestack-accessibility:确保获取的组件以无障碍方式实现
限制与排查
找不到组件
- 使用 list_components 核实确切的组件名
- 组件名区分大小写
- 某些组件可能被分组(例如 FormControl 相关组件)
速率限制
若在 GitHub 模式下未使用 token:
- 设置 GITHUB_TOKEN 以提高限制
- 或在本地克隆仓库并设置 GLUESTACK_PATH
组件过时
MCP 服务器从最新的 gluestack-ui 仓库获取。若需要特定版本:
- 在本地克隆特定版本
- 将 GLUESTACK_PATH 指向本地克隆