Skip to main content
Glama
Zabbix MCP Server

Zabbix MCP Server

proxy_get

Read-only

Retrieve Zabbix proxies to inspect operating mode, connection settings, and assigned hosts for distributed monitoring management.

Instructions

Retrieve Zabbix proxies. Proxies collect monitoring data on behalf of the Zabbix server, enabling distributed monitoring across network segments, firewalls, and geographic regions. Each proxy has a mode (0=active, 1=passive), connection settings, and a list of assigned hosts. Use selectHosts to include assigned hosts (extra_params), selectInterface for connection details on releases before 7.0.

Input Schema

NameRequiredDescriptionDefault
limitNoMaximum number of results to return.
filterNoReturn only results whose properties exactly match the given values (a single value or a list of values per key). Example: {"status": 0} or {"status": [0, 1]}. Keys: address (7.0+), allowed_addresses (7.0+), auto_compress (removed in 7.0), compatibility (6.4+), custom_timeouts (7.0+), host (removed in 7.0), lastaccess, local_address (7.0+), local_port (7.0+), name (7.0+), operating_mode (7.0+), port (7.0+), proxy_address (removed in 7.0), proxy_groupid (7.0+), state (7.0+), status (removed in 7.0), timeout_browser (7.0+), timeout_db_monitor (7.0+), timeout_external_check (7.0+), timeout_http_agent (7.0+), timeout_script (7.0+), timeout_simple_check (7.0+), timeout_snmp_agent (7.0+), timeout_ssh_agent (7.0+), timeout_telemetry_query (8.0+), timeout_telnet_agent (7.0+), timeout_zabbix_agent (7.0+), tls_accept, tls_connect, tls_issuer, tls_subject, version (6.4+). Text properties cannot be filtered; use 'search' for them.
outputNoProperties of the proxy object to return. Pass 'extend' for all, 'count' for the number of matches only, or a list of property names. Default when omitted: proxyid, name, operating_mode, state. Properties: address (7.0+), allowed_addresses (7.0+), auto_compress (removed in 7.0), compatibility (6.4+), custom_timeouts (7.0+), description, host (removed in 7.0), lastaccess, local_address (7.0+), local_port (7.0+), name (7.0+), operating_mode (7.0+), port (7.0+), proxy_address (removed in 7.0), proxy_groupid (7.0+), proxyid, state (7.0+), status (removed in 7.0), timeout_browser (7.0+), timeout_db_monitor (7.0+), timeout_external_check (7.0+), timeout_http_agent (7.0+), timeout_script (7.0+), timeout_simple_check (7.0+), timeout_snmp_agent (7.0+), timeout_ssh_agent (7.0+), timeout_telemetry_query (8.0+), timeout_telnet_agent (7.0+), timeout_zabbix_agent (7.0+), tls_accept, tls_connect, tls_issuer, tls_subject, version (6.4+).
searchNoReturn results whose string properties contain the given pattern (case-insensitive; '*' is a wildcard when searchWildcardsEnabled is true). Example: {"name": "web"}. Keys: address (7.0+), allowed_addresses (7.0+), description, host (removed in 7.0), local_address (7.0+), local_port (7.0+), name (7.0+), port (7.0+), proxy_address (removed in 7.0), timeout_browser (7.0+), timeout_db_monitor (7.0+), timeout_external_check (7.0+), timeout_http_agent (7.0+), timeout_script (7.0+), timeout_simple_check (7.0+), timeout_snmp_agent (7.0+), timeout_ssh_agent (7.0+), timeout_telemetry_query (8.0+), timeout_telnet_agent (7.0+), timeout_zabbix_agent (7.0+), tls_issuer, tls_subject.
serverNoTarget Zabbix server. Available: default. Defaults to 'default' if omitted.
proxyidsNoReturn only proxies with the given IDs.
raw_jsonNoStrips the security disclaimer preamble from the response so it is pure JSON. Default: false. Requires the bearer token to have 'allow_raw_json' explicitly enabled by an operator in the admin portal - tokens without that policy receive a PolicyError instead. WARNING: setting true bypasses the prompt-injection mitigation marker that wraps untrusted Zabbix data (host names, item descriptions, problem text). LLM clients (Claude, GPT, Cursor, ...) should leave this false; only programmatic non-LLM consumers (Python scripts, n8n workflows that json.loads the result) should set true.
sortfieldNoSort by one or more of: proxyid (7.0+), name (7.0+), operating_mode (7.0+), host (removed in 7.0), hostid (removed in 7.0), status (removed in 7.0) (a list for several; pair with 'sortorder'). No other property is sortable.
sortorderNoSort order: 'ASC' (ascending) or 'DESC' (descending).
countOutputNoReturn the count of matching results instead of the actual data.
searchByAnyNoIf true, return results matching ANY search field (OR). Default is ALL fields (AND).
extra_paramsNoOther native proxy.get parameters, merged into the request as-is. Parameters: proxy_groupids (7.0+). Sub-object selects (value 'extend', 'count' or a list of property names): selectApm (8.0+), selectAssignedHosts (7.0+), selectHosts, selectInterface (removed in 7.0), selectProxyGroup (7.0+). Any other key is refused here, because Zabbix would silently ignore it. For a parameter you are sure exists on your release but is not listed, use zabbix_raw_api_call.
searchWildcardsEnabledNoIf true, enable * and ? wildcards in search patterns.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changedv1.42.2
    • addedInput schema / additionalProperties
      Added value: +false
    • changedInput schema / properties / extra_params / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "propertyNames": {
      +      "enum": [
      +        "editable",
      +        "excludeSearch",
      +        "preservekeys",
      +        "startSearch",
      +        "proxy_groupids",
      +        "selectApm",
      +        "selectAssignedHosts",
      +        "selectHosts",
      +        "selectInterface",
      +        "selectProxyGroup"
      +      ]
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / filter / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "propertyNames": {
      +      "enum": [
      +        "address",
      +        "allowed_addresses",
      +        "auto_compress",
      +        "compatibility",
      +        "custom_timeouts",
      +        "host",
      +        "lastaccess",
      +        "local_address",
      +        "local_port",
      +        "name",
      +        "operating_mode",
      +        "port",
      +        "proxy_address",
      +        "proxy_groupid",
      +        "state",
      +        "status",
      +        "timeout_browser",
      +        "timeout_db_monitor",
      +        "timeout_external_check",
      +        "timeout_http_agent",
      +        "timeout_script",
      +        "timeout_simple_check",
      +        "timeout_snmp_agent",
      +        "timeout_ssh_agent",
      +        "timeout_telemetry_query",
      +        "timeout_telnet_agent",
      +        "timeout_zabbix_agent",
      +        "tls_accept",
      +        "tls_connect",
      +        "tls_issuer",
      +        "tls_subject",
      +        "version"
      +      ]
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / output / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "extend",
      +      "count"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "enum": [
      +        "address",
      +        "allowed_addresses",
      +        "auto_compress",
      +        "compatibility",
      +        "custom_timeouts",
      +        "description",
      +        "host",
      +        "lastaccess",
      +        "local_address",
      +        "local_port",
      +        "name",
      +        "operating_mode",
      +        "port",
      +        "proxy_address",
      +        "proxy_groupid",
      +        "proxyid",
      +        "state",
      +        "status",
      +        "timeout_browser",
      +        "timeout_db_monitor",
      +        "timeout_external_check",
      +        "timeout_http_agent",
      +        "timeout_script",
      +        "timeout_simple_check",
      +        "timeout_snmp_agent",
      +        "timeout_ssh_agent",
      +        "timeout_telemetry_query",
      +        "timeout_telnet_agent",
      +        "timeout_zabbix_agent",
      +        "tls_accept",
      +        "tls_connect",
      +        "tls_issuer",
      +        "tls_subject",
      +        "version"
      +      ],
      +      "type": "string"
      +    },
      +    "minItems": 1,
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / output / description
      Previous value: -"Properties of the proxy object to return. Pass 'extend' for all, 'count' for the number of matches only, or a comma-separated list of property names. Default when omitted: proxyid, name, operating_mode, state. Properties: address (7.0+), allowed_addresses (7.0+), auto_compress (removed in 7.0), compatibility (6.4+), custom_timeouts (7.0+), description, host (removed in 7.0), lastaccess, local_address (7.0+), local_port (7.0+), name (7.0+), operating_mode (7.0+), port (7.0+), proxy_address (removed in 7.0), proxy_groupid (7.0+), proxyid, state (7.0+), status (removed in 7.0), timeout_browser (7.0+), timeout_db_monitor (7.0+), timeout_external_check (7.0+), timeout_http_agent (7.0+), timeout_script (7.0+), timeout_simple_check (7.0+), timeout_snmp_agent (7.0+), timeout_ssh_agent (7.0+), timeout_telemetry_query (8.0+), timeout_telnet_agent (7.0+), timeout_zabbix_agent (7.0+), tls_accept, tls_connect, tls_issuer, tls_subject, version (6.4+)."New value: +"Properties of the proxy object to return. Pass 'extend' for all, 'count' for the number of matches only, or a list of property names. Default when omitted: proxyid, name, operating_mode, state. Properties: address (7.0+), allowed_addresses (7.0+), auto_compress (removed in 7.0), compatibility (6.4+), custom_timeouts (7.0+), description, host (removed in 7.0), lastaccess, local_address (7.0+), local_port (7.0+), name (7.0+), operating_mode (7.0+), port (7.0+), proxy_address (removed in 7.0), proxy_groupid (7.0+), proxyid, state (7.0+), status (removed in 7.0), timeout_browser (7.0+), timeout_db_monitor (7.0+), timeout_external_check (7.0+), timeout_http_agent (7.0+), timeout_script (7.0+), timeout_simple_check (7.0+), timeout_snmp_agent (7.0+), timeout_ssh_agent (7.0+), timeout_telemetry_query (8.0+), timeout_telnet_agent (7.0+), timeout_zabbix_agent (7.0+), tls_accept, tls_connect, tls_issuer, tls_subject, version (6.4+)."
    • changedInput schema / properties / search / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": true,
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "propertyNames": {
      +      "enum": [
      +        "address",
      +        "allowed_addresses",
      +        "description",
      +        "host",
      +        "local_address",
      +        "local_port",
      +        "name",
      +        "port",
      +        "proxy_address",
      +        "timeout_browser",
      +        "timeout_db_monitor",
      +        "timeout_external_check",
      +        "timeout_http_agent",
      +        "timeout_script",
      +        "timeout_simple_check",
      +        "timeout_snmp_agent",
      +        "timeout_ssh_agent",
      +        "timeout_telemetry_query",
      +        "timeout_telnet_agent",
      +        "timeout_zabbix_agent",
      +        "tls_issuer",
      +        "tls_subject"
      +      ]
      +    },
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / sortfield / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "proxyid",
      +      "name",
      +      "operating_mode",
      +      "host",
      +      "hostid",
      +      "status"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "enum": [
      +        "proxyid",
      +        "name",
      +        "operating_mode",
      +        "host",
      +        "hostid",
      +        "status"
      +      ],
      +      "type": "string"
      +    },
      +    "minItems": 1,
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedInput schema / properties / sortfield / description
      Previous value: -"Sort by one or more of: proxyid (7.0+), name (7.0+), operating_mode (7.0+), host (removed in 7.0), hostid (removed in 7.0), status (removed in 7.0) (comma-separated for several; pair with 'sortorder'). No other property is sortable."New value: +"Sort by one or more of: proxyid (7.0+), name (7.0+), operating_mode (7.0+), host (removed in 7.0), hostid (removed in 7.0), status (removed in 7.0) (a list for several; pair with 'sortorder'). No other property is sortable."
    • changedInput schema / properties / sortorder / anyOf
      Previous value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "enum": [
      +      "ASC",
      +      "DESC"
      +    ],
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "enum": [
      +        "ASC",
      +        "DESC"
      +      ],
      +      "type": "string"
      +    },
      +    "minItems": 1,
      +    "type": "array"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedInput schema / properties / with_hosts
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "type": "boolean"
      -    },
      -    {
      -      "type": "null"
      -    }
      -  ],
      -  "default": null,
      -  "description": "Return only proxies that have at least one host assigned to them.",
      -  "title": "With Hosts"
      -}
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "proxy_getOutput",
      -  "type": "object"
      -}New value: +null
  2. First observedv1.41.0

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered. The description adds domain context (proxy modes 0=active/1=passive, connection settings, assigned hosts) but says nothing about result volume, default field projection, or the raw_json preamble caveat that materially affects output handling.

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?

Three sentences, front-loaded with the action and scope, followed by domain context and then the optional-select hints. It is efficient, though the middle explanatory sentence about proxy architecture is somewhat expendable for an agent choosing a 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 13-parameter, read-only list tool with a fully documented schema and no output schema, the description supplies enough orientation about the resource and its version-sensitive nested selects. Return shape and default projection are left entirely to the schema, which is acceptable given the rich parameter documentation.

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%, so every parameter is already documented in the schema with version notes and examples. The description only highlights two nested selects (selectHosts, selectInterface), adding marginal meaning beyond the structured fields, which fits the baseline 3.

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 opens with a specific verb and resource ('Retrieve Zabbix proxies') and explains what a proxy is, which makes the tool's role clear. It does not explicitly distinguish it from the sibling proxygroup_get, so it stops short of a 5.

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?

It gives useful conditional guidance for the extra_params selects ('Use selectHosts to include assigned hosts', 'selectInterface ... on releases before 7.0'), which implies when those options matter. However, it never names alternatives (e.g., proxygroup_get) or states when not to use this tool, leaving selection between proxy-related getters to inference.

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