Tools und Ressourcen

Übersicht

Der Zabbix MCP server stellt Zabbix-Funktionen für MCP-Clients als Tools und Ressourcen bereit.

Die Tool-Namen beschreiben die Aktivität. Wenn der Parameter ToolPrefix festgelegt ist, wird das Präfix jedem Tool-Namen vorangestellt; die Tool-Zugriffsregeln stimmen mit den unten aufgeführten einfachen Namen überein.

Lesewerkzeuge

Werkzeug Zabbix-API-Methode Argumente Sortiert nach Ressource
hostgroup_get hostgroup.get groupids, names, search, limit name zabbix://hostgroup/<id>
templategroup_get templategroup.get groupids, names, search, limit name zabbix://templategroup/<id>
host_get host.get hostids, groupids, search, limit name zabbix://host/<id>
template_get template.get templateids, groupids, search, limit name zabbix://template/<id>
item_get item.get hostids, itemids, search, limit name zabbix://item/<id>
lld_get discoveryrule.get hostids, ruleids, limit name -
interface_get hostinterface.get hostids, interfaceids, limit Schnittstellen-ID -
macro_get usermacro.get hostids oder global, macro_names, limit Makro -
problem_get problem.get eventids, groupids, hostids, severities, acknowledged, suppressed, recent, limit Ereignis-ID, absteigend -
maintenance_get maintenance.get maintenanceids, groupids, hostids, limit name -
history_get history.get itemids, time_from, time_till, type, limit clock, absteigend -
trigger_get trigger.get triggerids, hostids, search, limit Beschreibung zabbix://trigger/<id>

Beachten Sie Folgendes:

  • host_get und template_get geben auch die Auslöser jedes Objekts (eine begrenzte Anzahl von Feldern), Tags und verknüpfte Vorlagen zurück. Datenpunkte, Discovery-Regeln, Schnittstellen und Makros werden von den entsprechenden Werkzeugen zurückgegeben.
  • history_get erfordert einen Zeitraum von höchstens 7 Tagen, der frühestens vor 7 Tagen beginnt. Das Argument type muss float, unsigned, character, text, log oder json sein und mit dem Werttyp der Datenpunkte übereinstimmen. Bei einem falschen Typ wird ein leeres Ergebnis zurückgegeben, das nicht von einem Datenpunkt ohne Daten unterschieden werden kann. Der Verlauf binärer Datenpunkte (Werttyp 5) kann nicht über den MCP-Server abgerufen werden.
  • Lesewerkzeuge fordern eine feste Liste von Feldern an; alle Felder (output: extend) werden niemals angefordert.
  • Die Ergebnisse von Werkzeugen mit einer Ressource enthalten das Feld uri, sodass ein Agent von einer Liste zu einer einzelnen Entität wechseln kann.

Antwortformat

Alle Lese-Tools geben die Antwort im selben Format zurück:

{
  "results": [ ... ],
  "count": 2,
  "truncated": true,
  "truncated_by": "count",
  "limit": 2,
  "note": "The result count limit was reached ..."
}

Eine Antwort wird durch das Argument limit (Standard: 100, Maximum: 1000) und durch die serialisierte Größe der Antwort (MaxResponseSize, Standard: 64K) begrenzt. Die Antwort wird beendet, sobald eines der Limits erreicht ist. Die Antwort wird nur zwischen Ergebnissen gekürzt, niemals innerhalb eines Ergebnisses. Eine gekürzte Antwort gibt an, welches Limit erreicht wurde. Jedes Tool verfügt über eine feste Sortierreihenfolge, daher enthält eine gekürzte Antwort immer den Anfang des vollständigen Ergebnissatzes. Paging wird nicht unterstützt. Um andere Ergebnisse abzurufen, schränken Sie die Abfrage ein.

Problem-Tools

Alle Problem-Tools rufen event.acknowledge mit den entsprechenden Aktionsflags auf.
Das Argument eventids ist erforderlich; Ereignis-IDs können mit problem_get abgerufen werden.
Mit jedem Problem-Tool kann eine Nachricht (Kommentar) hinzugefügt werden.
Das Argument message ist optional, außer bei problem_annotate, wo es erforderlich ist; wenn es angegeben wird, wird die Nachricht im selben Zabbix-API-Aufruf aufgezeichnet.

