Skip to main content
Glama

Search buildings in an area

search_buildings
Read-onlyIdempotent

Finds, counts and ranks buildings across an area: a place name, a bounding box (at most about a county) or a circle around a point (near, up to 50 km). Use for questions about many buildings, such as lead generation, underwriting, market sizing or prospect lists: "industrial buildings over 2,000 m² with a registered business", "apartment blocks without solar panels", "houses with a registered solar installation and no battery", "buildings in the 1-in-100-year flood zone", "panel blocks built before 1990", "buildings within 2 km of a point with at least 5 registered businesses", "largest roofs for solar in a city". It does not look up a single address. Filters: category or granular building type, size (footprint, height, volume, floors, dwellings), the year built (as a building register states it), wall-panel construction, flood zone, seismic risk class, solar potential, existing panels (seen in the roof photo, or a solar installation registered at the address, with its power and battery storage), and the businesses registered at the address (how many, name, size, turnover). Returns the total that match and one ranked page of buildings; offset pages further. Searching is free. A building the workspace has already opened comes in full (locked false): address, postcode, use, sizes with their basis (measured, stated or estimated), construction year, dwellings, natural hazards, solar potential, existing panels (the settled answer, the photo verdict and what a register states of an installation at the address) and the registered businesses. Every other row is a free preview (locked true): street without its number, locality, use, each size as the range it lies in (atLeast, below), natural hazards, existing panels and how many businesses are registered there. Opening a previewed building in full costs 1 credit, once a year per building.

Input Schema

