Domotz MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Domotz MCP ServerShow me all offline devices on my main office network"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Domotz MCP Server
An MCP server for the Domotz Public API (v1), the network monitoring platform MSPs run on client sites. It lets an AI agent read collectors and the devices they discover, device uptime and state-change history, inventory fields, variables and SNMP sensors with their history, network topology, monitored networks, IP conflicts, alert profiles and smart power outlets and, on explicit request, switch an outlet.
Transport: MCP Streamable HTTP at
POST /mcp, health probe atGET /healthStateless and multi-tenant: the key arrives on every request as an HTTP header and is never stored; every tool is listed from the first
tools/listPython 3.12, uv, FastMCP, httpx
License: Apache-2.0, Copyright 2026 MSPbots.ai
Authentication headers
Header | Required | Type | Default | Allowed values | Description | Example |
| Yes | string | none | - | Domotz Public API key |
|
| No | string |
|
| Domotz cell that hosts the account |
|
Where to get them: in the Domotz portal open Settings -> Services -> API Keys and create a
key with full access (an "Agent Activation only" key cannot read data). The same page shows
the account's API endpoint, for example https://api-us-east-1-cell-1.domotz.com/public-api/v1;
pass it, or its region, as X-Domotz-Region.
How the key is sent to Domotz: every call goes to
https://api-{region}-cell-1.domotz.com/public-api/v1/... with the key in the X-Api-Key
header. An endpoint URL is accepted only over https on a domotz.com host.
A request to /mcp without the key gets HTTP 401; an unknown region gets HTTP 400.
Related MCP server: Domotz MCP Server
Tools
All tools return a JSON string. agent_id comes from domotz_agents_list and device_id from
domotz_devices_list. History tools take an optional ISO 8601 window (from_time, to_time).
Tool | Purpose | Parameters (required in bold) |
| Describe the tools of one area (changes nothing) | domain ( |
| List every area and its tools (changes nothing) | - |
| Connection check and the key's API call usage and limits | - |
| Collectors (one per site): status, IP, location, licence | display_name, page_size, page_number |
| One collector's details | agent_id |
| Devices on a collector's network, with counts by status | agent_id, show_hidden, show_excluded |
| One device: vendor, model, OS, IP / MAC, status, importance | agent_id, device_id |
| A device's uptime over a window | agent_id, device_id, from_time, to_time |
| A device's state-change (online / offline / down) events | agent_id, device_id, from_time, to_time |
| A device's inventory fields (owner, location, notes, ...) | agent_id, device_id |
| A device's monitored variables with current values | agent_id, device_id, page_size, page_number, has_history |
| Value history of one variable | agent_id, device_id, variable_id, from_time, to_time |
| Custom SNMP sensors configured on a device | agent_id, device_id |
| Value history of one SNMP sensor | agent_id, device_id, sensor_id, from_time, to_time |
| Site topology: which devices connect where | agent_id |
| Networks (interfaces / subnets) a collector monitors | agent_id |
| Active IP address conflicts | agent_id |
| Alert profiles of the account | - |
| Alert profiles bound to one device | agent_id, device_id |
| A PDU's / smart plug's outlets and power state | agent_id, device_id |
| Switch an outlet on, off or power-cycle it (write) | agent_id, device_id, outlet_id, action ( |
Errors come back as a JSON envelope instead of an exception:
{"error": {"code": "unauthorized", "message": "Domotz returned HTTP 401 for agent: ...", "retryable": false}}code is one of not_configured, unauthorized, not_found, invalid_argument,
rate_limited, upstream_error. Reads are retried with backoff on 429, 5xx and network
errors; the outlet action is retried only on 429. Domotz limits API calls per day according to
the plan; domotz_status shows the current usage.
Run locally
uv sync
uv run python -m domotz_mcp # listens on 0.0.0.0:8080or with Docker:
docker build --platform linux/amd64 -t domotz-mcp:dev .
docker run --rm -p 8080:8080 domotz-mcp:devConfiguration (environment variables, all optional): MCP_HTTP_HOST (default 0.0.0.0),
MCP_HTTP_PORT (default 8080), LOG_LEVEL (default INFO). The key is never read from the
environment.
Testing example
# list tools
curl -s http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-Domotz-API-Key: your-api-key" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
# collectors of an EU account
curl -s http://localhost:8080/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-Domotz-API-Key: your-api-key" \
-H "X-Domotz-Region: eu" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"domotz_agents_list","arguments":{}}}'Unit tests (no network access needed):
uv run pytestDelivery notes
All tools always listed. Older versions only listed navigation tools until one was called. Behind a stateless gateway that hid every other tool, so this version lists all 21 tools up front.
domotz_navigateanddomotz_backremain for compatibility and only describe the tools.Built on the documented endpoints.
domotz_alerts_device_listused a route that is not in the Domotz OpenAPI definition; it now reads the collector's device bindings (/alert-profile/binding/agent/{agent_id}/device) and keeps the requested device.domotz_devices_historynow returns state-change events (/history/network/event), which is what its description promised, instead of round-trip delay statistics.Region.
us/euand the cell names map to the two public cells (us-east-1,eu-west-1); older versions turnedusinto a host that does not exist.Outlet control.
domotz_power_outlet_controlstill requiresconfirm: trueand returns a "not sent" result without it.New optional parameters. History tools gained
from_time/to_time; list tools gained the paging and filter options the API offers.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
Free, no-API-key network lookups for AI agents — IP geolocation, DNS, WHOIS, HTTP and SSL/TLS certificate checks, and full domain health reports.
- mcp-serverOAuthcom.make
Give your AI agents the tools to build, manage, and run automation workflows.
Monitors TLS/SSL certificate expiry, DNS resolution, and TCP port status for AI agents.
Live outage status, internet dependencies and pay-per-call market intelligence for AI agents.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI assistants to interact with ManageEngine OpManager for network monitoring and IT operations management. Provides credential-less access to 85+ API endpoints for managing devices, alarms, discovery, dashboards, and reports through natural language.852MIT
- AlicenseAqualityDmaintenanceEnables Claude to query and manage Domotz network monitoring through 133 API actions, covering collectors, devices, alerts, and configuration.136MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to interact with the Netdisco network management platform through its complete REST API, supporting device inspection, port queries, VLAN searches, and job management.MIT
- FlicenseNot gradedqualityBmaintenanceEnables AI agents to safely troubleshoot networks through read-only tools for device inventory, interface status, VLAN paths, BGP neighbors, route lookups, and interface error detection. Integrates with Microsoft Copilot Studio and Teams for natural-language-driven network diagnostics.-