mcp-ui-expo-tamagui
# ๐จ MCP UI Expo Tamagui Server
[](https://nodejs.org/)
[](https://www.typescriptlang.org/)
[](https://docker.com/)
[](https://modelcontextprotocol.io/)
**AI-Powered UI Component Generator for Expo + Tamagui with Claude Desktop Integration**
๐ Automatically generate React Native/Expo components using AI Gemini through Model Context Protocol (MCP)
## โจ Features
- ๐ค **AI Component Generation**: Create components with natural language descriptions
- ๐ **Real-time Docs Search**: Search Expo & Tamagui documentation
- โก **Code Optimization**: Optimize components for performance
- ๐จ **Theme Configuration**: Generate theme configs automatically
- ๐ก **Smart Suggestions**: Intelligent component recommendations
- ๐ณ **Docker Ready**: Production-ready containerization
- ๐ง **TypeScript Support**: Full type safety
## ๐ Quick Start
### 1. Installation & Build
```bash
git clone https://github.com/yourusername/mcp-ui-expo-tamagui.git
cd mcp-ui-expo-tamagui
npm install
npm run build
```
### 2. Configure API Key
```bash
export GEMINI_API_KEY=your-gemini-api-key
```
### 3. Test MCP Server
```bash
./test-mcp-tools.sh
```
## ๐ Claude Desktop Integration
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"mcp-ui-expo-tamagui": {
"command": "node",
"args": ["/path/to/mcp-ui-expo-tamagui/build/index.js"],
"env": {
"GEMINI_API_KEY": "your-gemini-api-key"
}
}
}
}
```
### Usage with Claude
```
๐ฌ "Create a Button component with title, onPress, and variant props"
๐ฌ "How to implement navigation in Expo?"
๐ฌ "Suggest components for an e-commerce screen"
๐ฌ "Optimize this component for performance"
๐ฌ "Create dark theme with purple primary color"
```
## ๐ ๏ธ MCP Tools
| Tool | Description | Parameters |
|------|-------------|------------|
| `generate_ui_component` | Generate UI component with AI | name, description, props, styling, platform |
| `search_expo_docs` | Search Expo documentation | query |
| `search_tamagui_docs` | Search Tamagui documentation | query |
| `get_component_suggestions` | Get component suggestions | context, requirements |
| `optimize_component` | Optimize component code | code, optimizationType |
| `create_theme_config` | Create theme configuration | colorScheme, primaryColors, components |
## ๐ณ Docker Deployment
### Build & Run
```bash
# Build Docker image
docker build -t mcp-ui-expo-tamagui .
# Run with Docker Compose
docker-compose up
# Run standalone
docker run -e GEMINI_API_KEY=your-key mcp-ui-expo-tamagui
```
## ๐งช Testing
```bash
# Test MCP tools
./test-mcp-tools.sh
# Test Docker
./test-docker.sh
# TypeScript validation
npm run lint
# Jest tests
npm test
```
## ๐ Project Structure
```
mcp-ui-expo-tamagui/
โโโ src/
โ โโโ index.ts # Main MCP server
โ โโโ types/interfaces.ts # Type definitions
โ โโโ services/ # Core services
โ โโโ utils/ # Utilities
โโโ build/ # Compiled output
โโโ Dockerfile # Docker configuration
โโโ docker-compose.yml # Docker Compose
โโโ README.md # Documentation
```
## ๐ฏ Example Use Cases
### E-commerce Product Card
```typescript
{
name: "ProductCard",
description: "Product card with image, title, price, rating, add to cart",
props: [
{ name: "product", type: "Product", required: true },
{ name: "onAddToCart", type: "function", required: true }
]
}
```
### Social Media Post
```typescript
{
name: "PostCard",
description: "Post card with avatar, content, reactions",
styling: { theme: "dark", responsive: true }
}
```
## ๐ง Development
```bash
npm run dev # Development mode
npm run build # Build production
npm run test # Run tests
npm run lint # TypeScript check
```
## ๐จ Environment Variables
- `GEMINI_API_KEY` - Google Gemini AI API key (required)
- `NODE_ENV` - Environment (optional)
- `LOG_LEVEL` - Logging level (optional)
## ๐ License
MIT License - see [LICENSE](LICENSE) file for details.
## ๐ Ready to Go!
Start creating amazing UI components with AI! ๐โจ
**Happy Coding!**
TDQS
Scored across 6 tools
Most tools are distinct actions (search vs optimize vs theme creation), but generate_ui_component and get_component_suggestions both target new component creation, creating potential confusion about which to use for a given task. The descriptions hint at a difference (final code vs recommendations) but are brief enough to cause misselection.
All tool names follow a consistent verb_noun pattern in snake_case (generate, search, get, optimize, create). The two search tools are parallel (search_expo_docs, search_tamagui_docs), and every name clearly starts with an action verb. No mixed conventions or irregularities.
With six tools, the set is well-scoped for the server's purpose of UI development with Expo and Tamagui. Each tool addresses a specific need (generation, documentation, suggestions, optimization, theming) without redundant or excess additions. The count feels complete and not bloated.
The tool surface covers the primary lifecycle of UI component development: design/generate, get suggestions, optimize, search docs, and configure themes. Minor gaps exist, such as no explicit tool for previewing components or managing component dependencies, but these are not critical for the core workflow and can be worked around with existing tools.