Skip to main content
Glama

hcloud_firewall_apply_to_resources_action

Destructive

Apply a Hetzner Cloud firewall to multiple servers or label selectors, extending existing resource assignments in one action.

Instructions

Apply to Resources

Applies a Firewall to multiple resources.

Supported resources:

A Server can be applied to a maximum of 5 Firewalls. This limit applies to Servers applied via a matching Label Selector as well.

Updates to resources matching or no longer matching a Label Selector can take up to a few seconds to be processed.

A Firewall is applied to a resource once the related Action with command apply_firewall successfully finished.

Operation specific errors

Status

Code

Description

404

firewall_resource_not_found

The resource the Firewall should be applied to was not found

422

firewall_already_applied

Firewall is already applied to resource

422

incompatible_network_type

The network type of the resource is not supported by Firewalls

422

private_net_only_server

The Server the Firewall should be applied to has no public interface

Input Schema

NameRequiredDescriptionDefault
idYesID of the Firewall.
bodyYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A3.8/5.0
Behavior5/5

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

Goes well beyond the destructiveHint/openWorldHint annotations: it discloses the 5-firewall-per-server cap (including selector-matched ones), a few-second propagation delay for label-selector changes, and the async completion model (applied only once the apply_firewall Action succeeds). It also lists operation-specific failure codes such as firewall_already_applied and private_net_only_server, which an agent can act on.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The content is front-loaded and substantive (limits, timing, async, errors), but repeated inline anchor markup such as '[Firewall](#tag/firewalls)' appears a dozen times and dilutes readability. The error table is valuable but makes the block heavier than necessary for a two-parameter call.

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 mutation tool with no output schema, the definition covers the async action model, the resource constraints, and the failure modes an agent must handle. The remaining gap is the absence of any note that removal requires the sibling remove action, or how to verify the applied state afterwards.

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 50%, and the description only reinforces the resource-type side (servers with a public interface, label selectors) plus the 'extends' semantics of apply_to. It adds nothing about the required firewall `id` or the selector string format, so the schema still carries most of the burden.

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 and resource: applies a Firewall to multiple resources, and enumerates the supported resource kinds (servers, label selectors). The 'multiple resources' phrasing implicitly separates it from the single-server sibling hcloud_apply_firewall_to_server, but that sibling is never named.

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?

Supported resource types and the 'Extends existing resources' semantics are given, which implies when the tool is appropriate. However, there is no explicit routing guidance against the obvious alternative (hcloud_apply_firewall_to_server for a single server) or against hcloud_firewall_remove_from_resources_action, so the agent must infer the choice.

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

Deploy Server

Other Tools