Ferramentas e recursos
Visão geral
O Zabbix MCP server expõe as funcionalidades do Zabbix para clientes MCP como tools e resources.
Os nomes das tools descrevem a atividade. Se o parâmetro ToolPrefix estiver definido, o prefixo será adicionado a todos os nomes das tools; as regras de acesso às tools correspondem aos nomes simples listados abaixo.
Ferramentas de leitura
| Ferramenta | Método da API do Zabbix | Argumentos | Ordenado por | Recurso |
|---|---|---|---|---|
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 |
ID da interface | - |
macro_get |
usermacro.get | hostids ou global, macro_names, limit |
macro | - |
problem_get |
problem.get | eventids, groupids, hostids, severities, acknowledged, suppressed, recent, limit |
ID do evento, decrescente | - |
maintenance_get |
maintenance.get | maintenanceids, groupids, hostids, limit |
name | - |
history_get |
history.get | itemids, time_from, time_till, type, limit |
clock, decrescente | - |
trigger_get |
trigger.get | triggerids, hostids, search, limit |
description | zabbix://trigger/<id> |
Observe que:
host_getetemplate_gettambém retornam os triggers de cada objeto (um conjunto limitado de campos), tags e templates vinculados. Items, regras de descoberta, interfaces e macros são retornados pelas ferramentas correspondentes.history_getrequer um intervalo de tempo não superior a 7 dias e que comece no máximo 7 dias atrás. O argumentotypedeve ser um dos seguintes:float,unsigned,character,text,logoujson, e deve corresponder ao tipo de valor dos items; se o tipo estiver incorreto, será retornado um resultado vazio, que não pode ser distinguido de um item sem dados. O histórico de items binários (tipo de valor 5) não pode ser recuperado por meio do server MCP.- As ferramentas de leitura solicitam uma lista fixa de campos; todos os campos (
output: extend) nunca são solicitados. - Os resultados das ferramentas que têm um recurso contêm o campo
uri, para que um agent possa prosseguir de uma lista para uma única entidade.
Formato da resposta
Todas as ferramentas de leitura retornam a resposta no mesmo formato:
{
"results": [ ... ],
"count": 2,
"truncated": true,
"truncated_by": "count",
"limit": 2,
"note": "The result count limit was reached ..."
}
Uma resposta é limitada pelo argumento limit (padrão: 100, máximo: 1000) e pelo tamanho serializado da resposta (MaxResponseSize, padrão: 64K).
A resposta é interrompida quando qualquer um dos limites é atingido.
A resposta é truncada somente entre os resultados, nunca dentro de um resultado, e uma resposta truncada indica qual limite foi atingido.
Cada ferramenta tem uma ordem de classificação fixa, portanto, uma resposta truncada sempre corresponde ao início do conjunto completo de resultados.
A paginação não é compatível; para obter outros resultados, restrinja a consulta.
Ferramentas de problemas
Todas as ferramentas de problemas chamam event.acknowledge com os sinalizadores de ação correspondentes.
O argumento eventids é obrigatório; os IDs dos eventos podem ser obtidos com problem_get.
Uma mensagem (comentário) pode ser adicionada com qualquer ferramenta de problemas.
O argumento message é opcional, exceto para problem_annotate, em que é obrigatório; se especificado, a mensagem é registrada na mesma chamada da API do Zabbix.
| Tool | Effect | Additional arguments |
|---|---|---|
problem_acknowledge |
Reconhecer o problema. | - |
problem_unacknowledge |
Remover o reconhecimento. | - |
problem_close |
Fechar o problema manualmente (somente para triggers que permitem o fechamento manual). | - |
problem_annotate |
Registrar uma mensagem. | message (obrigatório) |
problem_change_severity |
Alterar a severidade do problema. | severity (0-5) |
problem_suppress |
Suprimir o problema até um horário especificado ou indefinidamente. | suppress_until |
problem_unsuppress |
Remover a supressão. | - |
Não é possível criar ou excluir problemas; todas as ferramentas de problemas atualizam problemas existentes.
Ferramentas de manutenção
| Ferramenta | Método da API do Zabbix | Argumentos |
|---|---|---|
maintenance_create |
maintenance.create | name, groupids e/ou hostids, active_since, active_till, timeperiods, description, tags, tags_evaltype |
maintenance_update |
maintenance.update | maintenanceid e qualquer um dos argumentos acima. Os argumentos de lista substituem todo o conjunto de valores; uma lista vazia limpa o conjunto. |
maintenance_delete |
maintenance.delete | maintenanceids |
Quando um período de manutenção é atualizado, os argumentos de lista (como hostids, groupids e timeperiods) substituem os valores existentes em vez de adicioná-los.
Por exemplo, se um período de manutenção abranger os hosts A e B e maintenance_update for chamado com hostids contendo apenas o host C, o período de manutenção abrangerá somente o host C.
maintenance_create é a única operação que não é idempotente, e maintenance_delete é a única operação que não pode ser revertida.
Para impedir seu uso, negue essas ferramentas com o parâmetro DenyTool.
Comportamento das ferramentas de gravação
As ferramentas de problemas e manutenção são ferramentas de gravação. Elas funcionam da seguinte forma:
- Os argumentos são validados antes de qualquer chamada à API do Zabbix; se a validação falhar, o erro identificará a restrição que não foi atendida.
- Se o cliente oferecer suporte, a alteração será aplicada somente após ser aprovada pelo usuário.
- A alteração é realizada pelo Zabbix usando o token do chamador. O Zabbix verifica as permissões e registra a alteração no log de auditoria associada ao proprietário do token.
- Os erros do Zabbix, incluindo erros de permissão, são retornados inalterados como um objeto de erro com os campos
code,messageedata. - As ferramentas de gravação retornam diretamente o resultado do Zabbix; os limites de resposta das ferramentas de leitura não se aplicam.
- As chamadas de gravação nunca são repetidas pelo servidor MCP.
Recursos
Os recursos usam o esquema de URI zabbix://<kind>/<id>.
Somente zabbix://about está incluído na resposta de resources/list; os IDs das entidades não podem ser enumerados e são obtidos nos resultados das ferramentas.
A resposta de resources/templates/list lista os tipos de entidades.
| URI | Conteúdo |
|---|---|
zabbix://about |
A URL da API, a URL do frontend, a versão do Zabbix, a identidade à qual o token do chamador corresponde e a lista de ferramentas expostas. |
zabbix://host/<hostid> |
O registro do host sem itens, triggers, interfaces e macros. |
zabbix://hostgroup/<groupid> |
O registro do grupo de hosts sem a lista de membros. |
zabbix://template/<templateid> |
O registro do template sem itens, triggers e regras de descoberta. |
zabbix://templategroup/<groupid> |
O registro do grupo de templates sem a lista de membros. |
zabbix://item/<itemid> |
A definição do item sem o valor atual. |
zabbix://trigger/<triggerid> |
A definição do trigger sem hosts, dependências, funções e tags. |
Um recurso cuja ferramenta correspondente tenha acesso negado não existe.
Uma entidade inexistente e uma entidade à qual o proprietário do token não tem acesso são relatadas como recurso não encontrado; esses casos são deliberadamente indistinguíveis.
O recurso zabbix://about não é afetado pelas regras de acesso às ferramentas.