home / skills / thebushidocollective / han / gluestack-mcp-tools

This skill helps you discover, explore, and retrieve gluestack-ui components and metadata to speed up integration.

npx playbooks add skill thebushidocollective/han --skill gluestack-mcp-tools

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
6.7 KB
---
name: gluestack-mcp-tools
user-invocable: false
description: Use when discovering, exploring, or retrieving gluestack-ui components via MCP tools. Provides access to component source code, variants, demos, and metadata.
allowed-tools:
  - Read
  - Write
  - Edit
  - Bash
  - Glob
  - Grep
---

# gluestack-ui MCP Tools

Expert knowledge for using the gluestack-ui MCP server tools to discover, explore, and retrieve component source code and metadata.

## Overview

The gluestack-ui MCP server provides direct access to the gluestack-ui component library through 6 specialized tools. Use these tools to explore available components, understand their variants, retrieve source code, and access Storybook demos.

## When to Use These Tools

Use the MCP tools when you need to:

- Discover what components are available in gluestack-ui
- Get the actual source code for a component to copy into a project
- Understand the variants (NativeWind, Themed, Unstyled) of a component
- Access Storybook demos showing component usage patterns
- Retrieve TypeScript props and dependencies for a component
- Navigate the gluestack-ui monorepo structure

## Available Tools

### list_components

Lists all 70+ gluestack-ui components with their names and basic descriptions.

**When to use:** Start here when you need to know what components are available or find a component by name.

**Example workflow:**

1. Call `list_components` to see all available components
2. Identify the component that matches your needs
3. Use `get_component` or `get_component_metadata` for details

### list_component_variants

Shows the available style variants for a specific component: NativeWind, Themed, and Unstyled.

**When to use:** After identifying a component, use this to understand which styling approaches are supported.

**Variants explained:**

- **NativeWind**: Tailwind CSS classes for React Native (recommended for new projects)
- **Themed**: Token-based theming with design system integration
- **Unstyled**: Base component with no styles (for complete customization)

### get_directory_structure

Navigate the gluestack-ui monorepo to understand the package organization.

**When to use:** When you need to understand how gluestack-ui organizes its packages or find specific files within the repository.

### get_component

Retrieves the complete source code for any gluestack-ui component.

**When to use:** When you need to copy component code into your project or understand the implementation details.

**Example workflow:**

1. Use `list_components` to find the component name
2. Use `list_component_variants` to choose a variant
3. Call `get_component` with the component name and variant
4. Copy the source code into your project's `components/ui/` directory

### get_component_demo

Accesses Storybook examples showing real-world usage patterns for components.

**When to use:** When you need to see how a component is used in practice, including prop combinations and composition patterns.

**What you get:**

- Working code examples
- Different prop combinations
- Composition patterns with sub-components
- Interactive states and variations

### get_component_metadata

Retrieves TypeScript props, dependencies, and other metadata for a component.

**When to use:** When you need to understand the TypeScript interface, required props, or peer dependencies for a component.

**Information provided:**

- TypeScript prop types and interfaces
- Required vs optional props
- Default values
- Peer dependencies
- Import statements

## Common Workflows

### Adding a New Component to Your Project

1. **Discover**: `list_components` - Find the component you need
2. **Explore variants**: `list_component_variants` - Choose NativeWind, Themed, or Unstyled
3. **Get source**: `get_component` - Retrieve the full source code
4. **Check demos**: `get_component_demo` - See usage examples
5. **Copy to project**: Add the code to your `components/ui/` directory

### Understanding Component API

1. **Get metadata**: `get_component_metadata` - See TypeScript props
2. **Check demos**: `get_component_demo` - See prop usage in context
3. **Read source**: `get_component` - Understand the implementation

### Exploring Available Components

1. **List all**: `list_components` - See the full component library
2. **Check structure**: `get_directory_structure` - Understand organization
3. **Review demos**: `get_component_demo` - See component capabilities

## Best Practices

### 1. Start with Discovery

Always use `list_components` first when exploring. This gives you the canonical names to use with other tools.

```
# Good: Start with discovery
1. list_components -> find "Button"
2. get_component("Button", "nativewind")

# Avoid: Guessing component names
get_component("Btn") -> might not find it
```

### 2. Choose the Right Variant

