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_getundtemplate_getgeben 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_geterfordert einen Zeitraum von höchstens 7 Tagen, der frühestens vor 7 Tagen beginnt. Das Argumenttypemussfloat,unsigned,character,text,logoderjsonsein 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,messageunddatazurü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.