Skip to main content
Glama
dmayan-ss

mcp-prtg

by dmayan-ss

mcp-prtg

MCP Server for PRTG Network Monitor (read-only).

Allows Claude to query sensors, devices, groups, channels, historical data, and system status from your PRTG instance via the classic PRTG HTTP API (v1). Supports self-signed SSL certificates.

Note: This server uses the classic PRTG API (/api/table.json, /api/historicdata.json, etc.), which is available in all PRTG versions. PRTG also offers a newer REST API v2 (available since v21.4.73 on port 1616) that is not yet supported by this server.

Authentication

This server authenticates using username + passhash. API tokens and plaintext passwords are not supported.

Getting your passhash

Open this URL in your browser (replace with your PRTG server, user, and password):

https://prtg.example.com/api/getpasshash.htm?username=myuser&password=mypassword

Related MCP server: PA MCP Server

Configuration in Claude Desktop

Add this to your claude_desktop_config.json:

{
  "mcpServers": {
    "prtg": {
      "command": "uv",
      "args": ["--directory", "/path/to/mcp-prtg", "run", "server.py"],
      "env": {
        "PRTG_URL": "https://prtg.example.com",
        "PRTG_USERNAME": "apiuser",
        "PRTG_PASSHASH": "1234567890"
      }
    }
  }
}

Environment Variables

Variable

Required

Description

PRTG_URL

Yes

