Skip to main content
Glama

check_adr_tunnel

Check whether a vehicle may pass through a tunnel of a given ADR category ("A"–"E"). Provide hazmat and, when known, the load's ADR 8.6.4 tunnel restriction code (e.g. "B", "C5000D", "B/D", "none"). Applies the conservative worst-case reading: conditional clauses are assumed to apply, so a blocked answer may over-restrict but never under-restricts. No network access; answers instantly.

Input Schema

NameRequiredDescriptionDefault
hazmatYesWhether the vehicle carries dangerous goods at all. When false the ADR tunnel matrix does not apply and every tunnel is permitted.
tunnel_codeNoADR 8.6.4 tunnel restriction code of the load, e.g. "B", "C5000D", "B/D", or "(-)"/"none". Leave unset for a hazmat load of unknown code (conservatively treated as code B).
tunnel_categoryYesADR category of the tunnel to check: "A", "B", "C", "D" or "E".

Output Schema

NameRequiredDescriptionDefault
reasonNoWhy passage is forbidden (present only when blocked); cites the ADR 8.6.4 rule that applied.
decisionYesWhether passage is allowed or blocked.
explanationYesHuman-readable explanation of how the decision was reached, including the conservative worst-case reading.
forbidden_tunnel_categoriesYesADR tunnel categories this load is forbidden from under the worst-case reading (conditional clauses assumed to apply). Empty when unrestricted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / tunnel_code / description
      Previous value: -"ADR 8.6.4 tunnel restriction code of the load, e.g. \"B\", \"C5000D\",\n\"B/D\", or \"(—)\"/\"none\". Leave unset for a hazmat load of unknown\ncode (conservatively treated as code B)."New value: +"ADR 8.6.4 tunnel restriction code of the load, e.g. \"B\", \"C5000D\",\n\"B/D\", or \"(-)\"/\"none\". Leave unset for a hazmat load of unknown\ncode (conservatively treated as code B)."
  2. First observed

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does so well: it discloses the conservative worst-case reading (over-restrict, never under-restrict), that no network access is needed, and that it answers instantly. It omits only peripheral details like negation semantics of a blocked vs permitted result.

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?

Four tight sentences, front-loaded with the purpose, then inputs, then behavioral caveats. No wasted filler; slightly dense but appropriately sized.

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

Completeness5/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 not be explained, and the description covers inputs, edge cases (unknown code), and behavioral semantics thoroughly enough for a stateless, no-annotation check tool.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3. The description adds genuine value beyond the schema by giving example tunnel codes ("B", "C5000D", "B/D", "none") and the conservative default for an unknown code, clarifying real input expectations.

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?

States a specific verb (check) and resource (tunnel passage) with the ADR category range, and the hazmat/ADR framing clearly separates it from geometric siblings like check_clearance_on_route. An agent can identify the operation without opening the schema.

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?

It gives input guidance (provide hazmat, and the tunnel code when known), which implies usage, but never states when to reach for this tool versus alternatives such as check_clearance_on_route or route. Usage context is implied rather than spelled out.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources