Skip to main content
Glama
FortiManager MCP Server

FortiManager MCP Server

by rstierli

revert_adom_revision

Restores the live ADOM database to a selected past revision by cloning it into a new revision; explicit confirmation is required under strict safety.

Instructions

Revert the live ADOM DB to a past revision.

FortiManager has no dedicated revert-ADOM-revision call. The documented mechanism (How-To 013, "How to revert an ADOM Revision?") is to clone the target past revision: this both restores the live ADOM DB to that historical state and records the clone itself as a brand-new revision. This writes to the ADOM DB (a pure ADOM object, not a device) -- push any restored policy/object changes to devices separately with preview_install

  • install_package/install_device_settings as needed.

Safety: governed by FMG_REVERT_SAFETY (default "strict"), same pattern as trigger_fmg_restore -- refused unless confirm=True is also passed. A clone-revert has no dry-run or content-screening equivalent (unlike the firewall-policy revert, which is gated by content instead): it replaces the entire live ADOM DB in one call, so the gate is a plain explicit confirmation. Set FMG_REVERT_SAFETY=disabled to remove it.

Args: adom: ADOM name revision: Revision number to revert to (the version field from list_adom_revisions) name: Name for the newly-created revision (default: "Restored-rev_{revision}") desc: Description for the newly-created revision (default: "Revert of ADOM Revision #{revision}") locked: Protect the newly-created revision from deletion (default False) confirm: Must be True to proceed under FMG_REVERT_SAFETY=strict (default). Ignored when FMG_REVERT_SAFETY=disabled.

Returns: dict: status, adom, reverted_from, new_revision, message

Input Schema

NameRequiredDescriptionDefault
adomYes
descNo
nameNo
lockedNo
confirmNo
revisionYes

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.12.0

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description carries the full burden and does: it discloses that this replaces the entire live ADOM DB in one irreversible call, that there is no dry-run or content screening (contrasted with the firewall-policy revert), that it writes only ADOM objects and not devices, and how to disable the safety gate via FMG_REVERT_SAFETY.

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?

Front-loaded with purpose and mechanism, then safety, then args — a sensible order. It is on the long side and includes a Returns block that duplicates the existing output schema, plus a few restated defaults, but no sentence is misleading or filler-heavy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a high-blast-radius destructive operation with six parameters, zero schema descriptions, and no annotations, the description supplies mechanism, safety gate, follow-up workflow, and per-parameter meaning. Nothing an agent needs to invoke it safely is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does for all six parameters: adom, revision (with provenance: the `version` field from list_adom_revisions), name/desc defaults, locked semantics, and confirm's behavior with its interaction with FMG_REVERT_SAFETY=disabled.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a precise verb+resource+target: 'Revert the live ADOM DB to a past revision.' It also explains the underlying clone mechanism and distinguishes this from the firewall-policy revert, so an agent can tell it apart from revert_device_revision, revert_firewall_policy, and diff_adom_revision without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states when this applies, how it works (clone-based revert, since FortiManager has no dedicated call), and routes the agent to list_adom_revisions for the revision value and to preview_install/install_package for pushing restored config to devices. The gating condition (confirm=True under FMG_REVERT_SAFETY=strict) is spelled out.

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

Deploy Server

Other Tools