Skip to main content
Glama

list_firewall_rules

Read-onlyIdempotent

List firewall filter rules in evaluation order, with stable IDs for later changes. Optionally filter by chain and include dynamic rules.

Instructions

List firewall filter rules in evaluation order.

Each rule carries both an id and a position. Use id for any later change: position is only where the rule currently sits, and it shifts as soon as anything is added, removed or moved.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
chainNoRestrict to one chain: 'input', 'forward', 'output', or a custom chain name.
verboseNoReturn every field including packet and byte counters.
include_dynamicNoInclude rules RouterOS generates itself, which cannot be edited.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so the safety profile is covered structurally. The description adds meaningful behavioral context beyond that: rules appear in evaluation order, and positions shift with mutations. This is useful for an agent planning subsequent add/remove/move calls. No contradiction with annotations.

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?

Two short paragraphs with zero fluff. The first sentence delivers the primary purpose, and the second adds a crucial operational caveat about id vs position. Everything earns its place, and the structure is easy to scan.

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?

For a read-only list tool with a full output schema and strong annotations, the description covers the key gotcha an agent needs to know (id is stable, position is not). It doesn't explicitly mention return ordering beyond evaluation order, but the output schema covers field details. The description is sufficient for correct invocation and downstream use.

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%, so chain, verbose, and include_dynamic are already well-documented in the schema. The description does not add parameter-specific semantics beyond what the schema provides; the id/position note concerns output, not parameters. A baseline 3 is appropriate.

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?

The description states a specific verb and resource ('List firewall filter rules') and qualifies with 'evaluation order', which adds precision and distinguishes it from list_nat_rules and get_firewall_rule. The phrase 'filter rules' also separates firewall filtering from NAT rules, making the tool's scope unambiguous without opening schemas.

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 description gives clear operational context: rules are listed in evaluation order, and the id/position distinction is explicitly tied to future modifications. It doesn't name alternatives like get_firewall_rule for single-rule lookups, but the list-vs-get distinction is implicit. There are no exclusions or when-not-to-use instructions, so it just misses the explicit-alternatives bar.

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