Tool Effekt Zusätzliche Argumente
problem_acknowledge Das Problem bestätigen. -
problem_unacknowledge Die Bestätigung entfernen. -
problem_close Das Problem manuell schließen (nur für Auslöser, die das manuelle Schließen erlauben). -
problem_annotate Eine Nachricht aufzeichnen. message (erforderlich)
problem_change_severity Den Schweregrad des Problems ändern. severity (0-5)
problem_suppress Das Problem bis zu einem bestimmten Zeitpunkt oder auf unbestimmte Zeit unterdrücken. suppress_until
problem_unsuppress Die Unterdrückung entfernen. -

Probleme können nicht erstellt oder gelöscht werden; alle Problem-Tools aktualisieren vorhandene Probleme.

Wartungswerkzeuge

Werkzeug Zabbix-API-Methode Argumente
maintenance_create maintenance.create name, groupids und/oder hostids, active_since, active_till, timeperiods, description, tags, tags_evaltype
maintenance_update maintenance.update maintenanceid und beliebige der oben genannten Argumente. Listenargumente ersetzen den gesamten Wertesatz; eine leere Liste löscht den Wertesatz.
maintenance_delete maintenance.delete maintenanceids

Wenn ein Wartungszeitraum aktualisiert wird, ersetzen Listenargumente (z. B. hostids, groupids und timeperiods) die vorhandenen Werte, anstatt sie zu ergänzen. Wenn beispielsweise ein Wartungszeitraum die Hosts A und B umfasst und maintenance_update mit hostids aufgerufen wird, das nur Host C enthält, umfasst der Wartungszeitraum anschließend nur Host C.

maintenance_create ist die einzige Operation, die nicht idempotent ist, und maintenance_delete ist die einzige Operation, die nicht rückgängig gemacht werden kann. Um ihre Verwendung zu verhindern, verweigern Sie diese Werkzeuge mit dem Parameter DenyTool.

Verhalten von Schreibwerkzeugen

Problem- und Wartungswerkzeuge sind Schreibwerkzeuge. Sie funktionieren wie folgt:

  • Die Argumente werden vor jedem Zabbix-API-Aufruf validiert. Wenn die Validierung fehlschlägt, nennt der Fehler die nicht erfüllte Einschränkung.
  • Wenn der Client dies unterstützt, wird die Änderung erst angewendet, nachdem sie vom Benutzer genehmigt wurde.
  • Die Änderung wird von Zabbix unter Verwendung des Tokens des Aufrufers durchgeführt. Zabbix prüft die Berechtigungen und protokolliert die Änderung im Audit-Log für den Besitzer des Tokens.
  • Zabbix-Fehler, einschließlich Berechtigungsfehlern, werden unverändert als Fehlerobjekt mit den Feldern code, message und data zurückgegeben.
  • Schreibwerkzeuge geben das Zabbix-Ergebnis direkt zurück; die Antwortlimits von Lesewerkzeugen gelten nicht.
  • Schreibaufrufe werden vom MCP-Server niemals wiederholt.

Ressourcen

Ressourcen verwenden das URI-Schema zabbix://<kind>/<id>. Nur zabbix://about ist in der Antwort von resources/list enthalten; Entitäts-IDs können nicht aufgelistet werden und werden aus den Ergebnissen der Tools abgerufen. Die Antwort von resources/templates/list listet die Arten von Entitäten auf.

URI Inhalt
zabbix://about Die API-URL, die Frontend-URL, die Zabbix-Version, die Identität, auf die das Token des Aufrufers aufgelöst wird, und die Liste der bereitgestellten Tools.
zabbix://host/<hostid> Der Host-Datensatz ohne Datenpunkte, Auslöser, Schnittstellen und Makros.
zabbix://hostgroup/<groupid> Der Hostgruppen-Datensatz ohne die Liste der Mitglieder.
zabbix://template/<templateid> Der Vorlagen-Datensatz ohne Datenpunkte, Auslöser und Discovery-Regeln.
zabbix://templategroup/<groupid> Der Vorlagengruppen-Datensatz ohne die Liste der Mitglieder.
zabbix://item/<itemid> Die Definition des Datenpunkts ohne den aktuellen Wert.
zabbix://trigger/<triggerid> Die Definition des Auslösers ohne Hosts, Abhängigkeiten, Funktionen und Tags.

Eine Ressource, deren zugehöriges Tool verweigert wird, existiert nicht. Eine nicht vorhandene Entität und eine Entität, auf die der Eigentümer des Tokens keinen Zugriff hat, werden beide als Ressource nicht gefunden gemeldet; diese Fälle sind absichtlich nicht voneinander zu unterscheiden. Die Ressource zabbix://about ist von den Zugriffsregeln für Tools nicht betroffen.