
Product
Introducing Rust Support in Socket
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.
domotz-mcp
Advanced tools
MCP server for Domotz API and BMS (Building Management System) integration with IoT device monitoring
An MCP (Model Context Protocol) server for interacting with the Domotz API, BMS (Building Management System) controllers, MQTT brokers, and Home Assistant. This server provides comprehensive tools for IoT device management, monitoring, and control.
The BMS (Building Management System) integration extends the base Domotz MCP functionality for comprehensive IoT exploration and management.
Current Status:
Full MQTT broker support for IoT device communication:
Direct integration with Home Assistant for smart home control:
npm install -g domotz-mcp
Required for Domotz:
DOMOTZ_API_KEY
: Your Domotz API keyDOMOTZ_API_ENDPOINT
: The Domotz API endpoint URLOptional for MQTT:
MQTT_BROKER_URL
: Default MQTT broker URLMQTT_USERNAME
: Default MQTT usernameMQTT_PASSWORD
: Default MQTT passwordOptional for Home Assistant:
HA_URL
: Default Home Assistant URLHA_ACCESS_TOKEN
: Default Home Assistant long-lived access tokenAdd the following to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"domotz": {
"command": "npx",
"args": ["domotz-mcp"],
"env": {
"DOMOTZ_API_KEY": "your-domotz-api-key-here",
"DOMOTZ_API_ENDPOINT": "https://api-eu-west-1-cell-1.domotz.com/public-api/v1/",
"MQTT_BROKER_URL": "mqtt://your-mqtt-broker:1883",
"MQTT_USERNAME": "your-mqtt-username",
"MQTT_PASSWORD": "your-mqtt-password",
"HA_URL": "http://homeassistant.local:8123",
"HA_ACCESS_TOKEN": "your-home-assistant-long-lived-token"
}
}
}
}
{
"mcpServers": {
"domotz": {
"command": "npx",
"args": ["domotz-mcp"],
"env": {
"DOMOTZ_API_KEY": "your-api-key-here",
"DOMOTZ_API_ENDPOINT": "https://api-eu-west-1-cell-1.domotz.com/public-api/v1/"
}
}
}
}
# Required for Domotz
export DOMOTZ_API_KEY="your-api-key-here"
export DOMOTZ_API_ENDPOINT="https://api-eu-west-1-cell-1.domotz.com/public-api/v1/"
# Optional for MQTT
export MQTT_BROKER_URL="mqtt://localhost:1883"
export MQTT_USERNAME="your-mqtt-username"
export MQTT_PASSWORD="your-mqtt-password"
# Optional for Home Assistant
export HA_URL="http://homeassistant.local:8123"
export HA_ACCESS_TOKEN="your-home-assistant-token"
npx domotz-mcp
export DOMOTZ_API_KEY="your-api-key-here"
export DOMOTZ_API_ENDPOINT="https://api-eu-west-1-cell-1.domotz.com/public-api/v1/"
npx domotz-mcp
Get a list of all Domotz agents.
Parameters:
page_size
(string): Number of agents per page (1-100)page_number
(string): Page number (0-based)Get details of a specific Domotz agent.
Parameters:
agent_id
(number): The ID of the agent to retrieveBind a webhook to a Domotz agent for receiving events.
Parameters:
agent_id
(number): The ID of the agent to bind the webhook towebhook_url
(string): The webhook URL to receive eventsevents
(array, optional): Array of event types to subscribe to (defaults to all events)Fetch data from the Domotz API using the configured endpoint and API key.
Parameters:
endpoint
(string): The API endpoint path (e.g., 'agents', 'devices', etc.)method
(string): HTTP method to use (GET, POST, PUT, DELETE)params
(string, optional): Query parameters for the requestdata
(string, optional): Request body data for POST/PUT requestsConnect to BMS controllers to retrieve data points and system information.
Parameters:
ip
(string): IP address of the BMS controllerport
(string, optional): Port number (default: "80")protocol
(string, optional): Connection protocol - 'http', 'https', 'bacnet', 'modbus' (default: "http")
username
(string, optional): Authentication usernamepassword
(string, optional): Authentication passwordSupported BMS Types:
Provides continuous monitoring of BMS controller data points with historical tracking.
Parameters:
ip
(string): IP address of the BMS controllerport
(string, optional): Port number (default: "80")protocol
(string, optional): 'http' or 'https' (default: "http")username
(string, optional): Authentication usernamepassword
(string, optional): Authentication passwordinterval
(string, optional): Monitoring interval in seconds (default: "60")data_points
(array, optional): Array of specific data point names to monitorFeatures:
Connect to an MQTT broker for IoT device communication.
Parameters:
broker_url
(string): MQTT broker URL (e.g., mqtt://localhost, ws://broker.hivemq.com)client_id
(string, optional): Client ID for the connection (auto-generated if not provided)username
(string, optional): Username for authenticationpassword
(string, optional): Password for authenticationport
(string, optional): Port number (default: "1883" for mqtt, "8083" for ws)clean_session
(boolean, optional): Start with clean session (default: true)keepalive
(string, optional): Keepalive interval in seconds (default: "60")Subscribe to MQTT topics to receive messages from IoT devices.
Parameters:
connection_id
(string): The connection ID from mqtt_connecttopic
(string): MQTT topic to subscribe to (supports wildcards: + and #)qos
(number, optional): Quality of Service level (0, 1, or 2, default: 0)duration
(string, optional): Duration to listen in seconds (default: "10")Publish messages to MQTT topics to control IoT devices.
Parameters:
connection_id
(string): The connection ID from mqtt_connecttopic
(string): MQTT topic to publish tomessage
(string): Message payload (can be JSON string for complex data)qos
(number, optional): Quality of Service level (0, 1, or 2, default: 0)retain
(boolean, optional): Retain message on broker (default: false)Discover entities and devices in Home Assistant.
Parameters:
ha_url
(string): Home Assistant URL (e.g., http://homeassistant.local:8123)access_token
(string): Long-lived access token from Home Assistantentity_type
(string, optional): Filter by entity type (e.g., light, switch, sensor, climate)Control Home Assistant entities (lights, switches, climate, etc.).
Parameters:
ha_url
(string): Home Assistant URLaccess_token
(string): Long-lived access token from Home Assistantentity_id
(string): Entity ID to control (e.g., light.living_room, switch.garage)action
(string): Action to perform (turn_on, turn_off, toggle, set_temperature, etc.)service_data
(string, optional): Additional service data as JSON stringnpm install
npm run build
export DOMOTZ_API_KEY="your-api-key"
export DOMOTZ_API_ENDPOINT="your-endpoint"
node dist/index.js
# Get all agents
{
"tool": "get_all_agents",
"parameters": {
"page_size": "50",
"page_number": "0"
}
}
# Get devices for a specific agent
{
"tool": "get_domotz_data",
"parameters": {
"endpoint": "agents/12345/devices",
"method": "GET"
}
}
# Connect to a BMS controller
{
"tool": "bms_connect",
"parameters": {
"ip": "192.168.1.100",
"port": "80",
"protocol": "http"
}
}
# Monitor BMS data points
{
"tool": "bms_monitor",
"parameters": {
"ip": "192.168.1.100",
"interval": "30",
"data_points": ["temperature", "humidity", "pressure"]
}
}
# Connect to MQTT broker
{
"tool": "mqtt_connect",
"parameters": {
"broker_url": "mqtt://test.mosquitto.org",
"client_id": "domotz_mcp_client"
}
}
# Subscribe to sensor data
{
"tool": "mqtt_subscribe",
"parameters": {
"connection_id": "domotz_mcp_client",
"topic": "sensors/+/temperature",
"duration": "30"
}
}
# Control a device
{
"tool": "mqtt_publish",
"parameters": {
"connection_id": "domotz_mcp_client",
"topic": "devices/light/control",
"message": "{\"state\": \"on\", \"brightness\": 80}"
}
}
# Discover all devices
{
"tool": "ha_discover",
"parameters": {
"ha_url": "http://192.168.1.100:8123",
"access_token": "your-long-lived-token"
}
}
# Turn on a light
{
"tool": "ha_control",
"parameters": {
"ha_url": "http://192.168.1.100:8123",
"access_token": "your-long-lived-token",
"entity_id": "light.living_room",
"action": "turn_on",
"service_data": "{\"brightness\": 255, \"color_name\": \"blue\"}"
}
}
DOMOTZ_API_KEY
environment variable is set correctlyusername
and password
parameters.bin
field to package.json to enable npx
executionISC
FAQs
MCP server for Domotz API and BMS (Building Management System) integration with IoT device monitoring
We found that domotz-mcp demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports Rust and Cargo, offering package search for all users and experimental SBOM generation for enterprise projects.
Product
Socket’s precomputed reachability slashes false positives by flagging up to 80% of vulnerabilities as irrelevant, with no setup and instant results.
Product
Socket is launching experimental protection for Chrome extensions, scanning for malware and risky permissions to prevent silent supply chain attacks.