Skip to main content
Glama

List a building's units

list_building_units
Read-onlyIdempotent

Lists the units inside one building, by the buildingId an earlier result gave, as the building's record lists them: flats, shops, parking spaces and storage, each with its number, name or door, its floor as the record words it and as a kind and number, and its entrance, kind, use, area, rooms and cadastral number where the record states them. Use for questions such as which floor a flat is on ("which floor is apartment 275?"), which units are on a floor or behind an entrance, or the whole unit list. unit finds units by their number or name; without it the list comes a page at a time. listIsComplete is false when the record states a total of units or dwellings that differs from its list: a unit missing from the list may then still exist. A building with no units listed has unknown units, never none. The building's own facts are not part of this result. Cost: 1 credit to open a building the workspace has not opened in the last year; free once opened.

Input Schema

NameRequiredDescriptionDefault
unitNoThe number or name of one unit to find, e.g. "275", "12A" or "Parcare 3". Leave out to list every unit.
limitNoHow many units to return, 1 to 500. Default 200.
offsetNoHow many matched units to skip, to read the next page. Default 0.
buildingIdYesThe baseray building id (`buildingId` in an earlier result).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / buildingId / description
      Previous value: -"The baseray building id returned by find_buildings or search_buildings."New value: +"The baseray building id (`buildingId` in an earlier result)."
  2. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations declare readOnlyHint=true, idempotentHint=true, and openWorldHint=false, so the safety profile is covered. The description adds crucial behavioral context beyond annotations: pagination behavior, the meaning of `listIsComplete`, the 'unknown units, never none' semantics for empty buildings, and a cost model (1 credit to open a building not opened in the last year, free otherwise). This is rich disclosure that an agent could not infer from annotations alone.

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?

The description is front-loaded with the core purpose, then use cases, then pagination behavior, then completeness caveats, then cost. Every sentence carries useful information, but the length is substantial and some phrasing (e.g., 'as the record words it') could be tightened. Still, it is well-structured and not verbose for the amount of information conveyed.

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?

Given readOnly annotations and no output schema, the description covers all an agent needs: when to use, what is returned, pagination, completeness semantics, and cost. It explicitly states that the building's own facts are not part of the result, preventing scope confusion. Nothing essential is missing.

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 coverage is 100%, so the schema already documents each parameter thoroughly, including examples for `unit`. The description reiterates the `unit` parameter's function and pagination via `limit`/`offset`, but adds no new semantic detail beyond what the schema provides. Baseline 3 is appropriate when schema does the heavy lifting.

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 and resource ('Lists the units inside one building') and specifies the required identifier source ('by the buildingId an earlier result gave'), distinguishing it from sibling tools like get_building or find_buildings. It also enumerates what is returned, making the tool's scope unmistakable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly names use cases ('which floor is apartment 275?', which units are on a floor or behind an entrance) and contrasts with the `unit` parameter behavior ('`unit` finds units by their number or name; without it the list comes a page at a time'). It also warns when the list may be incomplete via `listIsComplete` and clarifies 'unknown units, never none' for empty buildings.

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