Skip to main content
Glama

Hue MCP Server

by rmrfslashbin
README.md14 kB
# 🌈 Hue MCP Server > A modern Model Context Protocol (MCP) server that enables AI assistants to control Philips Hue smart lighting systems with natural language. [![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue.svg)](https://www.typescriptlang.org/) [![Node.js](https://img.shields.io/badge/Node.js-18+-green.svg)](https://nodejs.org/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ## ✨ Features - 🎨 **Natural Language Control** - "Turn the living room lights to stormy dusk" - 🔍 **Smart Light Search** - "Find all color bulbs in the bedroom" - 🏠 **Smart Room & Zone Management** - Control entire rooms and zones with single commands - 🌟 **Atmospheric Variation** - Individual light variations for realistic scenes - 🎭 **Scene Activation** - Browse and activate predefined lighting scenes - 🧠 **AI-Optimized Tools** - Enhanced responses with quick actions and suggestions - 💬 **Chatbot UX Optimized** - Smart response sizing and context management - ⚡ **Intelligent Caching** - 95% reduction in API calls with graceful fallbacks - 🔧 **Modern Setup Wizard** - Beautiful React-based configuration experience - 🔒 **Secure & Local** - All communication stays on your local network - 🛠️ **Developer Friendly** - TypeScript-first with comprehensive testing ## 🚀 Quick Start ### Prerequisites - Node.js 18+ - Philips Hue Bridge (v2) on your local network - Claude Desktop or compatible MCP client ### 1. Installation ```bash git clone https://github.com/your-username/hue-mcp.git cd hue-mcp npm install ``` ### 2. Setup Your Hue Bridge **Option A: Web Setup (Recommended)** ```bash npm run setup:web ``` This launches a beautiful setup wizard at `http://localhost:3000` that will: - Auto-discover your Hue bridge - Guide you through authentication - Test your connection - Generate Claude Desktop configuration **Option B: CLI Setup** ```bash npm run setup ``` ### 3. Add to Claude Desktop Copy the generated configuration to your Claude Desktop config file: **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` ```json { "mcpServers": { "hue-lights": { "command": "node", "args": ["/path/to/hue-mcp/dist/index.js"], "env": { "HUE_BRIDGE_IP": "192.168.1.100", "HUE_API_KEY": "your-api-key-here" } } } } ``` ### 4. Start Using Restart Claude Desktop and try these commands: - "Turn on the living room lights" - "Set bedroom to warm white at 30%" - "Activate the energize scene" - "Show me all available lights" - "Turn everything off" ## 📚 Documentation - **[Installation Guide](docs/installation.md)** - Detailed setup instructions - **[MCP Tools Reference](docs/mcp-tools.md)** - Complete tool documentation - **[Natural Language Examples](docs/examples.md)** - Command examples and patterns - **[Troubleshooting](docs/troubleshooting.md)** - Common issues and solutions - **[Development Guide](docs/development.md)** - Contributing and extending - **[API Reference](docs/api-reference.md)** - Technical API documentation ## 💡 Optimal Usage Patterns ### For Chatbot Efficiency **🔍 Discovery Queries** ``` ❌ Avoid: "List all lights" (potentially large response) ✅ Better: "Find lights that are on" (filtered, relevant) ✅ Best: "Quick status" (minimal context summary) ``` **🏠 Room Controls** ``` ❌ Avoid: Multiple individual light commands ✅ Better: "Turn off all bedroom lights" (single room command) ✅ Best: "Set bedroom to relaxing mood" (scene activation) ``` **📊 Status Checking** ``` ❌ Avoid: Detailed system overview every time ✅ Better: "Minimal status" (compact summary) ✅ Best: Context-aware - detailed first time, minimal after ``` ### Response Size Guidelines - **First interaction**: Use `standard` detail level for orientation - **Ongoing conversation**: Use `compact` to preserve context window - **Troubleshooting**: Use `verbose` for comprehensive information - **Quick checks**: Use `minimal` for status updates ## 🛠️ Available Commands | Command | Description | |---------|-------------| | `npm run setup:web` | Launch interactive web setup wizard | | `npm run setup` | CLI setup tool | | `npm run dev` | Run in development mode with hot reload | | `npm run build` | Build for production | | `npm run start` | Run production build | | `npm run test` | Run unit tests | | `npm run test:connection` | Test connection to your Hue bridge | | `npm run typecheck` | Check TypeScript types | | `npm run lint` | Lint code | | `npm run format` | Format code with Prettier | ## 🔧 MCP Tools The server provides these AI-optimized tools: ### 🔍 Discovery & Search Tools | Tool | Description | Example | |------|-------------|---------| | `find_lights` | **Smart search with filters** | "Find all off lights", "Color bulbs in bedroom" | | `list_lights` | Enhanced listing with room context | "What lights do I have?" | | `get_light` | Detailed info with quick actions | "Show me the kitchen light status" | ### 🏠 Room & Zone Management | Tool | Description | Example | |------|-------------|---------| | `list_rooms` | List all rooms with states | "What rooms are available?" | | `control_room_lights` | Control entire rooms | "Turn off the bedroom" | | `list_zones` | List all zones with states | "What zones do I have?" | | `control_zone_lights` | Control entire zones | "Set Main Area to relaxing" | ### 🎭 Scene Management | Tool | Description | Example | |------|-------------|---------| | `list_scenes` | Browse scenes with categories | "What scenes can I activate?" | | `activate_scene` | Activate predefined scenes | "Activate the relax scene" | ### 🎛️ Individual Control & Overview | Tool | Description | Example | |------|-------------|---------| | `set_light_state` | Control with natural language | "Turn on the desk lamp to warm white" | | `get_summary` | System overview with insights | "Give me a lighting summary" | ### 🔧 Bridge & System Management | Tool | Description | Example | |------|-------------|---------| | `get_bridge_config` | Bridge configuration and system info | "Show me bridge settings" | | `get_info` | Server version and system information | "What version am I running?" | ### 👥 User Management | Tool | Description | Example | |------|-------------|---------| | `list_users` | List all whitelisted users | "Who has access to the bridge?" | | `get_user` | Detailed user information | "Show me details for user abc123" | ### ✨ Enhanced Features All tools now include: - **🎯 Quick Actions** - Pre-built suggestions for common tasks - **💡 Smart Recommendations** - Energy tips and troubleshooting - **📊 Rich Context** - Room relationships and capability info - **🔍 Filtering & Search** - Find exactly what you need - **📈 Summary Statistics** - Overview data for better decisions ### 💬 Chatbot UX Optimizations For sustained conversation efficiency: - **📏 Smart Response Sizing** - `compact`, `standard`, `verbose` modes - **🧠 Context Management** - Learns preferences, adapts over time - **📊 Intelligent Pagination** - Never overwhelms with too much data - **🎛️ Progressive Disclosure** - Start minimal, expand on request - **⚡ Conversation State** - Tracks usage for optimal tool selection ## 🎨 Natural Language Examples ### 🔍 Smart Search Queries - "Find all kitchen lights" → Searches by room name - "Show me lights that are on" → Filters by current state - "Color bulbs in the bedroom" → Searches by capability and room - "All unreachable lights" → Finds connectivity issues ### 💬 Conversation Efficiency Examples - "Quick status" → Uses minimal context for fast response - "What lights do I have?" (first time) → Standard detail level - "What lights do I have?" (repeated) → Compact response - "Turn on bedroom lights" → Suggests room control over individual lights ### 🎨 Colors & Moods - "stormy dusk" → Deep blue-purple with low brightness - "warm white" → Comfortable warm temperature - "sunrise" → Orange-yellow with medium brightness - "ocean" → Blue-cyan colors - "fire" → Red-orange with high saturation ### 🌟 Atmospheric Scenes (Auto-Variation) These keywords trigger realistic individual light variations: - "thunderstorm", "stormy" → Varied blues with different intensities - "sunset", "sunrise" → Gradient of warm colors across lights - "fireplace", "candlelight" → Flickering warm variations - "forest", "ocean" → Natural color variations - "cozy", "romantic" → Subtle warm variations ### Brightness & Settings - "dim blue slowly" → Blue color with slow transition - "bright red" → Red at full brightness - "50% warm white" → Warm temperature at half brightness ### Room & Zone Control - "Turn the living room to energizing mode" - "Set bedroom lights to candlelight" - "Make the office bright and cool" - "Set the Main Area zone to something relaxing for a sunday evening" - "Turn off all lights in the downstairs zone" ## 🏗️ Architecture Built with modern technologies: - **TypeScript** - Type-safe development - **node-hue-api v5** - Official Hue SDK integration - **React + Vite** - Modern setup wizard - **Express** - Setup server backend - **Vitest** - Fast unit testing - **ESLint + Prettier** - Code quality ### Key Design Principles - **Dual-mode operation** - Cached responses with direct API fallback - **Graceful degradation** - Always attempts to fulfill requests - **Rate limiting protection** - Prevents API abuse - **Comprehensive error handling** - Clear, actionable error messages ## 🚀 Performance Optimizations ### API Efficiency - **60-70% fewer API calls** through optimistic caching - **5x longer cache lifetime** (1min → 5min) with smart invalidation - **Bulk operations** preferred over individual light controls - **Rate limiting protection** with 2-minute discovery caching - **Parallel execution** for atmospheric variations (all lights updated simultaneously) ### Chatbot Context Management - **75% smaller responses** in compact mode - **Smart pagination** - max 5-20 results based on detail level - **Progressive disclosure** - minimal → standard → verbose - **Conversation state tracking** - learns and adapts over time - **Query optimization** - suggests more efficient alternatives ### Memory & Context Window - **Adaptive response sizing** based on conversation stage - **Context-aware parameters** automatically optimized - **Intelligent truncation** with clear continuation hints - **Tool selection guidance** for optimal efficiency ## 🔍 Troubleshooting ### Common Issues **"No bridges found"** - Ensure your Hue bridge is powered on and connected to the same network - Try manual IP entry in the setup wizard **"Authentication failed"** - Make sure to press the physical button on your Hue bridge - The button must be pressed within 30 seconds of starting authentication **"Connection test failed"** - Verify your bridge IP address is correct - Check that your API key is valid - Ensure your firewall allows connections to the bridge For more help, see our [Troubleshooting Guide](docs/troubleshooting.md). ## 🧪 Testing Your Setup Test your configuration: ```bash # Test connection to your bridge npm run test:connection # Run unit tests npm test # Check TypeScript types npm run typecheck ``` ## 📄 Configuration The server supports multiple configuration methods: 1. **Environment variables** (highest priority) 2. **hue-config.json** file 3. **.env** file (lowest priority) ### Configuration Options | Variable | Description | Default | |----------|-------------|---------| | `HUE_BRIDGE_IP` | Bridge IP address | Required | | `HUE_API_KEY` | API authentication key | Required | | `HUE_SYNC_INTERVAL_MS` | Cache refresh interval | 300000 (5 min) | | `HUE_ENABLE_EVENTS` | Real-time event updates | false | | `LOG_LEVEL` | Logging verbosity | info | ## 🤝 Contributing We welcome contributions! Please see our [Development Guide](docs/development.md) for details. ### Development Setup ```bash # Clone and install git clone https://github.com/your-username/hue-mcp.git cd hue-mcp npm install # Run tests npm test # Start development server npm run dev ``` ## 📈 Performance - **95% API call reduction** through intelligent caching - **Sub-second response times** for cached data - **Graceful fallbacks** when cache is unavailable - **Rate limiting protection** prevents bridge overload ## 🔒 Security - **Local network only** - No external API calls except bridge discovery - **No data collection** - All lighting data stays local - **Secure authentication** - API keys stored locally - **HTTPS communication** with Hue bridge ### 🛡️ User Management Security The server includes user management tools with built-in safety protections: - **👀 Read-only access** - User tools provide visibility into bridge access without modification - **📝 Audit trail** - All user operations are logged with metadata - **🔒 Local network only** - All user data stays on your local network **Note:** User deletion is not supported as Philips Hue deprecated this feature in their local API. To remove users, use the official [Philips Hue Account Management](https://account.meethue.com/apps) web interface. ## 📝 License MIT License - see [LICENSE](LICENSE) file for details. ## 🙏 Acknowledgments - [Philips Hue](https://www.philips-hue.com/) for the amazing smart lighting platform - [node-hue-api](https://github.com/peter-murray/node-hue-api) for the excellent SDK - [Model Context Protocol](https://modelcontextprotocol.io/) for the AI integration framework - [Anthropic](https://anthropic.com/) for Claude and MCP development --- **Made with ❤️ for the smart home community** Need help? Check our [documentation](docs/) or open an issue!

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/rmrfslashbin/hue-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server