Skip to main content
Glama
jacedomotz

Domotz MCP Server

by jacedomotz

Domotz MCP Server for Claude

Connect Claude AI to your Domotz network monitoring platform using the Model Context Protocol (MCP). This integration gives Claude access to 10 category tools covering 133 API actions, enabling natural language queries about your network infrastructure.

What This Does

With this MCP server, you can ask Claude things like:

  • "Show me all devices on the network that are currently offline"

  • "What's the uptime history for my core switch(s) over the last month?"

  • "List all collectors and their connection status"

  • "Are there any active IP conflicts?"

Claude translates your natural language requests into Domotz API calls and presents the results in a readable format.


Related MCP server: firewalla-mcp

Prerequisites

Before you begin, ensure you have:

  1. A Domotz account with API access enabled

  2. Claude Desktop installed (download here)

  3. Node.js 18+ installed on your system

  4. Your Domotz API Key (see below for how to generate one)


Quick Start

Step 1: Generate Your Domotz API Key

  1. Log into the Domotz Portal

  2. Navigate to Account SettingsAPI Keys

  3. Click Generate New Key

  4. Copy and save the key securely (you won't be able to see it again)

Step 2: Download the MCP Server Files

Clone or download this repository to your local machine:

git clone https://github.com/jacedomotz/domotz-mcp-server.git
cd domotz-mcp-server

Remember where you save this folder - you'll need the full path in Step 4.

Step 3: Install Dependencies

npm install

Step 4: Configure Claude Desktop

Locate your Claude Desktop configuration file:

OS

Path

macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Windows

%APPDATA%\Claude\claude_desktop_config.json

Linux

~/.config/Claude/claude_desktop_config.json

Open the file and add the Domotz MCP server configuration. Use claude_desktop_config.example.json as a reference:

{
  "mcpServers": {
    "domotz": {
      "command": "node",
      "args": ["REPLACE_WITH_FULL_PATH_TO/domotz-mcp-server/index.js"],
      "env": {
        "DOMOTZ_API_KEY": "YOUR_API_KEY_HERE",
        "DOMOTZ_API_BASE_URL": "https://api-us-east-1-cell-1.domotz.com/public-api/v1"
      }
    }
  }
}

You MUST customize three things:

  1. args path - Replace with the full path to index.js on your machine:

    • Windows example: ["C:\\Users\\YourName\\domotz-mcp-server\\index.js"]

    • Mac example: ["/Users/yourname/domotz-mcp-server/index.js"]

    • Linux example: ["/home/yourname/domotz-mcp-server/index.js"]

  2. DOMOTZ_API_KEY - Replace with your actual API key from Step 1

  3. DOMOTZ_API_BASE_URL - Use the URL matching your Domotz account region:

    • US: https://api-us-east-1-cell-1.domotz.com/public-api/v1

    • Europe: https://api-eu-west-1-cell-1.domotz.com/public-api/v1

Windows users: Use double backslashes (\\) in the path, or forward slashes (/).

Step 5: Restart Claude Desktop

Quit and reopen Claude Desktop to load the new MCP server configuration.

Step 6: Verify the Connection

In Claude, try asking:

"List my Domotz collectors"

If configured correctly, Claude will query the Domotz API and return your collector list.


Available Capabilities

This MCP server exposes 10 category tools covering 133 Domotz API actions:

Tool

Actions

Example Operations

domotz_agents

31

List collectors, status history, uptime, VPN, topology, variables

domotz_devices

17

List/get devices, status history, RTD metrics, connect, uptime

domotz_monitoring

13

SNMP sensors, TCP sensors, triggers, sensor history

domotz_alerts

8

Alert profiles, bind/unbind to collectors and devices

domotz_network

14

Scan policies, interfaces, routed networks, excluded devices

domotz_configuration

8

Config backups, credentials, SNMP authentication

domotz_power

7

Power actions, outlets, attach/detach devices

domotz_drivers

8

Custom drivers, associations, execute driver actions

domotz_inventory

19

Custom fields, tags, device profiles, device types

domotz_account

5

User info, API usage, areas, teams

Each tool uses an action parameter to select which API operation to perform. For example, domotz_agents with action: "list" lists all collectors, while action: "ip_conflicts" checks for IP conflicts.


Example Queries

Here are some practical queries you can try:

Network Overview

  • "Give me a summary of all my Domotz collectors and their status"

  • "How many devices are being monitored across all my sites?"

Troubleshooting

  • "Show me all offline devices on collector 12345"

  • "What's the RTD (latency) history for device 67890 over the past week?"

  • "Are there any IP conflicts on the main office network?"

Reporting

  • "List all devices with their last seen status for the Acme Corp site"

  • "Show me the internet speed test history for the past month"

Configuration

  • "What SNMP sensors are configured on device 11111?"

  • "List all custom tags I've created"


Troubleshooting

"Claude doesn't see the Domotz tools"

  1. Verify the path in claude_desktop_config.json is correct and points to index.js

  2. Ensure Node.js is installed and accessible from your PATH

  3. Check that the API key is set correctly (no extra spaces or quotes issues)

  4. Restart Claude Desktop completely (not just close the window)

"API calls are failing"

  1. Verify your API key is valid in the Domotz portal

  2. Check that you're using the correct regional API URL (US vs Europe)

  3. Ensure you have the appropriate permissions for the operations you're attempting

"Rate limiting errors"

The Domotz API has rate limits. If you're making many requests in quick succession, you may hit these limits. Wait a moment and try again.


Security Notes

  • Never share your API key publicly - The key in claude_desktop_config.json is for your use only

  • API keys have full account access - Anyone with your key can access your Domotz data

  • This MCP server file is safe to share - It contains only endpoint definitions, not credentials

  • Rotate keys if compromised - Generate a new key in the Domotz portal if you suspect exposure


File Structure

domotz-mcp-server/
├── index.js                            # MCP server entry point
├── package.json                        # Node.js dependencies
├── README.md                           # This file
├── LICENSE                             # MIT license
├── claude_desktop_config.example.json  # Claude Desktop config template
├── lib/
│   ├── api.js                          # Domotz API client (Axios)
│   └── registry.js                     # Generic action dispatcher
├── categories/
│   ├── agents.js                       # domotz_agents (31 actions)
│   ├── devices.js                      # domotz_devices (17 actions)
│   ├── monitoring.js                   # domotz_monitoring (13 actions)
│   ├── alerts.js                       # domotz_alerts (8 actions)
│   ├── network.js                      # domotz_network (14 actions)
│   ├── configuration.js               # domotz_configuration (8 actions)
│   ├── power.js                        # domotz_power (7 actions)
│   ├── drivers.js                      # domotz_drivers (8 actions)
│   ├── inventory.js                    # domotz_inventory (19 actions)
│   └── account.js                      # domotz_account (5 actions)
└── .claude/
    └── skills/
        └── domotz-api/                 # Claude Code skill (auto-loaded)
            ├── SKILL.md                # Main skill reference
            ├── references/
            │   └── tool-reference.md   # Full action catalog
            └── examples/
                └── common-queries.md   # Natural language → tool call examples

Resources


License

MIT License - See LICENSE file for details.


About

This MCP server was created to help MSPs, IT teams, and network administrators leverage AI for network monitoring and management tasks. By connecting Claude to Domotz, you can query your network infrastructure using natural language instead of navigating multiple dashboards.

Questions? Reach out to the Domotz community on https://www.reddit.com/r/domotz/.

Available Tools

13 tools
domotz_accountA

Account information, API usage, areas, and teams. Use the "action" parameter to select an operation.

ACTION REFERENCE:

  • get_user: Get current authenticated user info (no parameters needed)

  • api_usage: Get API usage statistics (no parameters needed)

  • list_areas: List all areas in the account (no parameters needed)

  • list_teams: List teams in an area (needs area_id)

  • create_team: Create a team in an area (needs area_id + body)

EXAMPLES:

  • Who am I: {"action": "get_user"}

  • API usage: {"action": "api_usage"}

  • List areas: {"action": "list_areas"}

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (JSON object)
actionYesThe operation to perform
area_idNoArea ID

TDQS

A3.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It lists actions but does not disclose whether operations are read-only or destructive, authorization requirements, rate limits, or side effects. For example, 'create_team' implies mutation but lacks safety context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a brief summary of scope, a note on the action parameter, a clear table of actions, and examples. It is concise but comprehensive enough for the multi-action tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a multi-action tool with no output schema, the description covers each action's purpose and parameter requirements with examples. It lacks return value details, but the examples partially compensate. Overall, it provides sufficient context for an agent to select and invoke the correct action.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema has 100% description coverage, but the description adds substantial meaning: it specifies which actions require which parameters (e.g., 'list_teams needs area_id', 'create_team needs area_id + body') and provides examples. This goes beyond the bare schema descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool handles 'Account information, API usage, areas, and teams,' and lists specific actions (get_user, api_usage, list_areas, list_teams, create_team) with verbs. This distinguishes it from sibling tools focused on agents, devices, or alerts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context that this tool is for account-level operations, with examples. However, it does not explicitly state when not to use it or mention alternative sibling tools for other domains, though the sibling list implies differentiation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_agentsA

Manage Domotz collectors (agents). Use the "action" parameter to select an operation. Requires agent_id for most actions.

ACTION REFERENCE:

  • list: List all collectors (paginated, filterable by display_name/team_name)

  • count: Count collectors (lightweight HEAD request, returns {"count": N})

  • get: Get single collector details by agent_id

  • delete: Delete a collector

  • activity_log: Collector activity log (filterable by from/to/type)

  • connection_consumption: Bandwidth consumption data

  • vpn_connections: List VPN sessions

  • create_vpn: Create a VPN session (needs body)

  • delete_vpn: Delete a VPN session (needs vpn_session_id)

  • status_history: Online/offline event history (filterable by from/to)

  • speed_test_history: Internet speed test results (filterable by from/to)

  • ip_conflicts: Detected IP conflicts on a collector

  • rtd_stats: Round-trip delay statistics for all devices on a collector

  • network_topology: Network topology map

  • uptime: Collector uptime percentage (filterable by from/to)

  • list_uptime_all: Uptime for ALL collectors (no agent_id needed - the only action that doesn't require one)

  • variables: Collector-level variables (paginated, filterable by value/path/metric)

  • count_variables: Count collector variables (lightweight HEAD request)

  • variable_history: Time-series for a specific variable (needs variable_id)

  • move: Move collector to a different team (needs team_id)

  • eyes_usage: SNMP/TCP sensor usage statistics

  • metric_usage: Metric usage statistics

  • device_applications: Applications across all devices on collector (paginated)

  • count_device_applications: Count applications (lightweight HEAD)

  • device_variables: Variables across all devices on collector (paginated)

  • count_device_variables: Count device variables (lightweight HEAD)

  • eyes_snmp: All SNMP sensors across collector

  • eyes_tcp: All TCP sensors across collector

  • unmanaged_devices: Devices not being monitored

  • external_host: Add an external host to monitor (needs body)

  • dhcp_discovery: Configure DHCP discovery (needs body)

GOTCHAS:

  • count/count_variables/count_device_applications/count_device_variables use HEAD requests and return {"count": N} from the X-Entities-Count header

  • list_uptime_all is the ONLY action that works without specifying agent_id

  • from/to accept ISO 8601 timestamps, default to last 7 days if omitted

  • Use page_size (1-1000) and page_number (0-based) for large result sets

EXAMPLES:

  • List all collectors: {"action": "list"}

  • Get collector details: {"action": "get", "agent_id": 5}

  • Check for IP conflicts: {"action": "ip_conflicts", "agent_id": 12}

  • Show network topology: {"action": "network_topology", "agent_id": 8}

  • Uptime for all collectors: {"action": "list_uptime_all"}

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd time for time series (default: now)
bodyNoRequest body (JSON object)
fromNoStart time for time series (default: one week ago)
nameNoFilter applications by name
pathNoFilter variables by path
typeNoActivity log type filter
valueNoFilter variables by value
actionYesThe operation to perform
metricNoFilter by metric
sort_byNoSort field for variables
team_idNoTeam ID (for move action)
agent_idNoAgent/Collector ID
page_sizeNoMax items to return (1-1000)
team_nameNoFilter by team name
device_idsNoFilter applications by device IDs
has_historyNoFilter by has_history field
page_numberNoPage number, 0-indexed
variable_idNoVariable ID
display_nameNoFilter by display name (case insensitive)
vpn_session_idNoVPN Session ID
sorting_directionNoSort direction (asc/desc)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

As no annotations are present, the description fully covers behavioral traits: lightweight HEAD requests for count actions, the exception for list_uptime_all, pagination details, ISO 8601 defaults, and required parameters. It could add more on side effects of destructive actions like delete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but well-structured with clear sections (ACTION REFERENCE, GOTCHAS, EXAMPLES) and front-loaded purpose. Every part serves a purpose, though some redundancy exists.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (21 parameters, 31 actions) and lack of output schema, the description is thorough. It covers actions, parameters, and edge cases, but lacks return value details for many actions and examples for body parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the description goes far beyond by grouping parameters by action, explaining when they apply, providing gotchas and examples. This adds significant value for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the resource ('Domotz collectors (agents)') and the purpose ('Manage'), and provides a comprehensive list of specific actions. It is distinct from sibling tools focused on other resource types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use each action (e.g., which require agent_id, which are lightweight HEAD requests) and provides filtering/pagination guidance. It does not explicitly contrast with sibling tools but the domain is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_alertsA

Manage alert profiles and their bindings to collectors and devices. Use the "action" parameter to select an operation.

ACTION REFERENCE:

  • list_profiles: List all alert profiles (no parameters needed)

  • bind_to_agent: Bind an alert profile to a collector (needs alert_profile_id + agent_id)

  • unbind_from_agent: Unbind an alert profile from a collector (needs alert_profile_id + agent_id)

  • bind_to_device: Bind an alert profile to a specific device (needs alert_profile_id + agent_id + device_id)

  • unbind_from_device: Unbind an alert profile from a device (needs alert_profile_id + agent_id + device_id)

  • get_agent_bindings: List all alert bindings for a collector (needs agent_id)

  • get_device_bindings: List alert bindings for all devices on a collector (needs agent_id)

  • list_profiles_deprecated: List profiles by user ID (deprecated, use list_profiles instead)

GOTCHAS:

  • Binding workflow: first list_profiles to get alert_profile_id, then bind_to_agent or bind_to_device

  • get_device_bindings returns bindings for ALL devices on a collector, not a single device

EXAMPLES:

  • List all profiles: {"action": "list_profiles"}

  • Check collector alerts: {"action": "get_agent_bindings", "agent_id": 5}

  • Bind profile to device: {"action": "bind_to_device", "alert_profile_id": 2, "agent_id": 5, "device_id": 100}

ParametersJSON Schema
NameRequiredDescriptionDefault
actionYesThe operation to perform
user_idNoUser ID (for deprecated endpoint)
agent_idNoAgent/Collector ID
device_idNoDevice ID
alert_profile_idNoAlert Profile ID

TDQS

A4.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses workflow dependencies (list_profiles first), scope of get_device_bindings (all devices), and deprecation status. No annotations exist, so description carries full burden; it covers core behaviors but could mention mutation effects or idempotency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with clear sections (action reference, gotchas, examples). Every sentence adds value; no redundancy. Front-loaded with purpose and action overview.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all actions, parameters, gotchas, and examples. Lacks description of return values (no output schema), but for a management tool, examples provide sufficient guidance. Could benefit from stating what each action returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage with parameter descriptions. The description adds critical context: which parameters are required for each action, the binding workflow, and the deprecation note, significantly aiding accurate invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Manage alert profiles and their bindings to collectors and devices.' It then enumerates specific actions, which distinguishes it from sibling tools like domotz_agents or domotz_devices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit action reference with required parameters, gotchas (e.g., binding workflow, get_device_bindings behavior), and examples for common use cases. It also notes deprecation of list_profiles_deprecated, guiding the agent to prefer list_profiles.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_configurationA

Manage device configuration backups, credentials, and SNMP authentication. Use the "action" parameter to select an operation. Requires agent_id and device_id for all actions.

ACTION REFERENCE:

  • backup: Trigger a config backup for a device

  • history: List config backup history for a device

  • create_config: Upload a configuration (needs body)

  • get_config: Get a specific config by timestamp (needs configuration_timestamp)

  • set_credentials: Set device credentials for SSH/Telnet (needs body)

  • get_snmp_auth: Get SNMP authentication settings

  • set_snmp_auth: Set SNMP v3 authentication (needs body)

  • set_snmp_community: Set SNMP community string (needs body)

GOTCHAS:

  • Backup workflow: first trigger "backup", then use "history" to see available backups, then "get_config" with the timestamp to retrieve one

EXAMPLES:

  • Trigger backup: {"action": "backup", "agent_id": 5, "device_id": 30}

  • View backup history: {"action": "history", "agent_id": 5, "device_id": 30}

  • Get SNMP settings: {"action": "get_snmp_auth", "agent_id": 5, "device_id": 30}

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (JSON object)
actionYesThe operation to perform
agent_idNoAgent/Collector ID
device_idNoDevice ID
configuration_timestampNoConfiguration timestamp (for get_config)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully covers behavioral traits: it lists all actions, required parameters, and body requirements. It discloses the backup workflow sequence and notes which actions need a body. However, it does not mention idempotency, rate limits, or error handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections: summary, action reference, gotchas, and examples. Every sentence adds value, and critical information is front-loaded. No wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (multiple actions, 5 params, no output schema), the description covers actions, parameters, workflow, and examples. It lacks explicit return value descriptions and error conditions, but the examples and action list are sufficient for basic usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Input schema coverage is 100%, but the description adds meaning by specifying which actions require the 'body' parameter and that 'configuration_timestamp' is used for 'get_config'. Examples further illustrate parameter usage, going beyond pure schema documentation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage device configuration backups, credentials, and SNMP authentication,' which specifies the scope. The action reference lists eight distinct operations, differentiating this tool from siblings like domotz_agents or domotz_monitoring.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a 'GOTCHAS' section explaining the backup workflow order and notes that agent_id and device_id are required for all actions. However, it does not explicitly compare to siblings or state when not to use this tool, so implicit usage context is strong but lacks exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_devicesA

Manage devices on Domotz collectors. Use the "action" parameter to select an operation. Most actions require agent_id and device_id.

ACTION REFERENCE:

  • list: List all devices on a collector (supports show_hidden, show_excluded filters)

  • get: Get single device details

  • delete: Delete a device

  • delete_down: Delete ALL down devices on a collector (only needs agent_id)

  • edit: Edit a device field (needs "field" param for the field name e.g. "importance", "details", and body with the new value)

  • hide: Hide a device from the dashboard

  • status_history: Device online/offline event history (filterable by from/to)

  • rtd_history: Round-trip delay (latency) time series (filterable by from/to)

  • connect: Create a remote connection to device (needs body with connection config)

  • onvif_snapshot: Get ONVIF camera snapshot image

  • uptime: Device uptime percentage (filterable by from/to)

  • monitoring_state: Set monitoring state (needs body)

  • applications: Applications running on a device (paginated)

  • count_applications: Count applications (lightweight HEAD request)

  • variables: Device variables (paginated, filterable by value/path/metric)

  • count_variables: Count device variables (lightweight HEAD request)

  • variable_history: Time-series for a specific device variable (needs variable_id)

GOTCHAS:

  • The "edit" action uses a "field" URL parameter to specify WHICH field to update (e.g. "importance", "details"), plus a body with the new value

  • count_applications/count_variables use HEAD requests and return {"count": N}

  • from/to accept ISO 8601 timestamps, default to last 7 days if omitted

  • delete_down deletes ALL down devices on the collector - use with caution

EXAMPLES:

  • List devices: {"action": "list", "agent_id": 5}

  • Get device details: {"action": "get", "agent_id": 5, "device_id": 200}

  • Device status history: {"action": "status_history", "agent_id": 5, "device_id": 42}

  • Latency history: {"action": "rtd_history", "agent_id": 5, "device_id": 99}

  • Device uptime: {"action": "uptime", "agent_id": 2, "device_id": 10, "from": "2025-01-01T00:00:00Z"}

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd time for time series
bodyNoRequest body (JSON object)
fromNoStart time for time series
nameNoFilter applications by name
pathNoFilter variables by path
fieldNoField name (for edit action)
valueNoFilter variables by value
actionYesThe operation to perform
metricNoFilter by metric
sort_byNoSort field for variables
agent_idNoAgent/Collector ID
device_idNoDevice ID
page_sizeNoMax items to return
device_idsNoFilter by device IDs
has_historyNoFilter by has_history
page_numberNoPage number, 0-indexed
show_hiddenNoInclude hidden devices in list
variable_idNoVariable ID
show_excludedNoInclude excluded devices (default: true)
sorting_directionNoSort direction (asc/desc)

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully carries the burden. It discloses that delete_down deletes ALL down devices, count_applications/count_variables use HEAD requests, from/to default to last 7 days, and edit uses a field URL parameter. These are critical behavioral details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with sections: overview, ACTION REFERENCE, GOTCHAS, and EXAMPLES. It is somewhat lengthy but each section adds necessary context. Front-loading the purpose is effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (17 actions, 20 params, no output schema), the description covers actions, required parameters, gotchas, and examples well. It does not detail return values, but the action reference and examples provide sufficient context for an AI agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds significant value by explaining each action's usage, the meaning of the 'field' parameter for edit, and that from/to accept ISO 8601 timestamps. It goes beyond the schema's basic descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage devices on Domotz collectors' and lists all supported actions via the action parameter. It distinguishes this tool from sibling tools (e.g., domotz_agents, domotz_search_devices) by focusing on device-level operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an ACTION REFERENCE detailing which parameters are required for each action (e.g., 'list' needs agent_id, 'edit' needs field and body). It also includes a GOTCHAS section and examples. It does not explicitly contrast with sibling tools, but the scope is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_driversA

Manage custom drivers and their associations with devices. Use the "action" parameter to select an operation.

ACTION REFERENCE:

  • list: List all custom drivers (no parameters needed)

  • get: Get custom driver details (needs custom_driver_id)

  • create_association: Associate a driver with a device (needs custom_driver_id + agent_id + device_id + body)

  • delete_association: Remove a driver association (needs custom_driver_id + association_id)

  • update_association_params: Update association parameters (needs custom_driver_id + association_id + body)

  • list_associations: List driver associations for a collector (needs agent_id)

  • execute_action: Execute a custom driver action (needs custom_driver_id + agent_id + device_id + action_id + body)

  • re_enable: Re-enable failed associations (optional: include_unrecoverable flag)

GOTCHAS:

  • Workflow: list drivers first to get custom_driver_id, then create_association to bind to a device

  • execute_action needs action_id which comes from the driver definition

EXAMPLES:

  • List all drivers: {"action": "list"}

  • Show associations: {"action": "list_associations", "agent_id": 5}

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (JSON object)
actionYesThe operation to perform
agent_idNoAgent/Collector ID
action_idNoDriver Action ID
device_idNoDevice ID
association_idNoAssociation ID
custom_driver_idNoCustom Driver ID
include_unrecoverableNoInclude unrecoverable associations in re-enable

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It details all eight actions and their required parameters, includes 'GOTCHAS' about workflow dependencies, and mentions the optional 'include_unrecoverable' flag. It does not describe side effects or permissions, but the action descriptions cover the main behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured into sections: summary, action reference (bulleted), gotchas, and examples. It is front-loaded with the purpose, each sentence adds value, and there is no redundancy. The format is easy to parse for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (8 actions, 8 parameters, no output schema), the description is comprehensive. It covers all actions, explains the workflow, and provides examples. It could mention the return format of each action, but the action reference and examples partially compensate. Overall, it is sufficiently complete for selecting and invoking the tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already describes each parameter. However, the description adds significant value by grouping parameters per action (e.g., 'list needs no parameters', 'create_association needs custom_driver_id + agent_id + device_id + body'), which goes beyond the schema's flat property descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage custom drivers and their associations with devices', specifying the resource (custom drivers) and actions (list, get, create_association, etc.). It distinguishes from sibling tools (e.g., domotz_agents, domotz_devices) by focusing on driver-specific operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes a 'GOTCHAS' section with workflow guidance (list drivers first, then create_association) and clarifies that execute_action needs action_id from the driver definition. It provides examples for list and list_associations. While it does not explicitly state when not to use this tool vs alternatives, the action reference and context make it clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_get_agent_overviewA

Get a collector overview in a single call. Combines agent details, full device list, and uptime into one response. Use this as your starting point when exploring a collector/site. Requires agent_id. Device list is summarized (first 50 + total count) if >50 devices.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesAgent/Collector ID

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description describes key behaviors: combining multiple data types and summarizing the device list (first 50 + total count) when there are over 50 devices. It notes the agent_id requirement. It does not mention read-only status or potential performance implications, but covers the main behavioral traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at 4 sentences, front-loaded with the main purpose, then adds details on content, usage, requirement, and a specific limitation. Every sentence is valuable and there is no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (one parameter, no output schema), the description provides a good overview of what is returned (agent details, device list, uptime) and a behavior limit (summary for >50 devices). It could mention if pagination is needed but is otherwise complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already fully describes the single parameter agent_id with a description. The description reiterates the requirement but adds no new semantic information beyond what is in the schema, so it meets the baseline without adding extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly specifies the verb 'Get', the resource 'collector overview', and the scope 'single call' combining agent details, device list, and uptime. It distinguishes itself from sibling tools like domotz_get_device_full_status which targets a single device, and separate tools for agents and devices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description advises using this as a starting point when exploring a collector/site, providing clear context. It does not explicitly state when not to use or list alternatives, but the guidance is helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_get_device_full_statusA

Get comprehensive device status in a single call. Combines 5 API calls into one: device info, status history, SNMP sensors, TCP sensors, and alert bindings. Use this instead of making separate calls when you need a full picture of a device. Requires agent_id and device_id. Results are summarized if >50 items in any category.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesAgent/Collector ID
device_idYesDevice ID

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that results are summarized if >50 items in any category and that it combines multiple API calls into one, indicating no destructive side effects. Could mention performance or error handling, but sufficient for safe invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four concise sentences: purpose, components, usage guidance, requirement and behavior note. Front-loaded with key phrase. No unnecessary words, each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple parameters (agent_id, device_id) and no output schema, the description covers purpose, usage context, parameter requirement, and a behavioral note (summarization). Could mention error conditions or rate limits, but adequate for an AI agent to decide.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%: both parameters have clear descriptions in the schema. The description merely restates 'Requires agent_id and device_id' without adding new semantics. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Get comprehensive device status in a single call' and specifies it combines 5 API calls (device info, status history, SNMP sensors, TCP sensors, alert bindings). This distinguishes it from sibling tools like domotz_get_agent_overview or domotz_search_devices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear usage guidance: 'Use this instead of making separate calls when you need a full picture of a device.' It implicitly contrasts with separate API calls but does not explicitly state when not to use it (e.g., if only one data type is needed).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_inventoryA

Manage inventory fields, custom tags, device profiles, and device types. Use the "action" parameter to select an operation.

ACTION REFERENCE:

  • get_inventory: Get all inventory field definitions (no parameters needed)

  • delete_inventory: Delete all inventory fields (caution: removes all)

  • create_field: Create an inventory field (needs inventory_field name + body)

  • delete_field: Delete an inventory field (needs inventory_field name)

  • update_field: Update an inventory field (needs inventory_field name + body)

  • get_device_inventory: Get inventory data for a device (needs agent_id + device_id)

  • set_device_field: Set inventory field value on a device (needs agent_id + device_id + inventory_field + body)

  • delete_device_field: Clear inventory field on a device (needs agent_id + device_id + inventory_field)

  • get_tags: List all custom tags (no parameters needed)

  • create_tag: Create a custom tag (needs body)

  • edit_tag: Edit a custom tag (needs custom_tag_id + body)

  • delete_tag: Delete a custom tag (needs custom_tag_id)

  • bind_tag: Bind a tag to a device (needs agent_id + device_id + custom_tag_id)

  • unbind_tag: Unbind a tag from a device (needs agent_id + device_id + custom_tag_id)

  • get_device_tags: Get tags bound to a device (needs agent_id + device_id)

  • list_profiles: List all device profiles (no parameters needed)

  • apply_profile: Apply a profile to devices (needs device_profile_id + body)

  • list_base_types: List base device types (no parameters needed)

  • list_detected_types: List detected device types (no parameters needed)

EXAMPLES:

  • List all tags: {"action": "get_tags"}

  • Device inventory: {"action": "get_device_inventory", "agent_id": 5, "device_id": 42}

  • List device profiles: {"action": "list_profiles"}

  • List device types: {"action": "list_base_types"}

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (JSON object)
actionYesThe operation to perform
agent_idNoAgent/Collector ID
device_idNoDevice ID
custom_tag_idNoCustom Tag ID
inventory_fieldNoInventory field name
device_profile_idNoDevice Profile ID

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It mentions a caution for delete_inventory ('caution: removes all') and lists required parameters, but it does not disclose other behavioral traits like idempotency, side effects of each action, or authentication needs. More comprehensive disclosure would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with an action reference and examples. It front-loads the purpose in the first sentence. While lengthy due to 19 actions, every section serves a purpose. Minor redundancy in 'needs' statements could be trimmed, but overall efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (19 actions, 7 parameters) and no output schema, the description covers all actions, required parameters, and provides examples. It omits output details and error handling, but for a multi-action tool, it is fairly comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description goes beyond by detailing which parameters are needed for each action (e.g., 'create_field: needs inventory_field name + body'), adding context that the schema alone lacks. This significantly aids tool invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage inventory fields, custom tags, device profiles, and device types,' which specifies the resource and action. This differentiates from sibling tools like domotz_devices or domotz_alerts, which focus on other domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. The purpose is implied through the name and first sentence, but no direct comparison or exclusion criteria are provided. The sibling tools have distinct focuses, but guidance on switching between them is absent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_monitoringA

Manage SNMP and TCP sensors (called "Eyes" in Domotz) on devices. Use the "action" parameter to select an operation. Requires agent_id and device_id for all actions.

ACTION REFERENCE:

  • list_snmp: List all SNMP sensors on a device

  • create_snmp: Create an SNMP sensor (needs body with OID config)

  • delete_snmp: Delete an SNMP sensor (needs sensor_id)

  • snmp_history: SNMP sensor value history over time (needs sensor_id, filterable by from/to)

  • snmp_trigger_functions: List available trigger functions for an SNMP sensor (needs sensor_id) — call this FIRST to get valid function_id values

  • list_snmp_triggers: List triggers configured on an SNMP sensor (needs sensor_id)

  • create_snmp_trigger: Create a trigger on an SNMP sensor (needs sensor_id + body with function_id and value)

  • delete_snmp_trigger: Delete a trigger (needs sensor_id + trigger_id)

  • create_snmp_trigger_alert: Activate alert notifications on a trigger (needs sensor_id + trigger_id + medium_name e.g. "email", "slack")

  • delete_snmp_trigger_alert: Remove alert notifications from a trigger (needs sensor_id + trigger_id + medium_name)

  • list_tcp: List TCP sensors on a device

  • create_tcp: Create a TCP sensor (needs body with port/host config)

  • delete_tcp: Delete a TCP sensor (needs service_id)

TRIGGER WORKFLOW (must follow these steps in order):

  1. Call snmp_trigger_functions to get available function_ids (e.g. function_id=2 means "is greater than")

  2. Call create_snmp_trigger with body containing function_id and value — VERIFY the response contains the created trigger before proceeding

  3. Call create_snmp_trigger_alert with the trigger_id from step 2 to activate notifications — VERIFY the response confirms activation If ANY step returns an error, STOP and report the error to the user. Do NOT claim success without confirming each step's response.

GOTCHAS:

  • SNMP sensors and TCP sensors use different ID params: sensor_id for SNMP, service_id for TCP

  • Trigger creation requires a valid function_id from snmp_trigger_functions — do not guess function_ids

  • from/to on snmp_history accept ISO 8601 timestamps, default to last 7 days

  • TCP sensors do NOT support triggers or alerts

EXAMPLES:

  • List SNMP sensors: {"action": "list_snmp", "agent_id": 5, "device_id": 50}

  • Sensor history: {"action": "snmp_history", "agent_id": 5, "device_id": 50, "sensor_id": 3}

  • Get trigger functions: {"action": "snmp_trigger_functions", "agent_id": 5, "device_id": 50, "sensor_id": 3}

  • Create trigger (alert when value > 90): {"action": "create_snmp_trigger", "agent_id": 5, "device_id": 50, "sensor_id": 3, "body": {"function_id": 2, "value": "90"}}

  • Activate email alert on trigger: {"action": "create_snmp_trigger_alert", "agent_id": 5, "device_id": 50, "sensor_id": 3, "trigger_id": 1, "medium_name": "email"}

  • List TCP sensors: {"action": "list_tcp", "agent_id": 5, "device_id": 50}

ParametersJSON Schema
NameRequiredDescriptionDefault
toNoEnd time for time series
bodyNoRequest body (JSON object)
fromNoStart time for time series
actionYesThe operation to perform
agent_idNoAgent/Collector ID
device_idNoDevice ID
sensor_idNoSNMP Sensor ID
service_idNoTCP Service/Sensor ID
trigger_idNoTrigger ID
medium_nameNoAlert medium name (e.g. email, slack)

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses behavioral traits: it specifies that sensor_id vs service_id are sensor-type-specific, trigger creation depends on valid function_id, and timeseries parameters default to last 7 days. It also warns about the exact error handling expectations ('If ANY step returns an error, STOP and report').

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is lengthy but well-structured with labeled sections (ACTION REFERENCE, TRIGGER WORKFLOW, GOTCHAS, EXAMPLES). It is front-loaded with the purpose and a key note about required parameters. While some redundancy exists (repeated requirement for agent_id and device_id in examples), the structure justifies the length given the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's high complexity (10 parameters, 13 actions, no output schema), the description covers most critical aspects: parameter usage per action, workflow order, error handling, and credential reqs. Minor gap: it does not describe return values or response structure, which a monitoring tool might rely on, but the examples and references mitigate this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Despite 100% schema description coverage, the description adds substantial meaning: it explains the 'action' enum values with context (e.g., 'list_snmp: List all SNMP sensors on a device'), clarifies parameter dependencies (e.g., 'sensor_id' needed for SNMP actions, 'service_id' for TCP), and describes the 'body' object structure (OID config, port/host, function_id, etc.) beyond the schema's generic 'Request body'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Manage SNMP and TCP sensors (called Eyes in Domotz) on devices.' This verb+resource combination precisely defines the tool's scope, distinguishing it from siblings like domotz_agents or domotz_devices which handle other aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides an ACTION REFERENCE detailing 13 specific operations with their required parameters, a TRIGGER WORKFLOW with step-by-step instructions including error handling, and GOTCHAS that clarify when not to use certain actions (e.g., TCP sensors do not support triggers). This offers explicit when-to-use and when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_networkA

Manage network scan policies, interfaces, routed networks, and excluded devices. Use the "action" parameter to select an operation. Requires agent_id for all actions.

ACTION REFERENCE:

  • get_external_scan_policy: Get external host scan policy for a collector

  • set_external_scan_policy: Set external host scan policy (needs body)

  • delete_external_scan_policy: Delete external host scan policy

  • get_interfaces: List network interfaces on a collector

  • get_interfaces_policy: Get interfaces scanning policy

  • set_interfaces_policy: Set interfaces scanning policy (needs body)

  • delete_interfaces_policy: Delete interfaces scanning policy

  • get_ip_scan_policy: Get IP scan policy

  • set_ip_scan_policy: Set IP scan policy (needs body)

  • delete_ip_scan_policy: Delete IP scan policy

  • create_routed_network: Add a routed network to monitor (needs body)

  • list_excluded: List devices excluded from monitoring

  • add_excluded: Exclude a device from monitoring (needs device_id)

  • delete_excluded: Remove a device from the exclusion list (needs device_id)

EXAMPLES:

  • Show interfaces: {"action": "get_interfaces", "agent_id": 5}

  • Get IP scan policy: {"action": "get_ip_scan_policy", "agent_id": 5}

  • List excluded devices: {"action": "list_excluded", "agent_id": 5}

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (JSON object)
actionYesThe operation to perform
agent_idNoAgent/Collector ID
device_idNoDevice ID (for excluded devices)

TDQS

A3.8/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears full burden. It does not disclose whether actions are destructive, reversible, or require special permissions. While it lists actions like delete/set, it offers no warnings about their effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-organized into an introductory line, an action reference, and examples. It efficiently conveys necessary information without redundancy, though the action list is somewhat lengthy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema, so return values are undefined. The description covers operations and parameters adequately for a configuration tool, but lacks details on pagination, error handling, or rate limits.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and describes basic parameter types. The description adds value by mapping each action to required parameters (e.g., body for set/create, device_id for excluded) and providing concrete usage examples.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it manages network scan policies, interfaces, routed networks, and excluded devices. It enumerates 14 specific actions and provides examples, making the tool's purpose distinct from sibling tools like domotz_agents or domotz_devices.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly requires agent_id for all actions and links actions to required parameters (e.g., device_id for excluded devices). Examples demonstrate correct usage. However, it does not explicitly state when to avoid this tool in favor of siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_powerA

Manage device power actions and PDU power outlets. Use the "action" parameter to select an operation. Requires agent_id and device_id for all actions.

ACTION REFERENCE:

  • get_power_actions: List available power actions for a device (e.g. reboot, shutdown)

  • power_action: Execute a power action (needs "field" param with the action name from get_power_actions)

  • get_outlets: List power outlets on a PDU device

  • update_outlet: Update outlet settings (needs power_outlet_id + body)

  • trigger_outlet: Trigger an outlet action like cycle/on/off (needs power_outlet_id + outlet_action param e.g. "cycle", "on", "off")

  • attach_device: Attach a device to a power outlet (needs power_outlet_id + attached_device_id)

  • detach_device: Detach a device from a power outlet (needs power_outlet_id + attached_device_id)

GOTCHAS:

  • "trigger_outlet" uses "outlet_action" parameter (NOT "action") to specify what the outlet should do. The "action" param is always the tool operation selector.

  • "power_action" uses "field" parameter to identify which power action to execute

  • Workflow: get_power_actions first to see what's available, then power_action with the field name

EXAMPLES:

  • List power actions: {"action": "get_power_actions", "agent_id": 5, "device_id": 15}

  • List PDU outlets: {"action": "get_outlets", "agent_id": 5, "device_id": 15}

  • Cycle outlet: {"action": "trigger_outlet", "agent_id": 5, "device_id": 15, "power_outlet_id": 2, "outlet_action": "cycle"}

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyNoRequest body (JSON object)
fieldNoPower action field name
actionYesThe operation to perform
agent_idNoAgent/Collector ID
device_idNoDevice ID
outlet_actionNoOutlet action to trigger
power_outlet_idNoPower Outlet ID
attached_device_idNoDevice ID to attach/detach

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully covers behavioral aspects. It explains the purpose and prerequisites of each action, parameter usage, and potential pitfalls (e.g., 'field' param for power_action). The examples illustrate exact usage patterns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear sections (ACTION REFERENCE, GOTCHAS, EXAMPLES). It is comprehensive yet concise, with every sentence adding value. The examples are minimal and illustrative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (8 parameters, multiple actions, nested objects) and absence of an output schema, the description is remarkably complete. It covers all actions, parameter relationships, required fields per action, and common workflows.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Though input schema coverage is 100%, the description adds significant meaning beyond schema definitions. It explains the enum values for 'action', the purpose of 'field', 'outlet_action', and provides context for conditional parameters like 'attached_device_id'. The structured reference and examples clarify usage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool manages device power actions and PDU power outlets. It enumerates all specific actions (get_power_actions, power_action, etc.) and differentiates from sibling tools like domotz_agents and domotz_devices which cover different domains.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit when-to-use advice for each action, including workflow guidance (e.g., call get_power_actions before power_action) and gotchas about parameter naming (outlet_action vs action). It also includes examples for several operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

domotz_search_devicesA

Search devices by name or IP address across one or all collectors. Returns matching devices with their agent_id so you know which collector they belong to. Provide "query" (search string) and optionally "agent_id" to limit search to one collector. Without agent_id, searches ALL collectors. Great for finding a device when you don't know which site it's on.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch string to match against device display_name or IP address
agent_idNoOptional: search only this agent. If omitted, searches all agents.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description carries full burden. It discloses the search scope (one or all collectors) and that results include agent_id. Missing information on pagination, result limits, or performance implications, but sufficient for basic usage understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with zero waste. The purpose is front-loaded in the first sentence, making it immediately clear what the tool does.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a search tool without output schema, the description explains key aspects: search scope, return field (agent_id), and parameter behavior. It lacks details on error handling or result count limits, but covers the main use case adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds minimal value beyond the schema, explaining the effect of omitting agent_id. Baseline 3 is appropriate as schema already handles semantic explanation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool searches devices by name or IP across one or all collectors, with a specific verb-resource combination. It distinguishes from siblings like domotz_devices (list all) or domotz_get_device_full_status (detail view).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use: provide a query and optionally an agent_id to limit scope. It also notes that omitting agent_id searches all collectors, making it great for cross-site device discovery. However, it does not explicitly mention when not to use or contrast with sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 13 tool updatesv1.0.0
    • First observeddomotz_account
    • First observeddomotz_agents
    • First observeddomotz_alerts
    • First observeddomotz_configuration
    • First observeddomotz_devices
    • First observeddomotz_drivers
    • First observeddomotz_get_agent_overview
    • First observeddomotz_get_device_full_status
    • First observeddomotz_inventory
    • First observeddomotz_monitoring
    • First observeddomotz_network
    • First observeddomotz_power
    • First observeddomotz_search_devices

TDQS

A4.3/5.0

Scored across 13 tools

Disambiguation5/5

Each tool has a clearly distinct domain (agents, devices, monitoring, alerts, network, configuration, power, drivers, inventory, account, plus three composite helpers). There is no overlap in purpose; an agent can easily distinguish which tool to use based on the operation needed.

Naming Consistency4/5

All tools use the 'domotz_' prefix with a descriptive noun or verb phrase. Most are nouns (e.g., domotz_agents, domotz_devices) but three composite tools use verbs (get_device_full_status, get_agent_overview, search_devices), introducing a minor inconsistency. Overall pattern is clear and predictable.

Tool Count5/5

The tool count of 13 is well-scoped for a comprehensive network monitoring platform. Each tool covers a distinct area, and the set is neither too lean nor overwhelming. The three composite tools provide efficiency without bloating the surface.

Completeness5/5

The tool surface is remarkably complete, covering agent and device management, sensor configuration and monitoring, alerts, network policies, configuration backups, power management, custom drivers, inventory, and account info. Composite and search tools address common multi-step queries, leaving no obvious dead ends.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    Exposes homelab and IT-ops tools to Claude, including system health monitoring, Grafana alert states, Docker container status, Loki logs, SMART disk health, and more.
    8
    1
    -
  • A
    license
    B
    quality
    A
    maintenance
    Exposes the Firewalla MSP API as tools for Claude Code and other MCP clients, enabling natural-language management of Firewalla boxes, alarms, rules, devices, flows, target lists, and trends with full read/write capabilities.
    19
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables Claude to interact with Datto RMM accounts for device, alert, site, and quick job management through natural language.
    Apache 2.0