Skip to main content
Glama
rstierli

FortiManager MCP Server

by rstierli

get_device_revision

Retrieve a managed device's stored configuration text for a specific database revision, defaulting to the latest, with secret-bearing directives redacted.

Instructions

Check out one device DB revision's stored configuration text.

Note: Requires the device to have at least one device DB revision on record -- see the note on list_device_revisions.

Args: device: Managed device name revision: Revision number (see list_device_revisions), or -1 (default) for the latest revision

Returns: dict: status, device, revision, content (device DB config text with known secret-bearing directives redacted -- see redact_config_text_secrets. Structured dict-field masking elsewhere in this codebase can't see inside this multi-line CLI text, so this applies a separate directive-name-based redaction.)

Example: >>> result = await get_device_revision("hub2", revision=8) >>> print(result["content"])

Input Schema

NameRequiredDescriptionDefault
deviceYes
revisionNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.12.0

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does well: it discloses that secret-bearing directives in the returned text are redacted via a separate directive-name-based mechanism, and even explains why structured masking is insufficient. It does not cover permissions or behavior when the revision doesn't exist, which keeps it below a 5.

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 the action, then clearly sectioned into Note/Args/Returns/Example. The redaction parenthetical is somewhat long but explains a non-obvious behavior, so it earns most of its space; the code example is a marginal addition given the Args/Returns sections already state the shape.

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

Completeness4/5

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

Given an output schema exists, the description goes beyond requirements by describing the redaction semantics of the returned content and the prerequisite condition. What remains unstated is failure behavior for a nonexistent revision number, which is a minor gap for a read tool.

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

Parameters4/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: 'device' is defined as a managed device name and 'revision' as a revision number from list_device_revisions, with -1 (default) explicitly meaning latest. Only format/syntax detail (e.g. type of device identifier) is missing.

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?

States a specific verb+resource: retrieving the stored configuration text of one device DB revision. It is clearly distinguishable from list_device_revisions (which enumerates revisions) and diff_device_revision (which compares them).

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

Usage Guidelines4/5

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

Explicitly names the prerequisite (device must have at least one DB revision, pointing to the note on list_device_revisions) and explains that revision numbers come from that same tool, with -1 meaning latest. No explicit when-not guidance versus diff_device_revision, but the retrieval vs comparison split is implicit and clear.

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