firegex-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| FIREGEX_MCP_BASE_URL | No | Firegex base URL | http://localhost:4444 |
| FIREGEX_MCP_PASSWORD | Yes | Used at /api/login | |
| FIREGEX_MCP_LOG_LEVEL | No | DEBUG/INFO/WARNING/ERROR/CRITICAL | INFO |
| FIREGEX_MCP_TIMEOUT_SECONDS | No | HTTP request timeout | 30 |
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 |
|---|---|
| get_firegex_statusA | Return Firegex global status: Also reports the API version and whether the current session is logged in. |
| set_passwordA | Set the initial Firegex password. Only valid while status == 'init'. |
| change_passwordA | Change the Firegex password (status == 'run' only).
|
| list_interfacesA | List the IPv4 and IPv6 interfaces visible to Firegex. |
| reset_firegexA | Reset Firegex's nftables state. DANGEROUS when |
| login_probeA | Force the auth lifecycle and return the (now-authenticated) status. Useful for verifying connectivity, credentials, and that the server has
been initialised. Raises |
| list_nfregex_servicesA | List nfregex services (one Firegex service = one TCP/UDP port being filtered). |
| get_nfregex_serviceA | Get a single nfregex service by id. |
| add_nfregex_serviceB | Register a new nfregex service.
|
| start_nfregex_serviceC | Start the nfregex engine for this service. |
| stop_nfregex_serviceB | Stop the nfregex engine (traffic flows through unfiltered). |
| delete_nfregex_serviceC | Delete a service and all its regexes. |
| rename_nfregex_serviceD | Rename a service. |
| update_nfregex_service_settingsB | Change service settings (causes restart). Only provided fields are updated. |
| list_regexesB | List regexes attached to a service. The |
| get_regexA | Get a single regex by numeric id. |
| add_regexB | Add a PCRE2 regex to a service.
|
| enable_regexA | Enable a previously-disabled regex without deleting it. |
| disable_regexA | Disable a regex (kept in DB, not applied). |
| delete_regexC | Permanently delete a regex. |
| get_nfregex_metricsA | Prometheus-format metrics for the nfregex module (blocked_packets, active). |
| list_nfproxy_servicesA | List nfproxy services (Python-pluggable inline proxy for TCP/HTTP). |
| get_nfproxy_serviceC | Get a single nfproxy service by id. |
| add_nfproxy_serviceC | Register a new nfproxy service. |
| start_nfproxy_serviceC | Start the nfproxy engine. |
| stop_nfproxy_serviceC | Stop the nfproxy engine. |
| delete_nfproxy_serviceB | Delete a service and its filter code. |
| rename_nfproxy_serviceD | Rename a service. |
| update_nfproxy_service_settingsB | Change settings of an existing nfproxy service (causes restart). |
| list_pyfiltersC | List Python filters discovered in the service code. |
| enable_pyfilterC | Enable a single pyfilter by name. |
| disable_pyfilterB | Disable a single pyfilter by name. |
| get_pyfilter_codeA | Read the current Python filter source for a service (empty string if unset). |
| set_pyfilter_codeC | Replace the Python filter source for a service. The code must import |
| set_pyfilter_code_from_fileA | Load Python filter code from a local file and push it to Firegex. The path is read on the machine running the MCP server. UTF-8 only. Files larger than 1 MiB are rejected. |
| get_firewall_settingsA | Read the firewall meta-settings (loopback, established, ICMP, mDNS, ...). |
| set_firewall_settingsB | Replace the firewall settings. All fields are required (no partial update). |
| enable_firewallA | Activate the nftables firewall ruleset. |
| disable_firewallA | Deactivate the nftables firewall ruleset (all rules unloaded). |
| list_firewall_rulesB | Return current rules, policy ('accept'/'drop'/'reject'), and enabled state. |
| replace_firewall_rulesA | Atomically replace the entire rule list. Firegex performs |
| list_phj_servicesA | List port-hijack rules (each redirects public_port → proxy_port on ip_dst). |
| get_phj_serviceB | Get a single porthijack rule. |
| add_phj_serviceA | Add a porthijack rule.
|
| start_phj_serviceC | Activate a porthijack rule. |
| stop_phj_serviceB | Deactivate a porthijack rule (traffic is no longer redirected). |
| delete_phj_serviceC | Remove a porthijack rule permanently. |
| rename_phj_serviceC | Rename a porthijack rule. |
| change_phj_destinationB | Repoint an existing porthijack rule to a new ip_dst:proxy_port. |
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 49 tools
Every tool targets a distinct resource (nfproxy, nfregex, phj, firewall, pyfilter, regex, auth) with clear prefixes and specific actions. Overlap is minimal and descriptions clarify any ambiguity.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., add_nfproxy_service, delete_regex). Even varied verbs (start, stop, enable, disable) are uniformly applied across resource types.
With 49 tools covering multiple subsystems, the count is high but justified by the breadth of Firegex's domain. Each tool serves a distinct purpose, and no tool seems superfluous.
The surface covers full CRUD and lifecycle operations for all main resource types: services, regexes, firewall rules, pyfilters, and auth. Missing operations like per-rule firewall CRUD are replaced by atomic replace, which is by design.