Skip to main content
Glama
Fibaro HC3 MCP Server

Fibaro HC3 MCP Server

by kaeljune
README.md
# Fibaro HC3 MCP Server

> **⚠️ DEMO VERSION DISCLAIMER**  
> This is a **demonstration/educational version** of the Fibaro HC3 MCP Server. It is **NOT a commercial product** and is provided as-is for learning and testing purposes only. Use at your own risk.

An MCP (Model Context Protocol) Server for controlling Fibaro Home Center 3 through Claude AI.

## Features

- **Auto-connect** to Fibaro HC3 on startup (one-time configuration)
- Retrieve information about devices, scenes, and rooms
- Control devices (turn on/off, set values, brightness, colors)
- Run and stop scenes
- Full Claude AI integration for natural language control
- Support for RGB lights with color name mapping
- HTTP/HTTPS protocol support

## Installation

### 🚀 Quick Installation (Recommended)

**One-command installation** - no need to clone the repository:

```bash
curl -sSL https://raw.githubusercontent.com/kaeljune/fibaro-mcp-server/main/quick-install.sh | bash
```

This script will:
- ✅ Check dependencies (git, node.js, npm)
- ✅ Choose your AI client (Claude Desktop or Cursor)
- ✅ Automatically clone the repository
- ✅ Ask for Fibaro HC3 connection details
- ✅ Test the connection
- ✅ Install dependencies and build the project
- ✅ Configure your AI client automatically
- ✅ Ready to use!

### 📋 Manual Installation

If you prefer to install manually:

1. Clone this repository:
```bash
git clone https://github.com/kaeljune/fibaro-mcp-server.git
cd fibaro-mcp-server
```

2. Install dependencies:
```bash
npm install
```

3. Build the project:
```bash
npm run build
```

4. Run the configuration script:
```bash
./install-claude.sh
```

## Usage

After installation, **no manual connection required**. The MCP server will automatically connect to Fibaro HC3 when your AI client (Claude Desktop or Cursor) starts.

### Supported AI Clients
- **Claude Desktop** - Full MCP support
- **Cursor** - MCP integration for AI-powered coding

### 1. View Device List

```
Show all devices
```

### 2. Control Lights

```
Turn off light number 3
```

```
Turn on living room light
```

```
Set light number 5 brightness to 50%
```

### 3. Control RGB Lights

```
Change RGB light number 10 to red
```

```
Set RGB light number 10 to purple (255,0,255,0)
```

### 4. Run Scenes

```
Run scene "Good Night"
```

## Available Commands

### Information
- `fibaro_get_devices`: Get list of all devices
- `fibaro_get_device`: Get detailed device information by ID
- `fibaro_get_scenes`: Get list of all scenes
- `fibaro_get_scene`: Get detailed scene information by ID
- `fibaro_get_rooms`: Get list of all rooms

### Control
- `fibaro_turn_on_device`: Turn on device by ID
- `fibaro_turn_off_device`: Turn off device by ID
- `fibaro_set_device_value`: Set property value for device
- `fibaro_set_brightness`: Set brightness for lights/dimmers (0-100%)
- `fibaro_set_color`: Set RGB color for RGB lights (R,G,B,W: 0-255)
- `fibaro_control_rgb_light`: Complete RGB light control (on/off + color + brightness)
- `fibaro_run_scene`: Run scene by ID
- `fibaro_stop_scene`: Stop scene by ID

## Integration Examples

After configuration, you can talk to Claude like:

- "Turn off all lights in the house"
- "Turn on bedroom light"
- "Run good morning scene"
- "Show status of all sensors"
- "Set living room light brightness to 50%"
- "Change living room RGB light to green"
- "Set RGB light number 5 to light purple"

Claude will automatically:
1. Connect to Fibaro HC3 (if not already connected)
2. Find matching devices/scenes
3. Execute control commands
4. Report results

## Security

- This server only connects locally to Fibaro HC3
- Login credentials are stored securely in MCP configuration
- Supports both HTTP and HTTPS with self-signed certificate acceptance
- No sensitive information is stored in logs

## Troubleshooting

### Cannot connect to Fibaro HC3

- Re-run the installation script: `./install-claude.sh`
- Check IP address and port (default HTTP: 80, HTTPS: 443)
- Ensure username/password are correct
- Check firewall and network connectivity
- Try accessing HC3 web interface from browser

### MCP Server not working

- Check the path in Claude configuration
- Ensure project has been built (`npm run build`)
- Restart Claude Desktop after configuration changes
- Check Claude Desktop logs for detailed error messages

### Changing Fibaro HC3 connection information

To change IP, username, or password:
1. Re-run the installation script: `./install-claude.sh`
2. Enter new information
3. Restart Claude Desktop

## License

This is a demo/educational project. Not for commercial use.

TDQS

B3.4/5.0

Scored across 13 tools

Disambiguation4/5

Most tools have distinct purposes, such as fibaro_get_devices for retrieving all devices and fibaro_run_scene for starting scenes. However, there is some overlap between fibaro_control_rgb_light and the more specific fibaro_set_brightness and fibaro_set_color tools, which could cause confusion when controlling RGB lights, as the general tool combines functions of the specialized ones.

Naming Consistency5/5

All tool names follow a consistent snake_case pattern with a 'fibaro_' prefix and a clear verb_noun structure, such as fibaro_get_device, fibaro_set_brightness, and fibaro_turn_on_device. This uniformity makes the tool set predictable and easy to navigate.

Tool Count5/5

With 13 tools, the count is well-scoped for a home automation server covering devices, scenes, and control actions. Each tool serves a specific function, such as retrieval, control, or scene management, without redundancy, making the set comprehensive yet manageable.

Completeness4/5

The tool set provides good coverage for the Fibaro HC3 domain, including CRUD-like operations for devices and scenes (get, turn on/off, set properties) and scene control (run, stop). A minor gap is the lack of tools for creating or deleting devices or scenes, but agents can likely work around this with existing tools for most common tasks.