FortiAnalyzer MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FAZ_HOST | Yes | HTTPS origin, optionally ending in /jsonrpc | |
| FAZ_API_KEY | No | Bearer API key (FAZ_API_TOKEN is an alias) | |
| FAZ_MCP_PORT | No | Network transport port | 8000 |
| FAZ_PASSWORD | No | Session password | |
| FAZ_USERNAME | No | Session username | |
| FAZ_AUTH_MODE | No | auto, api_key, or session | auto |
| FAZ_CA_BUNDLE | No | PEM bundle for a private CA | |
| FAZ_LOG_LEVEL | No | Server logging level | INFO |
| FAZ_ALLOW_HTTP | No | Explicit development-only HTTP opt-in | false |
| FAZ_VERIFY_SSL | No | Verify the appliance certificate | true |
| FAZ_MAX_RESULTS | No | Maximum rows accepted by bounded tools | 200 |
| FAZ_DEFAULT_ADOM | No | Default ADOM | root |
| FAZ_MCP_BIND_HOST | No | Network transport bind address | 127.0.0.1 |
| FAZ_MCP_STATELESS | No | Streamable HTTP stateless mode | false |
| FAZ_MCP_TRANSPORT | No | stdio, streamable-http, or sse | stdio |
| FAZ_TIMEOUT_SECONDS | No | Normal API timeout | 30 |
| FAZ_MCP_ALLOWED_HOSTS | No | Additional comma-separated Host header allowlist | |
| FAZ_MCP_JSON_RESPONSE | No | Use JSON rather than SSE response bodies | true |
| FAZ_ENABLE_WRITE_TOOLS | No | Register the guarded raw mutation tool | false |
| FAZ_MCP_ALLOWED_ORIGINS | No | Comma-separated browser-origin allowlist | |
| FAZ_MAX_LOG_SEARCH_HOURS | No | Specific-device search window | 24 |
| FAZ_MAX_ACTIVE_LOG_SEARCHES | No | Maximum active/starting LogView tasks | 8 |
| FAZ_LOG_SEARCH_TIMEOUT_SECONDS | No | Convenience search timeout | 30 |
| FAZ_MAX_ALL_DEVICES_SEARCH_HOURS | No | All-device search window | 1 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| faz_search_api_docsA | Search metadata extracted from the FortiAnalyzer API guide. Use this before faz_raw_get or when a high-level tool does not cover an endpoint. Results include JSON-RPC methods, API paths, generated summaries, relative source paths, and public documentation URLs. Consult the linked source page for exact request parameters. The catalog is local and does not contact the appliance. |
| faz_connection_infoA | Show non-secret connection and safety configuration. This does not make an appliance request and never returns credentials or session identifiers. |
| faz_get_system_statusA | Get FortiAnalyzer version, model, hostname, license, disk, and memory status. |
| faz_get_system_performanceA | Get current FortiAnalyzer CPU, memory, and disk performance metrics. |
| faz_list_adomsA | List administrative domains, optionally returning only selected fields. |
| faz_get_adomA | Get one ADOM. An empty ADOM uses FAZ_DEFAULT_ADOM. |
| faz_list_devicesA | List managed devices in an ADOM, optionally selecting response fields. |
| faz_list_unregistered_devicesB | List devices that are visible to FortiAnalyzer but not registered. |
| faz_list_alertsA | List event-management alerts with bounded pagination. Times are FortiAnalyzer-local values in YYYY-MM-DD HH:MM:SS form and
must be supplied as a pair. |
| faz_list_event_handlersA | List basic and correlation event handlers in an ADOM. |
| faz_list_report_layoutsB | List SQL report layouts in an ADOM. |
| faz_list_report_templatesA | List available report templates in an ADOM. |
| faz_list_report_schedulesA | List configured SQL report schedules in an ADOM. |
| faz_list_log_forwardersA | List global FortiAnalyzer log-forwarding configurations. |
| faz_start_log_searchA | Start an asynchronous LogView search and return its task ID. Device names are explicit; use ["All_FortiGate"] only intentionally. Supply start_time and end_time together for an absolute appliance-local range, otherwise last_n_hours is used. Call faz_get_log_search next. |
| faz_get_log_searchA | Poll or fetch one page from a LogView task. The task is deleted automatically only after FortiAnalyzer proves that this is the last page. A full page is retained conservatively because more rows may exist; fetch the next offset or call faz_cancel_log_search. Set cleanup_when_done=false whenever pagination is managed explicitly. |
| faz_cancel_log_searchC | Cancel and delete a LogView task to release FortiAnalyzer resources. |
| faz_search_logsA | Run a bounded LogView submit/poll/fetch/cleanup workflow. This convenience tool returns one result page and always attempts to delete its server-side task on completion, timeout, or error. Failed cleanup stays tracked for a shutdown retry. For manual pagination, use faz_start_log_search and faz_get_log_search instead. |
| faz_raw_getA | Call an appliance-local read endpoint not covered by a high-level tool. First use faz_search_api_docs to find the candidate path, then consult
its linked source page for parameter placement. Catalog membership is
not enforced. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Each tool targets a distinct resource or lifecycle stage: list/get for different entity types, start/get/cancel/search for log search, and status vs performance are clearly separated. Even the raw_get fallback is distinct from high-level tools, and search_api_docs is unique. The only near-overlap (search_logs vs start+get) is clearly differentiated by description.
Names consistently follow faz_<verb>_<noun> pattern for almost all tools (list_*, get_*, start_*, search_*). The lone outlier is faz_connection_info, which is a noun phrase rather than a verb phrase, and faz_raw_get mixes an adjective before the verb. Overall the pattern is highly predictable with minor deviations.
19 tools is on the heavier side but appropriate for a comprehensive FortiAnalyzer management interface covering system, ADOMs, devices, alerts, reports, logs, and a raw API fallback. The count feels slightly above the ideal 3-15 range, but each tool serves a distinct function and nothing feels redundant.
The tool set covers a broad read-only surface: system status/perf, ADOM listing/getting, device listing (registered and unregistered), alerts, event handlers, reports (layouts/templates/schedules), log search with full lifecycle, and a raw read endpoint for uncovered paths. Missing write operations and per-item get-by-ID are notable but align with the apparent read/query purpose; the raw_get gap-filler increases completeness.