URL of your PRTG server (e.g., https://prtg.example.com)

PRTG_USERNAME

Yes

PRTG username for authentication

PRTG_PASSHASH

Yes

Passhash for the PRTG user

Available Tools

Tool

Description

get_sensors

List sensors with filters (status, tags, parent ID, text)

get_sensor_details

Full details for a specific sensor

get_channels

List channels for a sensor

get_devices

List devices with filters

get_groups

List groups (used to organize devices)

get_sensor_history

Historic monitoring data for a sensor

get_server_status

Overall PRTG server health and sensor counts

get_messages

System log messages with optional date range filter

search

Search objects by name across sensors, devices, or groups

Development

# Install dependencies
uv sync

# Run the server locally
PRTG_URL=https://prtg.local PRTG_USERNAME=admin PRTG_PASSHASH=12345 uv run server.py

# Test with MCP Inspector
npx @modelcontextprotocol/inspector uv run server.py

License

MIT

Available Tools

9 tools
get_channelsB

List all channels for a specific sensor.

Args: id: The sensor object ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, and the description only indicates a read operation ('list') without mentioning permissions, pagination, or any side effects. The behavioral traits are underexplained.

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 extremely concise with two short sentences, no redundancy, and front-loaded purpose. Every word is necessary.

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?

Given the tool's simplicity (one required parameter, output schema exists), the description is adequate. It conveys the basic usage but omits any explanation of what a 'channel' is or how results are structured, relying on output schema.

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 description adds meaning to the single integer parameter by specifying it is 'The sensor object ID', which is useful since the schema had 0% coverage. However, it does not provide additional details like format or source.

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

Purpose4/5

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

The description clearly states the tool lists all channels for a specific sensor, with a specific verb and resource. It implicitly distinguishes from siblings like get_sensor_details by focusing on channels only, though not explicitly.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives such as get_sensor_details or search. No prerequisites or context are provided.

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

get_devicesA

List PRTG devices with optional filters.

Args: id: Parent group ID to list devices under. text_filter: Filter devices whose name contains this text. count: Max results (default 500).

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
countNo
text_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/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 only states the basic operation and parameter defaults, but does not disclose pagination behavior, ordering, rate limits, or any side effects. The count parameter implies a max results limit (default 500), but no explicit behavior.

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 extremely concise: one sentence for purpose followed by a structured Args list. Every sentence carries necessary information with zero redundancy.

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 is straightforward, and an output schema exists (not shown), so return values need not be in description. However, missing guidance on when to use vs siblings and lack of behavioral details make it minimally complete for a listing operation.

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 0%, meaning the description is the sole source of parameter meaning. It explains each parameter (id, text_filter, count) with their purpose and default values, adding substantial value beyond the schema's type-only definitions.

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 verb 'List' and the resource 'PRTG devices', making the purpose immediately obvious. It distinguishes itself from sibling tools like get_sensors or get_channels by specifying it lists devices.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives such as search or other get_* tools. The description lacks any mention of context, prerequisites, or conditions for use.

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

get_groupsA

List PRTG groups (used to organize devices).

Args: id: Parent group ID to list sub-groups under. count: Max results (default 500).

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so the description must cover behavioral traits. It mentions listing sub-groups under a parent ID and default count, but omits crucial details like behavior when id is null (possibly top-level groups), permissions, rate limits, or mutability. The description is insufficient 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.

Conciseness4/5

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

Description is concise with two lines plus an Args section. It front-loads the main purpose and uses a clear structure. Each sentence adds information, though slightly repetitive.

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?

Given the tool has an output schema, return values may be documented elsewhere. However, the description lacks details on pagination, behavior when id is null, and how it differs from sibling tools like get_devices. It is minimally adequate but leaves gaps.

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 has 2 parameters with 0% documentation coverage, so the description adds value. It clarifies 'id' as parent group ID to list sub-groups and 'count' as max results with default 500, going beyond the schema's basic type and default.

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?

Description clearly states 'List PRTG groups' with a brief context that groups organize devices. It uses a specific verb and resource, distinguishing it from sibling tools like get_devices or get_sensors.

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?

No explicit guidance on when to use this tool versus alternatives, nor when not to use it. The description implies a general listing function but lacks clear context or exclusions.

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

get_messagesA

Get PRTG system log messages.

Args: id: Object ID to filter messages for. count: Max messages (default 100). date_range: Relative date filter: today, yesterday, 7days, 30days, 6months, 12months.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
countNo
date_rangeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 covers parameterization but does not disclose read-only nature, return format, or potential side effects.

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?

Concise, front-loaded description with a clear Args section; no redundant information.

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?

Adequately covers parameter usage; output schema exists so return details are omitted, but behavioral context like ordering or pagination is missing.

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?

Each parameter is explained with its purpose and constraints (e.g., date_range options), adding value beyond the schema's minimal titles and types.

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 verb 'Get' and the resource 'PRTG system log messages', distinguishing it from sibling tools like get_sensors or get_devices.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives; no exclusions or contexts mentioned.

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

get_sensor_detailsB

Get full details for a specific sensor.

Args: id: The sensor object ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided. The description lacks behavioral details such as side effects, authentication needs, or what constitutes 'full details'. Since the description carries the full burden, it is insufficient.

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 extremely concise with two focused sentences, front-loading the purpose and including an args section that efficiently documents the parameter.

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?

Given the presence of an output schema (not shown) and a simple single-parameter tool, the description covers the basic purpose and parameter but lacks usage guidance and behavioral context, making it minimally 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 description adds meaning to the 'id' parameter by stating it is 'The sensor object ID', which is not present in the schema's property definition. However, it does not explain how to obtain the ID or any constraints.

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 verb 'Get' and the resource 'full details for a specific sensor', distinguishing it from sibling tools like 'get_sensors' (list) and 'get_sensor_history' (historical data).

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like get_sensors or search. It does not mention that an ID is required, which is only implied by the schema.

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

get_sensor_historyA

Get historic monitoring data for a sensor.

Args: id: The sensor object ID. sdate: Start date/time as YYYY-MM-DD-HH-MM-SS. edate: End date/time as YYYY-MM-DD-HH-MM-SS. avg: Averaging interval in seconds. 0=raw, 300=5min, 3600=1h, 86400=1day. count: Max data points (default 500).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
avgNo
countNo
edateYes
sdateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose behavioral traits such as read-only status, rate limits, or data freshness. It only states the basic function without additional 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 concise, starting with a clear purpose statement, but the Args list partially duplicates schema information. It is front-loaded and efficient, but could be shortened if schema descriptions were provided.

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?

The description explains parameters well for a data retrieval tool, including format and defaults. However, it does not mention pagination, ordering, or empty results behavior. An output schema exists but its content is not visible.

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?

With input schema description coverage at 0%, the description compensates well by detailing parameter formats (sdate, edate as YYYY-MM-DD-HH-MM-SS), valid values for avg (0,300,3600,86400), and default for count (500).

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 'Get historic monitoring data for a sensor,' which is a specific verb and resource. It distinguishes from sibling tools like get_sensors, get_channels, etc., which deal with different data.

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 usage is implied (historic data retrieval), but no exclusions or when-not-to-use guidance are provided.

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

get_sensorsA

List PRTG sensors with optional filters.

Args: id: Parent object ID (device or group) to filter sensors under. status: Filter by status: up, down, warning, paused, unknown, unusual, down_acknowledged, down_partial. tags: Filter by tag, e.g. @tag(mytag). text_filter: Filter sensors whose name contains this text. count: Max results (default 500).

ParametersJSON Schema
NameRequiredDescriptionDefault
idNo
tagsNo
countNo
statusNo
text_filterNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, and the description only states it lists sensors. It does not disclose whether the operation is read-only, requires authentication, or has rate limits. The term 'List' implies safety, but explicit behavioral information is missing.

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 with a front-loaded summary sentence followed by bullet-like parameter descriptions. No unnecessary words, and the structure is clear and easy to parse.

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?

The description covers the main functionality with filters and default count. An output schema exists, so return values are presumably documented there. Minor gap: no mention of ordering or sorting options, but the tool is still adequately described for selection.

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 description coverage is 0%, but the description includes an Args section with clear explanations for all five parameters (e.g., 'id: Parent object ID (device or group) to filter sensors under.'), fully compensating for the lack of 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 starts with 'List PRTG sensors with optional filters,' clearly stating the verb (List) and resource (sensors), and distinguishes from sibling tools that list other entities like devices or groups.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool vs alternatives like get_devices or get_groups. The description only lists filters without usage context.

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

get_server_statusA

Get overall PRTG server health and sensor counts.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

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 mentions 'overall PRTG server health and sensor counts' but does not disclose any additional behavioral traits such as authentication needs, rate limits, or what happens if the server is unreachable.

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 a single, front-loaded sentence with no filler. Every word adds value.

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?

For a simple health check with no parameters and an output schema (as indicated by context signals), the description is complete. It covers the tool's purpose without needing elaboration.

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 input schema has zero parameters, so schema coverage is 100%. The description adds no param information, which is appropriate since there are none. Baseline 4 is justified.

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 retrieves 'overall PRTG server health and sensor counts', distinguishing it from siblings like get_sensors (which lists sensors) and get_devices (which lists devices). The verb 'Get' and resource 'PRTG server health' are specific.

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?

No explicit guidance on when to use this tool versus alternatives. It is implied for health overview, but lacks exclusions or context that would help an agent decide.

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. 9 tool updatesv0.1.0
    • First observedget_channels
    • First observedget_devices
    • First observedget_groups
    • First observedget_messages
    • First observedget_sensor_details
    • First observedget_sensor_history
    • First observedget_sensors
    • First observedget_server_status
    • First observedsearch

TDQS

A3.7/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct aspect of PRTG monitoring, such as listing groups, devices, sensors, channels, history, and server status. There is no overlap or ambiguity between them.

Naming Consistency4/5

Most tools follow a consistent 'get_' prefix pattern (e.g., get_sensors, get_groups). The only exception is 'search', which breaks the pattern but is still a clear verb for its purpose.

Tool Count5/5

With 9 tools, the server is well-scoped for a PRTG monitoring client. Each tool provides a necessary function without redundancy, covering listing, details, history, and status.

Completeness4/5

The tool surface covers core read operations for PRTG monitoring (groups, devices, sensors, channels, history, messages, status, search). Minor gaps exist, such as missing support for thresholds or notifications, but overall it's solid.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Provides advanced, programmable access to Zabbix monitoring data and management features, enabling querying, automation, and integration of Zabbix resources.
    53
    112 PyPI
    10
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables querying portfolio data, positions, balances, quotes, price history, orders, and account activity through the Questrade API.
    21 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables interaction with N-able RMM (N-sight) API to manage clients, sites, devices, and retrieve monitoring data such as checks, patches, and performance history.
    Apache 2.0