Skip to main content
Glama

Cenogram - Polish Real Estate Data

list_locations

Read-only

Resolve a place name to TERYT codes, or browse the TERYT hierarchy - the first step before search_transactions (pass the returned code as teryt=).

  • search (a name): looks it up across all levels (voivodeship, county, municipality, precinct); each match carries its TERYT code, parent unit and exact follow-up calls; exact and prefix matches come first under 'Best matches'. Rows flagged rcn_district also accept the name in search_transactions(location=) and compare_locations; RCN district names with no TERYT code are listed separately. RCN district matches show their transaction count and date range, with a warning when the label covers only part of a gmina.

  • parent (a code): browse children (none = the 16 voivodeships); parent wins when both are given. Returns administrative units, never streets: for parcels on a street pass the name to list_parcels_in_area as street=. Prefer teryt where a name is ambiguous ('Wałcz' is both a county and a municipality).

Input Schema

NameRequiredDescriptionDefault
parentNoTERYT parent code: 2-digit (voivodeship → counties), 4-digit (county → municipalities), 6-digit (municipality → precincts). Omit for all voivodeships.
searchNoPlace name, case- and diacritics-insensitive partial match (e.g. 'wejher' for Wejherowo); returns TERYT codes and any RCN district names. Ignored when parent is set.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / parent / description
      Previous value: -"TERYT parent code to browse children: 2-digit (voivodeship → counties), 4-digit (county → municipalities), 6-digit (municipality → precincts). Omit for all voivodeships."New value: +"TERYT parent code: 2-digit (voivodeship → counties), 4-digit (county → municipalities), 6-digit (municipality → precincts). Omit for all voivodeships."
    • changedInput schema / properties / search / description
      Previous value: -"Place name, case- and diacritics-insensitive partial match (e.g. 'wejher' for Wejherowo). Returns TERYT codes plus, where applicable, RCN district names. Ignored when parent is set."New value: +"Place name, case- and diacritics-insensitive partial match (e.g. 'wejher' for Wejherowo); returns TERYT codes and any RCN district names. Ignored when parent is set."
  2. Changed2 schema fields changed
    • changedInput schema / properties / parent / description
      Previous value: -"TERYT parent code to browse children. 2-digit (voivodeship → counties), 4-digit (county → municipalities), 6-digit (municipality → precincts). Omit for all voivodeships."New value: +"TERYT parent code to browse children: 2-digit (voivodeship → counties), 4-digit (county → municipalities), 6-digit (municipality → precincts). Omit for all voivodeships."
    • changedInput schema / properties / search / description
      Previous value: -"Look up a place by name (case-insensitive, diacritics-insensitive partial match, e.g. 'wejher' for Wejherowo). Returns TERYT codes plus, where applicable, RCN district names. Ignored when parent is set."New value: +"Place name, case- and diacritics-insensitive partial match (e.g. 'wejher' for Wejherowo). Returns TERYT codes plus, where applicable, RCN district names. Ignored when parent is set."
  3. Changed1 schema field changed
    • changedInput schema / properties / search / description
      Previous value: -"Filter locations by name (case-insensitive partial match, e.g. 'Krak' for Kraków districts). Ignored when parent is set."New value: +"Look up a place by name (case-insensitive, diacritics-insensitive partial match, e.g. 'wejher' for Wejherowo). Returns TERYT codes plus, where applicable, RCN district names. Ignored when parent is set."
  4. Changed3 schema fields changed
    • addedInput schema / properties / parent
      Added value: +{
      +  "description": "TERYT parent code to browse children. 2-digit (voivodeship → counties), 4-digit (county → municipalities), 6-digit (municipality → precincts). Omit for all voivodeships.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / search / description
      Previous value: -"Filter locations by name (case-insensitive partial match, e.g. 'Krak' for Kraków districts)"New value: +"Filter locations by name (case-insensitive partial match, e.g. 'Krak' for Kraków districts). Ignored when parent is set."
    • addedInput schema / properties / search / minLength
      Added value: +1
  5. Changed3 schema fields changed
    • removedInput schema / properties / parent
      Removed value: -{
      -  "description": "TERYT parent code to browse children. 2-digit (voivodeship → counties), 4-digit (county → municipalities), 6-digit (municipality → precincts). Omit for all voivodeships.",
      -  "minLength": 1,
      -  "type": "string"
      -}
    • changedInput schema / properties / search / description
      Previous value: -"Filter locations by name (case-insensitive partial match, e.g. 'Krak' for Kraków districts). Ignored when parent is set."New value: +"Filter locations by name (case-insensitive partial match, e.g. 'Krak' for Kraków districts)"
    • removedInput schema / properties / search / minLength
      Removed value: -1
  6. Changed3 schema fields changed
    • addedInput schema / properties / parent
      Added value: +{
      +  "description": "TERYT parent code to browse children. 2-digit (voivodeship → counties), 4-digit (county → municipalities), 6-digit (municipality → precincts). Omit for all voivodeships.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • changedInput schema / properties / search / description
      Previous value: -"Filter locations by name (case-insensitive partial match, e.g. 'Krak' for Kraków districts)"New value: +"Filter locations by name (case-insensitive partial match, e.g. 'Krak' for Kraków districts). Ignored when parent is set."
    • addedInput schema / properties / search / minLength
      Added value: +1
  7. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, destructiveHint=false, so the safety profile is covered; the description goes further by disclosing result shape (each match carries TERYT code, parent unit, follow-up calls), match ordering ('Best matches'), and the rcn_district special case with its transaction count, date range, and partial-gmina warning. That is behavior the agent could not infer from structured fields.

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?

Front-loaded with the one-line purpose, then two labeled mode bullets, then cross-cutting caveats — a structure that matches how an agent scans. The RCN-district sentences are dense and slightly over-packed, but each carries a distinct fact.

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?

No output schema exists, and the description compensates fully by describing what each mode returns, how matches are ordered, and what follow-up calls the codes enable. For a two-parameter lookup tool this leaves no material gap an agent would need to guess at.

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 would be 3; the description adds genuine meaning by explaining that search spans all hierarchy levels at once and that parent with no value yields all 16 voivodeships. Some of it overlaps the schema (it already says search is 'Ignored when parent is set'), hence not a 5.

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+resource ('Resolve a place name to TERYT codes, or browse the TERYT hierarchy') and immediately positions it relative to siblings by naming search_transactions as the downstream consumer. It also explicitly disclaims a wrong interpretation ('Returns administrative units, never streets'), which no sibling name alone would convey.

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?

Gives explicit mode selection ('search (a name)' vs 'parent (a code)'), a precedence rule ('parent wins when both are given'), and a routing alternative for a near-miss task ('for parcels on a street pass the name to list_parcels_in_area as street='). It even advises preferring teryt over ambiguous names with a concrete example ('Wałcz').

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