Skip to main content
Glama
NetBox MCP Server

NetBox MCP Server

by mhajder

Netbox Find Rack Space

netbox_find_rack_space
Read-onlyIdempotent

Find racks with room for a device of a given height, then list valid bottom-up start positions while accounting for occupied and reserved units.

Instructions

Find racks with room for a device of a given height.

Counts devices on the chosen face (and full-depth devices on the other) and rack reservations as taken. Lists the bottom-up start positions where the device fits. Give at least one of site_id, location_id or rack_ids.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "u_height": "<u_height>"
    },
    "name": "netbox_find_rack_space"
  }
}

Input Schema

NameRequiredDescriptionDefault
faceNoRack face to mount on.front
site_idNoSearch this site.
rack_idsNoSearch these racks.
u_heightYesHeight of the device to place, in rack units.
max_racksNoRacks to check.
full_depthNoThe device is full depth, so the other face must be free too.
location_idNoSearch this location.

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv0.3.0

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds substantive behavior beyond that: occupancy is computed by counting devices on the chosen face plus full-depth devices on the opposite face, and reservations count as taken. It does not mention that inspection is bounded by max_racks or that results may be incomplete when many racks match.

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?

Four short sentences, zero filler, and the core purpose and returned value are front-loaded. The counting rule sits between purpose and the scoping constraint in a logical order.

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 7-parameter read tool with full annotations and an output schema, the description covers purpose, occupancy logic and the required scoping input. The one remaining gap is that it does not warn that only max_racks racks are checked, which matters for interpreting empty results.

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?

With 100% schema description coverage the baseline is 3, and the schema already documents each field individually. The description contributes the face-interaction rule (full_depth requires the other face to be free), which enriches understanding of the face/full_depth pair, so it edges slightly above baseline but not enough to warrant a 4 given the schema does most of the work.

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?

The opening sentence states a specific verb and resource ('Find racks with room for a device of a given height'), and the closing sentence clarifies the returned value ('bottom-up start positions where the device fits'). This makes it clearly distinct from generic siblings like netbox_get_objects or netbox_allocate_available, though no sibling is named explicitly.

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?

'Give at least one of site_id, location_id or rack_ids' is a genuine usage precondition that the schema does not enforce (only u_height is required in the schema), so it adds real routing value. It stops short of stating when to prefer this over netbox_get_available or netbox_allocate_available, which are the closest overlapping siblings.

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