Skip to main content
Glama
ry-ops

fortigate-mcp-server

by ry-ops

audit_hardening

Run a read-only FortiGate hardening audit to find risky admin, crypto, SSL VPN, logging, password, NTP, FortiGuard, and HA settings, with prioritized safe fixes.

Instructions

Read-only hardening audit: everything audit_admin_access checks, plus admin access on LAN interfaces, local-in coverage, telnet, FortiCloud SSO, crypto and TLS settings, SSL VPN, logging (implicit deny, local-in denies, remote targets, cleartext syslog), password policy, NTP, FortiGuard updates and stale signatures, whether accept policies are protected by security profiles, and HA heartbeat hardening. Each finding carries the order to fix it in and whether the fix can cut off admin access, and fix_plan lists them in that order. On the evaluation license it lists the FortiGuard features that don't apply and what to rely on instead. check_hashes reads a config backup, as in audit_admin_access.

Input Schema

NameRequiredDescriptionDefault
vdomNoVDOM (default: FORTIGATE_VDOM, usually root)
check_hashesNoCheck stored password hashes via a config backup (default true)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.3

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the full burden, and it does well: it declares read-only behavior, that each finding carries a fix order and a 'can cut off admin access' warning, that fix_plan lists them in that order, and how behavior differs on the evaluation license. It omits permission/authentication requirements, which is the main remaining gap for a tool of this scope.

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 purpose before the enumeration, and every clause names a concrete check area rather than filler. The single very long sentence and dense comma-list make it less scannable than it could be.

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?

No output schema exists, so the description must convey return shape, and it does: per-finding remediation ordering, the admin-cutoff flag, the fix_plan ordering, and license-specific annotations. For a two-param read-only audit, nothing an agent needs to invoke it correctly is missing.

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

Parameters3/5

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

Schema coverage is 100% with only two parameters, so the schema already documents vdom and check_hashes. The description adds a modest clarification that check_hashes reads a config backup 'as in audit_admin_access', but nothing beyond baseline for vdom.

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 ('Read-only hardening audit') and then enumerates the exact check areas covered, from local-in and telnet through HA heartbeat. It explicitly positions itself relative to the sibling audit_admin_access ('everything audit_admin_access checks, plus...'), so an agent can tell which audit tool is the superset.

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?

The 'everything audit_admin_access checks, plus...' framing implies this is the comprehensive option versus the narrower sibling, and the eval-license note gives a situational caveat. It does not, however, explicitly state when NOT to use it or name audit_policy_protection as the narrower alternative for policy-profile checks.

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