Skip to main content
Glama
techsterowniki

sinum-mcp

README.md
# Sinum MCP Server

Model Context Protocol server for Sinum smarthome system.

## Description

This MCP server enables interaction with the Sinum system through Model Context Protocol. It allows retrieving device information and managing the smarthome system.

## Features

- **device_list**: Retrieving list of all devices in the Sinum system
- **scene_list**: Retrieving list of all scenes in the Sinum system
- **scene_activate**: Activating scenes by ID
- **toggle_light**: Toggling light devices (relay type with purpose === light)
- API key authorization
- Support for various device types (WTP, TECH, Virtual, SBus, SLink, LoRa, Modbus, etc.)

## Installation

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

2. Configure environment variables:
```bash
cp env.example .env
```

3. Edit the `.env` file and set:
- `SINUM_API_URL`: Sinum API URL (default: http://sinum.local/api/v1)
- `SINUM_API_KEY`: Your API key for the Sinum system

**Important:** Replace `your_api_key_here` with your actual API key from the Sinum system.

## Running

### Development mode:
```bash
npm run dev
```

### Production mode:
```bash
npm run build
npm start
```

## MCP Configuration

Add the server to your MCP configuration:

```json
{
  "mcpServers": {
    "sinum": {
      "command": "node",
      "args": ["/path/to/sinum-mcp/dist/index.js"],
      "env": {
        "SINUM_API_URL": "http://sinum.local/api/v1",
        "SINUM_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

## API

### device_list

Retrieves a list of all devices in the Sinum system.

**Parameters:**
- `modified_since` (optional): Timestamp - returns only devices modified after this date

**Returns:**
- Collection of devices grouped by types (WTP, TECH, Virtual, SBus, SLink, LoRa, Modbus, System Module, Alarm System, Video, Custom Device Module)

### scene_list

Retrieves a list of all scenes in the Sinum system.

**Parameters:**
- None

**Returns:**
- Collection of scenes with their details

### scene_activate

Activates a scene with the given ID in the Sinum system.

**Parameters:**
- `id` (required): ID of the scene to activate

**Returns:**
- Success status and message

### toggle_light

Toggles the state of a light device (on/off) for devices of type relay with purpose === light.

**Parameters:**
- `device_id` (required): ID of the device to toggle

**Returns:**
- Success status, message, and updated device information

## Project Structure

```
sinum-mcp/
├── src/
│   ├── index.ts              # Main server file
│   ├── types/
│   │   ├── device.ts         # Device types
│   │   └── api.ts           # API types
│   ├── services/
│   │   └── sinum-api.ts     # Service for communication with Sinum API
│   └── tools/
│       ├── device-list.ts   # Tool for retrieving device list
│       ├── scene-list.ts    # Tool for retrieving scene list
│       ├── scene-activate.ts # Tool for activating scenes
│       └── toggle-light.ts  # Tool for toggling light devices
├── dist/                    # Compiled files
├── package.json
├── tsconfig.json
└── README.md
```

## License

MIT

TDQS

A3.6/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct functionality: device listing, scene listing, scene activation, and light toggling. There is no overlap or ambiguity.

Naming Consistency4/5

Tools use snake_case, but patterns vary: two use 'noun_list' (device_list, scene_list) and two use 'verb_noun' (scene_activate, toggle_light). Mostly consistent with minor deviation.

Tool Count4/5

Four tools is a reasonable number for a basic smarthome server. It covers core operations without being too sparse or overloaded.

Completeness3/5

The set covers essential device listing, scene management, and light toggling, but lacks control over other device types (e.g., temperature, blinds) and advanced operations like brightness or scene creation, leaving notable gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues