Skip to main content
Glama
rstierli

FortiManager MCP Server

by rstierli

get_device_sdwan_monitor

Retrieve a managed device's live SD-WAN runtime status, including uplink bandwidth and per-member SLA health, to check current link performance and SLA breaches.

Instructions

Read a device's LIVE SD-WAN Monitor status through the FortiManager proxy.

Unlike get_device_sdwan (which reads the device-DB SD-WAN config), this proxies the device's live monitor API to return current SD-WAN runtime state -- the data the FortiManager "SD-WAN Monitor" view shows:

  • per-member link status and up/down bandwidth (virtual-wan/members)

  • per-member SLA health for each health-check: latency, jitter, packet loss and which SLA targets are met (virtual-wan/health-check)

Use it to answer "how are the uplinks doing right now / which member is breaching SLA", which the config read cannot answer.

Args: adom: ADOM name (defaults to DEFAULT_ADOM / "root" when omitted) device: Managed device name (e.g. "FGT-HQ"). Defaults to DEFAULT_DEVICE when omitted; required if that is not configured.

Returns: dict with keys: - adom, device - members: raw virtual-wan/members proxy response - health_check: raw virtual-wan/health-check proxy response - summary: condensed member links/bandwidth + per-member SLA - error / error_code: on failure

Input Schema

NameRequiredDescriptionDefault
adomNo
deviceNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.12.0

TDQS

A4.5/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 explains that the call proxies the live device monitor API through FortiManager (implying a managed, reachable device), enumerates the two proxied endpoints fetched, and names the return keys including error/error_code. It stops short of stating failure modes such as an offline device or permission requirements, so not 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 verb/resource and the key contrast before the endpoint bullet list and Args/Returns blocks. Reasonably efficient, though the Args/Returns docstring sections partially restate structured fields and could be trimmed.

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?

For a two-optional-parameter read tool this covers the essential gaps left by an annotation-free, description-less schema: what is fetched, the two data sections, the summary key, and error handling. The Returns section duplicates the existing output schema, which is mild redundancy rather than a gap.

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: it documents that adom defaults to DEFAULT_ADOM/'root' and device defaults to DEFAULT_DEVICE, plus a concrete example name and the case where device becomes required. Only the expected format/validation of adom names is left implicit.

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 (read) and resource (device's LIVE SD-WAN Monitor status) and explicitly contrasts itself with the sibling get_device_sdwan, which reads config rather than runtime state. An agent can distinguish the two without opening either schema.

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?

Names the alternative (get_device_sdwan) and the condition that selects it — config vs runtime state — and gives a concrete user question ('how are the uplinks doing right now / which member is breaching SLA') that only this tool answers. Routing is unambiguous.

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