Skip to main content
Glama
lazyants
by lazyants

List Primary IPs

hetzner_list_primary_ips
Read-onlyIdempotent

List all primary IPs in a Hetzner Cloud project and filter them by name, label selector, or IP address. Supports pagination and sorting for large inventories.

Instructions

List all primary IPs in the project, with optional filtering by name, label, or IP address.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ipNoFilter by IP address
nameNoFilter by primary IP name
pageNoPage number
sortNoSort field, e.g. "id:asc" or "name:desc"; pass an array for multiple sort fields
per_pageNoResults per page (max 50)
label_selectorNoLabel filter, e.g. "env=prod,tier=web"

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv3.0.0
    • addedInput schema / properties / sort
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    }
      +  ],
      +  "description": "Sort field, e.g. \"id:asc\" or \"name:desc\"; pass an array for multiple sort fields"
      +}
  2. First observedv2.2.0

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds the project-scoped, filterable nature of the read, but says nothing about pagination behavior (page/per_page) or result ordering, which is where an agent would still need orientation.

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?

A single well-formed sentence that front-loads the core action and appends the filtering capability. It is efficient and free of filler, though it could be structured to separate the base behavior from the optional filters.

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?

With six optional parameters, no output schema, and full annotation coverage, the description is minimally adequate: it covers scope and filters but omits the pagination/sorting defaults that matter for a paged list endpoint. An agent could call it correctly but would learn pagination behavior only from the schema.

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 all six parameters including ip, name, label_selector, sort, page, and per_page are already documented in the schema. The description merely restates a subset of the filter fields (name, label, IP) without adding syntax or default-value information beyond the schema. Baseline 3 applies.

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 (list) and resource (primary IPs) and scopes it to the project, which cleanly separates it from hetzner_get_primary_ip and hetzner_list_primary_ip_actions. It stops short of naming those siblings explicitly, so an agent must infer the distinction from the list/get naming convention.

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?

The phrase 'with optional filtering by name, label, or IP address' implies the typical when-to-use scenario, but there is no explicit guidance on when to prefer this tool over hetzner_get_primary_ip or the related action-listing tool. No prerequisites or pagination-context guidance are given.

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