Skip to main content
Glama
kaeljune

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.

Maintenance

ActivityInactive
ResponsivenessNo issues