NameRequiredDescriptionDefault
nearNoKeep buildings whose centre lies within radiusMeters (1 to 50,000) of this WGS84 point. Give it instead of place or boundingBox to search just the circle; given with either, the circle must lie wholly inside that area.
limitNoBuildings per page, 1 to 25. Default 10.
placeNoThe area to search, as a place name: a county, city, town or district, e.g. "Ilfov", "Cluj-Napoca", "Praha 5".
offsetNoBuildings to skip, for the next page. At most 500.
sortByNoRanking, largest first: volume, outline area, height, the largest stated employee count of a registered business, or the largest latest turnover of a registered business (in turnoverCurrency). Default volume.
minFloorsNoMinimum number of floors, where floors are on record.
categoriesNoKeep only these building categories.
floodZonesNoKeep buildings in any of these flood zones of an official flood hazard map, named by the return period of their flood ("100_year_climate_change" is the 1-in-100-year flood of the climate the map projects). A building whose zone is unknown matches none, so an empty result is not evidence of low flood risk.
boundingBoxNoThe area to search as WGS84 bounds, instead of place.
maxYearBuiltNoKeep buildings standing by this year, as a national building register dates them: completed in or before it (constructionYear), or dated by a census period that ended by then (completedByYear). A building with no year on record never matches, so an empty result says nothing about age.
minDwellingsNoMinimum number of dwellings, where known.
minYearBuiltNoKeep buildings completed in or after this year, as a national building register states it (a row's constructionYear). A building the register dates only by a census period (completedByYear) never matches, nor does one with no year on record, so an empty result says nothing about age.
buildingTypesNoKeep buildings of any of these granular types, combined with categories by OR, e.g. "office", "warehouse", "school", "apartments", "garage".
solarPresenceNoKeep buildings whose settled solar answer (a row's existingSolarPanels.presence) is any of these. Use ["registered", "detected"] for buildings that have solar panels and ["none_seen"] for roofs a photo shows empty with no installation registered. "registered_at_address" is an installation registered at an address the building shares with others, not a yes for it; "unknown" is neither a register entry nor a usable photo.
minHeightMetersNoMinimum height in metres.
registeredSolarNotrue keeps buildings at whose address an official register of solar installations states one (a row's existingSolarPanels.registered). false keeps buildings no register states one for, which says nothing of their roofs: panels may be off the grid, or registered under an address written otherwise, so never report those buildings as being without solar. Leave it out to keep both.
turnoverCurrencyNoThe currency of the turnover bounds and of the turnover ranking: RON for Romanian businesses, CZK for Czech ones. Required with either.
seismicRiskClassesNoKeep buildings an official list of technically assessed buildings gives any of these seismic risk classes: RsI (the highest risk) to RsIV, the older urgency classes U1 to U3, or "consolidated". A building on no list matches none, which says nothing of its risk.
existingSolarPanelsNoKeep buildings whose roof photo alone shows this verdict (existingSolarPanels.verdict), whatever a register states: "none_seen" keeps a building with a registered installation its photo does not show. Prefer solarPresence for whether a building has panels. Buildings never checked are excluded.
minSolarCapacityKwpNoMinimum rooftop solar capacity in kWp.
onlyMeasuredVolumesNoKeep only buildings whose volume comes from a measurement of the building itself (a survey, or a surface model measured over its roof), not from an assumed height.
excludeSolarPresenceNoLeave out buildings whose settled solar answer is any of these, e.g. ["registered", "detected"] for buildings not known to have panels (which keeps the unchecked ones). Never an answer solarPresence keeps.
maxVolumeCubicMetersNoMaximum volume in m³, where known.
minRegisteredSolarKwNoKeep buildings with at least this much installed solar power, in kW, registered at the address, counting the installations that state theirs (so a row can match while its installedPowerKilowatts, given only for a whole sum, is null). A building with no registered installation, or none stating its power, never matches. Not with registeredSolar false.
minVolumeCubicMetersNoMinimum volume in m³, where known.
hasRegisteredBusinessNoKeep only buildings with at least one active business registered at the address.
registeredSolarStorageNoAmong buildings with a registered solar installation: true keeps those the register states store energy (a battery), false those it states store none. A building whose register does not say matches neither. Not with registeredSolar false.
minRegisteredBusinessesNoKeep only buildings with at least this many active businesses registered at the address (a row's registeredBusinesses.count).
onlyWallPanelConstructionNoKeep only buildings a national building register states are built of wall panels: prefabricated concrete panel construction, as in panel apartment blocks. This is read for Czech buildings only, so no Romanian building matches; a building whose construction is not on record never matches, so an empty result says nothing about how a building is built.
minFootprintAreaSquareMetersNoMinimum outline area in m²: the ground footprint where the outline is drawn at the walls, larger where it is drawn at the roof's edge.
maxRegisteredBusinessTurnoverNoKeep buildings whose registered businesses' latest turnover on record is at most this, in turnoverCurrency.
minRegisteredBusinessTurnoverNoKeep buildings with a registered business whose latest turnover on record is at least this, in turnoverCurrency. A business with no turnover on record never matches.
minRegisteredBusinessEmployeesNoKeep buildings with a registered business stating at least this many employees.
registeredBusinessNameContainsNoKeep buildings where a registered business's name contains this text.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / minFootprintAreaSquareMeters / description
      Previous value: -"Minimum ground footprint in m²."New value: +"Minimum outline area in m²: the ground footprint where the outline is drawn at the walls, larger where it is drawn at the roof's edge."
    • changedInput schema / properties / sortBy / description
      Previous value: -"Ranking, largest first: volume, ground footprint, height, the largest stated employee count of a registered business, or the largest latest turnover of a registered business (in turnoverCurrency). Default volume."New value: +"Ranking, largest first: volume, outline area, height, the largest stated employee count of a registered business, or the largest latest turnover of a registered business (in turnoverCurrency). Default volume."
  2. Changed1 schema field changed
    • changedInput schema / properties / floodZones / items / enum
      Previous value: -[
      -  "5_year",
      -  "10_year",
      -  "20_year",
      -  "100_year",
      -  "100_year_climate_change",
      -  "500_year",
      -  "1000_year"
      -]New value: +[
      +  "5_year",
      +  "10_year",
      +  "20_year",
      +  "50_year",
      +  "100_year",
      +  "100_year_climate_change",
      +  "500_year",
      +  "1000_year",
      +  "10000_year"
      +]
  3. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations only cover read-only/idempotent/closed-world, but the description adds the economics and access model that matter operationally: searching is free, every non-opened row is a locked preview with masked street number and ranged sizes, and opening one costs 1 credit once per year per building. It also spells out the full/unlocked payload versus the preview payload, which no annotation conveys.

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?

Purpose and area scoping are front-loaded, then usage, then filters, then return shape and cost — a sensible order. The seven-example list is long and partly decorative, and the returns paragraph repeats filter vocabulary, but every other sentence carries real decision-relevant content.

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?

For a 34-parameter, no-output-schema tool this is unusually complete: it explains the total-plus-one-page return, offset paging, the locked/unlocked row distinction, and which fields appear in each case. An agent can plan a search, page it, and anticipate cost without any further documentation.

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% across 34 parameters, so the baseline is 3, but the description adds orientation value by grouping the filter families (category/type, size, year built, wall panels, flood zone, seismic, solar, businesses) and restating the area-option constraint that bbox should be at most county-sized and circles up to 50 km. It adds context rather than syntax, so it does not exceed the schema.

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?

Opens with a precise verb+resource+scope: 'Finds, counts and ranks buildings across an area', and immediately bounds the area forms (place name, county-sized bbox, 50 km circle). It explicitly rules out the neighbouring case with 'It does not look up a single address', which separates it from get_building/find_buildings without the agent opening any schema.

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?

Gives concrete when-to-use contexts (lead generation, underwriting, market sizing, prospect lists) backed by seven worked example queries, plus one explicit exclusion (single-address lookup). It stops short of naming alternatives — find_buildings, get_building, search_places or open_buildings are never mentioned, so the agent must infer the routing itself.

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