Skip to main content
Glama

firewall_baseline

Applies a MikroTik-defconf-style IPv4 firewall with input, forward, and NAT rules. Stops and lists existing filters to avoid conflicts; set replace_existing to override.

Instructions

Apply a MikroTik-defconf-style IPv4 firewall: input: accept established/related/untracked, drop invalid, accept ICMP, accept WireGuard ports, drop everything not from LAN. forward: fasttrack, accept established/related, drop invalid, drop new WAN connections that aren't port-forwards. nat: masquerade out WAN (if none exists). If the router already has other filter rules, the tool stops and lists them; set replace_existing=True to replace them (rules tagged mcp-wifi/mcp-wg are kept).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNorouter
add_natNo
dry_runNo
wan_interfaceNo
lan_interfacesNo
replace_existingNo
rollback_minutesNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

B3.4/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 does well: it discloses the abort-on-existing-rules behavior, the tag-based rule preservation, NAT masquerading, and the different treatment of forward vs input chains. It omits the safety semantics of dry_run and rollback_minutes, which matter for a mutation tool.

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?

The purpose leads and the rule groups are laid out as a structured, scannable list with no filler. It is longer than typical but every line conveys concrete configuration behavior rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the behavioral narrative is rich. The gap is parameters: with 0% schema coverage and no annotations, the description should clarify dry_run and rollback_minutes for a destructive firewall rewrite but does not.

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

Parameters2/5

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

Schema description coverage is 0% and seven parameters exist, yet the description only explains replace_existing. name, add_nat, dry_run, wan_interface, lan_interfaces, and rollback_minutes are left entirely undocumented, forcing the agent to guess at their meaning and defaults.

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?

States a specific verb+resource ('Apply a MikroTik-defconf-style IPv4 firewall') and enumerates the exact input/forward/nat rules, so the agent knows precisely what will be configured. It does not, however, contrast itself with nearby siblings like harden_services or audit_security, leaving the agent to infer the distinction.

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?

Provides a useful conditional: the tool stops and lists existing filter rules if any are present, and replace_existing=True overrides this while preserving mcp-wifi/mcp-wg rules. But it never states when to prefer this over siblings such as harden_services or audit_security, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.