Skip to main content
Glama
ry-ops

fortigate-mcp-server

by ry-ops

get_license_features

Check FortiGate license and FortiGuard status: free eval VM, licensed VM or hardware, FortiGuard reachability, services licensed or expiring in 30 days, and signature database versions/ages.

Instructions

What this FortiGate is licensed for: free evaluation VM, licensed VM or hardware; whether it reaches FortiGuard; which FortiGuard services (IPS, antivirus, web filter, application control, Internet Service Database, FortiCloud logging...) are licensed, not licensed or expiring within 30 days; and the version and age of each signature database. Tools that need a FortiGuard service check this and say so when it's missing.

Input Schema

NameRequiredDescriptionDefault
vdomNoVDOM (default: FORTIGATE_VDOM, usually root)

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv1.1.3

TDQS

A3.8/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 behavioral burden, and it does disclose the substance of the operation: the license mode, FortiGuard reachability, per-service licensed/not-licensed/expiring status, a 30-day expiry window, and database versions and ages. It stops short of stating read-only/side-effect-free behavior or any permission requirements, but for a read tool the disclosed output scope is strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One dense, front-loaded sentence covers the purpose and contents, followed by a short usage note. The FortiGuard service enumeration is long but each item is informative rather than padding, and the key point (license entitlements) leads.

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?

With no output schema and no annotations, the description must describe the return payload, and it does so thoroughly enough for an agent to know what it will receive. Minor gaps remain: no mention of the vdom parameter's effect or the fact that the call is a safe read.

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 description coverage is 100% and the single vdom parameter already documents itself with a default. The description adds nothing about vdom scope or defaults, so the baseline 3 for schema-covered parameters applies.

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

Purpose4/5

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

The description names a specific verb+resource pair (get license/feature entitlements) and enumerates exactly what is reported: VM vs hardware licensing, FortiGuard reachability, per-service license state, and signature DB version/age. It is clearly distinct from a generic status read, though it never explicitly contrasts itself with siblings like get_license_status or get_license_limits.

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

Usage Guidelines3/5

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

The closing sentence ('Tools that need a FortiGuard service check this and say so when it's missing') gives useful context about how the tool is consumed, but it describes its role in a workflow rather than telling the agent when to call it versus get_license_status or get_fortiguard_status. No explicit when/when-not or alternative routing is provided.

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