Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Zabbix AI CLI MCP

OCI · GHCR.IO/STUFENTLY/ZABBIX-AI-CLI-MCP

Task-shaped Zabbix access for AI agents: problems, host triage, metrics, maintenance windows.

+4 this week 61 Trust /100

Last scanned (2 hours ago)

Scores higher than 98% of OCI servers

Category Monitoring and Observability

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency100
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to stufently/zabbix-ai-cli-mcp). View diagnostics → Pass
  • Clear OSI-approved license (Apache-2.0).Pass
  • Actively maintained (last published 20 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability69
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 2785 tokens (~185/item across 15 items; 15 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management73
  • Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 15 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 16 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a current MCP spec version (2026-07-28).Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 5 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 70 to 73. That category is still filling its 30-day observation window: 21 days of observed history at the previous scan, 22 at this one. The score rises as the window fills, whether or not the server changes.

  • 3 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

  • 1 Nov 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

  • 30 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

  • 28 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 43 to 47. That category is still filling its 30-day observation window: 13 days of observed history at the previous scan, 14 at this one. The score rises as the window fills, whether or not the server changes.

  • 25 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

  • 23 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

  • 21 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Analysed oci/ghcr.io/stufently/zabbix-ai-cli-mcp@0.5.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem oci
Reason Verified
Discovered via OCI referrers API
Source repo stufently/zabbix-ai-cli-mcp
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/stufently/zabbix-ai-cli-mcp/.github/workflows/release.yml@refs/tags/v0.5.0
Rekor log index 3265905653
Predicate type SLSA build provenance https://slsa.dev/provenance/v1
Subject digest sha256:57bdaac9d6db713b1f0b95a2d21d6afe3888be3e59849c7252fc5378f60e250f

Background: How many MCP packages publish verified provenance →

MCP tools · 15 exposed · ~2,700 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
zabbix_alert_why ~128

Explain whether an event produced a notification, and what stood in the way. Walks the whole chain: suppression, delivery attempts and their errors, trigger actions, media types, and each recipient's media severity filter and active period. Any one of those links can drop a notification without recording an error anywhere. Use when the user asks why an alert did or did not arrive, or why a notification was missing. For the problem itself call zabbix_problem; to turn a pasted notification into identifiers call zabbix_resolve first.

NameTypeReqDescription
eventstringyesevent identifier

No output schema declared.

No examples provided.

zabbix_api_call ~222

Call a Zabbix API method directly. Read methods run immediately. Write methods produce a plan and go through approval like every other change. A method that is not in the risk registry is refused rather than guessed at. The constrained exceptions are mediatype.update (mediatypeid + status only) and discoveryrule.update (itemid + lifetime_type/lifetime/enabled_lifetime_type/enabled_lifetime only); prefer the domain operations. The params argument accepts an object, array or JSON string. Over MCP this tool is read-only. Use when no high-level tool covers the question and a read method such as host.get is required. For problems, hosts, metrics or alert delivery call the matching zabbix tool instead. A write through this tool is refused; to make one, call zabbix_write, or zabbix_plan_create to show the operator the change first.

NameTypeReqDescription
methodstringyesAPI method, for example host.get
params––method parameters as a JSON object or JSON string (arrays also accepted)

No output schema declared.

No examples provided.

zabbix_host_investigate ~123

Collect a diagnostic snapshot of one host in a single call. Gathers host state, active problems, recent events, silent and unsupported items and maintenance windows. It reports facts and draws no conclusions; interpreting them is the caller's job. Use when the user asks what is wrong with a named host or wants one diagnostic pass instead of several queries. For a short status line call zabbix_host_status; for hosts Zabbix cannot poll at all call zabbix_unreachable.

NameTypeReqDescription
hoststringyeshost name, fragment or identifier

No output schema declared.

No examples provided.

zabbix_host_status ~116

Summarise one host: availability, active problems, data freshness, maintenance. An aggregate over several API calls, returned as a handful of fields rather than several thousand characters of configuration. Use when the user wants a short health check of one named host: whether it is up, whether it has problems, whether data is fresh. For the full diagnostic bundle call zabbix_host_investigate; to search by a name fragment call zabbix_hosts.

NameTypeReqDescription
hoststringyeshost name, fragment or identifier

No output schema declared.

No examples provided.

zabbix_hosts ~179

Find hosts by name fragment, pattern or group. Matching is a case-insensitive substring over both the technical and the visible name, and exact matches are listed first. Guessing exact names is the most common way a query comes back empty. Use when the user is looking for a host and does not have its exact name, or wants the hosts in a group. For a short health check of one host call zabbix_host_status; for a full diagnostic snapshot call zabbix_host_investigate.

NameTypeReqDescription
groupstring–limit to a host group
limitinteger–maximum rows to return, 1 to 500 (default 50); the result reports whether it was truncated
monitoredboolean–exclude hosts whose monitoring is disabled
searchstring–name fragment; * is allowed

No output schema declared.

No examples provided.

zabbix_maintenance_list ~168

List maintenance windows, including expired ones. Expired windows are shown by default: removing one that has already lapsed is a routine follow-up, and it cannot be done if the window is invisible. Use when the user asks which maintenance windows exist, which hosts are silenced, or whether a window has expired. To open, extend, end or remove a window, call zabbix_write, or zabbix_plan_create to show the operator the change first.

NameTypeReqDescription
activeboolean–hide windows whose period has passed
hoststring–only windows covering this host
limitinteger–maximum rows to return, 1 to 500 (default 50); the result reports whether it was truncated
searchstring–name fragment

No output schema declared.

No examples provided.

zabbix_metrics_history ~182

Read an item's values over a time window, with min, max and average. Windows are written the way operators write them: 30m, 2h, 24h, 7d. Use when the user asks how a metric behaved over a period, or wants its minimum, average and maximum. For only the newest value call zabbix_metrics_latest; for whether the host itself is unreachable call zabbix_unreachable.

NameTypeReqDescription
hoststringyeshost name or fragment
itemsinteger–maximum distinct items to read, 1 to 10
laststring–how far back to read
limitinteger–maximum rows to return, 1 to 500 (default 200); the result reports whether it was truncated
searchstring–item name or key fragment

No output schema declared.

No examples provided.

zabbix_metrics_latest ~167

Show the newest value of a host's items. Values come from history, because item.lastvalue has returned a constant zero for several releases. The history type is derived from each item automatically; querying it wrongly returns nothing rather than an error. Use when the user wants the current value of an item, such as CPU, disk or a custom metric, on one host. For values across a time window call zabbix_metrics_history; for a host whose items stopped sending data call zabbix_host_investigate.

NameTypeReqDescription
hoststringyeshost name or fragment
limitinteger–maximum rows to return, 1 to 500 (default 25); the result reports whether it was truncated
searchstring–item name or key fragment

No output schema declared.

No examples provided.

zabbix_plan_create ~376

Describe a change to Zabbix without making it. Use when the user wants to see what a change would do before anything is written. Call zabbix_write instead when the user wants the change applied now; call zabbix_plan_status to check a plan that already exists. Returns a plan identifier and the exact command the operator must run to apply it. Nothing changes until it is applied. Use this to show the operator what a change would do; call zabbix_write to make one, or relay the approve command so the operator applies this exact plan. Available operations: api.call — Call a Zabbix API method directly. discoveryrules.set_lost_resources — Set lost LLD resource policy by itemid or template + rule name; only lifetime_type/lifetime/enabled_lifetime_type/enabled_lifetime. Shows host and lost-item counts; deletion is destructive. events.acknowledge — Acknowledge an event, comment on it, close it or change its severity. maintenance.create — Open a maintenance window over hosts or host groups. maintenance.delete — Remove a maintenance window permanently. maintenance.expire — End a maintenance window now, keeping its record. maintenance.extend — Push a maintenance window's end further out. mediatypes.disable — Disable a media type by mediatypeid or exact name; change only status and show affected users/actions. mediatypes.enable — Enable a media type by mediatypeid or exact name; change only status, including Script/Webhook. triggers.disable — Disable a trigger so it stops raising problems. triggers.enable — Re-enable a disabled trigger.

NameTypeReqDescription
operationstringyesthe change to describe
paramsobject–parameters for the operation; call zabbix_plan_create with an unknown parameter to be told the accepted ones

No output schema declared.

No examples provided.

zabbix_plan_status ~97

Check whether a stored plan is still waiting, was applied, or has expired. Use when the user asks what happened to a change they were asked to approve, or after zabbix_plan_create while you wait. Call zabbix_plan_create to describe a new change, and call zabbix_write when the user wants that change made now.

NameTypeReqDescription
plan_idstringyesidentifier returned by zabbix_plan_create

No output schema declared.

No examples provided.

zabbix_problem ~79

Show one active problem by event identifier. Use when the user gives one event identifier and wants that problem's host, severity and state. For the list of what is broken now call zabbix_problems; to learn why its notification did or did not arrive call zabbix_alert_why.

NameTypeReqDescription
eventstringyesevent identifier

No output schema declared.

No examples provided.

zabbix_problems ~222

List active Zabbix problems, newest first. Suppressed problems are included by default and say which maintenance window hides them. Hiding them silently is how an outage goes unnoticed for weeks. Use when the user asks what is broken right now, which problems are firing, or whether anything is in alarm. For one event identifier call zabbix_problem; to learn why a notification never arrived call zabbix_alert_why.

NameTypeReqDescription
exclude_suppressedboolean–hide problems inside a maintenance window (they are shown by default)
groupstring–limit to a host group
hoststring–limit to one host; matching is fuzzy
limitinteger–maximum rows to return, 1 to 500 (default 50); the result reports whether it was truncated
severitystring–minimum severity, as a name or 0-5
sincestring–only problems that started within this window
unacknowledgedboolean–only problems nobody has acknowledged

No output schema declared.

No examples provided.

zabbix_resolve ~132

Turn the text of a notification into event, host and trigger identifiers. Accepts a notification pasted out of a chat client. Without it, an instruction such as "acknowledge that one" cannot be acted on, because the identifiers only exist inside the message text. Use when the user pastes a notification from chat and the event, host or trigger identifier is buried in that text. Once you have the event identifier, call zabbix_problem for the problem or zabbix_alert_why for the delivery chain.

NameTypeReqDescription
textstringyesthe pasted notification, or a bare event identifier

No output schema declared.

No examples provided.

zabbix_unreachable ~143

List monitored hosts Zabbix currently cannot poll. Availability lives on the interface: host.available was removed in 5.4, and code still reading it sees nothing at all. Use when the user asks which hosts Zabbix cannot poll, or which agent, SNMP, IPMI or JMX interfaces are down. A host whose interface is up but whose items went silent is not listed here: call zabbix_host_investigate for that, and zabbix_metrics_latest for the newest values.

NameTypeReqDescription
limitinteger–maximum rows to return, 1 to 500 (default 50); the result reports whether it was truncated

No output schema declared.

No examples provided.

zabbix_write ~366

Change Zabbix in one call and record it in the audit log. Use when the user wants a permitted change applied now rather than only described. To show the operator the change before anything is written, call zabbix_plan_create instead; to check a plan that already exists, call zabbix_plan_status. Prefer the narrowest operation that does the job and say plainly what you did. Operations marked destructive remove something Zabbix cannot restore on its own. Available operations: api.call — Call a Zabbix API method directly. discoveryrules.set_lost_resources — Set lost LLD resource policy by itemid or template + rule name; only lifetime_type/lifetime/enabled_lifetime_type/enabled_lifetime. Shows host and lost-item counts; deletion is destructive. events.acknowledge — Acknowledge an event, comment on it, close it or change its severity. maintenance.create — Open a maintenance window over hosts or host groups. maintenance.delete — Remove a maintenance window permanently. (destructive) maintenance.expire — End a maintenance window now, keeping its record. maintenance.extend — Push a maintenance window's end further out. mediatypes.disable — Disable a media type by mediatypeid or exact name; change only status and show affected users/actions. (destructive) mediatypes.enable — Enable a media type by mediatypeid or exact name; change only status, including Script/Webhook. triggers.disable — Disable a trigger so it stops raising problems. (destructive) triggers.enable — Re-enable a disabled trigger.

NameTypeReqDescription
operationstringyesthe change to make
paramsobject–parameters for the operation; call zabbix_write with an unknown parameter to be told the accepted ones

No output schema declared.

No examples provided.

Install

How do I install the Zabbix AI CLI MCP server?

Zabbix AI CLI MCP runs locally as a container image, launched with docker run --rm -i ghcr.io/stufently/zabbix-ai-cli-mcp:0.5.0. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/stufently/zabbix-ai-cli-mcp

# add to Claude Code
claude mcp add stufently-zabbix-ai-cli-mcp -- docker run --rm -i ghcr.io/stufently/zabbix-ai-cli-mcp:0.5.0
Common questions

What is the Zabbix AI CLI MCP server?

Zabbix AI CLI MCP is listed in the public MCP registry as io.github.stufently/zabbix-ai-cli-mcp. Task-shaped Zabbix access for AI agents: problems, host triage, metrics, maintenance windows. This page covers its container image (ghcr.io/stufently/zabbix-ai-cli-mcp).

Is the Zabbix AI CLI MCP server safe to use?

Zabbix AI CLI MCP scores 61 out of 100 on VerifyMCP. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Zabbix AI CLI MCP server expose?

Zabbix AI CLI MCP exposes 15 tools: zabbix_alert_why, zabbix_api_call, zabbix_host_investigate, zabbix_host_status, zabbix_hosts, and 10 more. Their descriptions and schemas cost roughly 2,700 tokens of context every time the server is loaded.

Is the Zabbix AI CLI MCP server still maintained?

Zabbix AI CLI MCP is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Zabbix AI CLI MCP server under?

Zabbix AI CLI MCP declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.