- **NativeWind**: Best for new projects using Tailwind CSS
- **Themed**: Best when you have an existing design token system
- **Unstyled**: Best when you need complete styling control

### 3. Check Demos Before Implementing

The Storybook demos show real-world usage patterns that may reveal:

- Required composition patterns (e.g., Button needs ButtonText)
- Prop combinations that work well together
- Edge cases and accessibility considerations

### 4. Verify Dependencies

Use `get_component_metadata` to understand:

- Peer dependencies that need to be installed
- Other components that are used internally
- TypeScript types that may need importing

## Environment Configuration

The MCP server can operate in two modes:

### GitHub Mode (Default)

Fetches components directly from the gluestack-ui GitHub repository.

```bash
# Optional: Increase API rate limits
export GITHUB_TOKEN="your-token-here"
```

### Local Mode

Uses a local clone of the gluestack-ui repository for offline access.

```bash
# Point to your local clone
export GLUESTACK_PATH="/path/to/gluestack-ui"
```

## Integration with Other Skills

Combine MCP tools with other gluestack skills:

- **gluestack-components**: After getting source code, use component skill for implementation patterns
- **gluestack-theming**: Use with Themed variant components for design token integration
- **gluestack-accessibility**: Ensure retrieved components are implemented accessibly

## Troubleshooting

### Component Not Found

- Verify the exact component name using `list_components`
- Component names are case-sensitive
- Some components may be grouped (e.g., FormControl components)

### Rate Limiting

If using GitHub mode without a token:

- Set `GITHUB_TOKEN` for increased limits
- Or clone the repo locally and set `GLUESTACK_PATH`

### Outdated Components

The MCP server fetches from the latest gluestack-ui repository. If you need a specific version:

- Clone the specific version locally
- Set `GLUESTACK_PATH` to your local clone

Overview

This skill exposes gluestack-ui MCP server tools to discover, explore, and retrieve component source, demos, variants, and metadata. It streamlines finding components, inspecting their styling variants (NativeWind, Themed, Unstyled), and extracting usable TypeScript code and Storybook examples. Use it to accelerate component adoption, ensure correct dependencies, and integrate components into your project quickly.

How this skill works

The skill provides six focused MCP endpoints: list_components, list_component_variants, get_directory_structure, get_component, get_component_demo, and get_component_metadata. Each endpoint returns structured information: lists of components, available style variants, repository layout, full component source code, Storybook demo code, and TypeScript props and dependency metadata. Workflows chain these calls (discover → choose variant → fetch source/demo → check metadata) to copy and integrate components reliably.

When to use it

  • Discover what components exist in gluestack-ui before implementing UI features
  • Retrieve complete component source code to copy into your project
  • Inspect available style variants (NativeWind, Themed, Unstyled) and pick the right approach
  • Access Storybook demos to learn real-world usage, composition, and prop combinations
  • Obtain TypeScript props, required imports, and peer dependencies before integrating a component
  • Navigate the monorepo to find files or understand package structure

Best practices

  • Always start with list_components to get canonical component names and avoid lookup errors
  • Use list_component_variants to select the variant that matches your styling system (NativeWind, Themed, Unstyled)
  • Check get_component_demo before copying code to understand composition and required subcomponents
  • Use get_component_metadata to verify TypeScript interfaces and peer dependencies before installation
  • When working offline or to avoid rate limits, point the MCP server at a local clone via GLUESTACK_PATH

Example use cases

  • Add a Button from gluestack-ui: list_components → list_component_variants('Button') → get_component('Button','nativewind') → copy into components/ui/
  • Audit a component API: get_component_metadata('FormInput') to review props, defaults, and dependencies
  • Replicate a complex layout: get_component_demo('Card') to extract composition patterns and prop examples
  • Investigate repository layout: get_directory_structure to locate package boundaries and shared utilities
  • Resolve build issues: fetch source and metadata to confirm peer dependency versions and imports

FAQ

What variant should I choose for a new project?

Choose NativeWind for new React Native projects using Tailwind-style classes. Use Themed when integrating with a token-based design system. Pick Unstyled if you need full control over styling.

How do I avoid GitHub rate limits?

Set a GITHUB_TOKEN environment variable for higher GitHub API limits, or clone the gluestack-ui repo locally and set GLUESTACK_PATH to use Local Mode.