Skip to main content
Glama
deweloperuch-mcp

deweloperuch-mcp

by MBratkowski

Budynek z transakcjami

get_building
Read-only

Returns RCN transaction records for a Polish residential building: address, coordinates, averages and sales with date, price, price per m² and market. Use for actual sold prices, not asking prices.

Instructions

Zwraca budynek z rejestru cen transakcyjnych (RCN): adres, współrzędne, średnie ceny podane przez serwis i lokale z transakcjami: datą, ceną, ceną za m², rynkiem, rodzajem i stronami. To ceny, za które lokale sprzedano, nie ceny ofertowe deweloperów. building_slug to ostatni człon adresu strony budynku z cenami transakcyjnymi na deweloperuch.pl, np. 23-marca-79c-sopot; gdy go nie znasz, poproś użytkownika o link do tej strony. building_url to ta strona: podaj ją jako link. Kolejność: lokale od tego z najnowszą transakcją, transakcje każdego lokalu od najstarszej. Transakcji o classification innym niż regular (udział, egzekucja, bonifikata…) nie uśredniaj ze zwykłymi: to nie zwykła sprzedaż po cenie rynkowej; liczy je non_regular_transactions.

Ograniczenia: tylko budynki z mieszkaniami, nie domy. Zwraca najwyżej limit lokali (domyślnie 10); truncated i units_omitted mówią, czy i ile pominięto; units_total i transactions_total liczą cały budynek. Najnowsze miesiące bywają niepełne (rejestr spływa z opóźnieniem). include_trend=true dodaje średnią cenę za m² transakcji w okolicy budynku (promień radius_km) w ostatnich 12 kwartałach; to jedno zapytanie do serwisu więcej.

Input Schema

NameRequiredDescriptionDefault
limitNoNajwięcej lokali w wyniku (tych z najnowszymi transakcjami), domyślnie 10, najwyżej 50; 0 = tylko podsumowanie budynku. Ile pominięto, mówi units_omitted. Wynik ma ok. 200 znaków na transakcję; lokal może mieć kilka transakcji, więc zwykle wystarcza domyślny limit.
building_slugYesSlug budynku, np. 23-marca-79c-sopot, ze strony budynku albo z comparables w estimate_property_value.
include_trendNotrue: dołącz średnią cenę za m² transakcji w okolicy budynku w ostatnich 12 kwartałach (jedno zapytanie więcej).

Output Schema

NameRequiredDescriptionDefault
latNoWspółrzędne budynku (WGS84).
lngNoWspółrzędne budynku (WGS84).
cityYesMiasto budynku.
hintNoCo zrobić dalej albo czego brakuje w wyniku, np. brak trendu w okolicy budynku.
nameNoAdres budynku wg rejestru cen; brak pola: rejestr nie podaje adresu (miejscowość w city).
unitsYesLokale od tego z najnowszą transakcją.
streetNoUlica, tylko gdy inna niż name.
avg_priceNoŚrednia cena transakcyjna lokalu w PLN, podana przez serwis.
city_slugYescity_slug jak w search_locations.
truncatedYestrue: lista units jest niepełna (units_omitted > 0).
avg_area_m2NoŚrednia powierzchnia lokalu w m², podana przez serwis.
units_totalYesWszystkie lokale budynku w rejestrze cen.
building_urlNoStrona budynku z cenami transakcyjnymi na deweloperuch.pl: podaj ją użytkownikowi jako link.
building_slugYesIdentyfikator do ponownego get_building.
units_omittedYesLokali pominiętych przez limit.
units_returnedYesLokali na liście units.
avg_price_per_m2NoŚrednia cena za m² w PLN, podana przez serwis.
transactions_totalYesWszystkie transakcje lokali budynku.
neighbourhood_trendNoŚrednia cena za m² transakcji w okolicy budynku w kolejnych kwartałach; tylko przy include_trend=true.
last_transaction_dateNoData najnowszej transakcji w budynku.
first_transaction_dateNoData najstarszej transakcji w budynku.
non_regular_transactionsNoTransakcje z classification innym niż regular w całym budynku: liczba wg rodzaju (słowa jak w classification), np. {"share": 1}; brak pola: brak takich transakcji. To nie zwykła sprzedaż całego lokalu po cenie rynkowej: nie uśredniaj ich ze zwykłymi. Średnie avg_* serwisu prawdopodobnie ich nie obejmują (sprawdzone w jednym budynku).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changedv0.2.0
    • changedOutput schema / $defs / NeighbourhoodTrendResult / properties / total / description
      Previous value: -"Wszystkie kwartały, które ma serwis."New value: +"Wszystkie kwartały, które ma serwis (0: brak trendu)."
    • addedOutput schema / properties / hint
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Co zrobić dalej albo czego brakuje w wyniku, np. brak trendu w okolicy budynku.",
      +  "title": "Hint"
      +}
    • addedOutput schema / properties / name / anyOf
      Added value: +[
      +  {
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • addedOutput schema / properties / name / default
      Added value: +null
    • changedOutput schema / properties / name / description
      Previous value: -"Adres budynku wg rejestru cen."New value: +"Adres budynku wg rejestru cen; brak pola: rejestr nie podaje adresu (miejscowość w city)."
    • removedOutput schema / properties / name / type
      Removed value: -"string"
    • addedOutput schema / properties / non_regular_transactions
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {
      +        "type": "integer"
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "description": "Transakcje z classification innym niż regular w całym budynku: liczba wg rodzaju (słowa jak w classification), np. {\"share\": 1}; brak pola: brak takich transakcji. To nie zwykła sprzedaż całego lokalu po cenie rynkowej: nie uśredniaj ich ze zwykłymi. Średnie avg_* serwisu prawdopodobnie ich nie obejmują (sprawdzone w jednym budynku).",
      +  "title": "Non Regular Transactions"
      +}
    • changedOutput schema / required
      Previous value: -[
      -  "building_slug",
      -  "name",
      -  "city",
      -  "city_slug",
      -  "units_total",
      -  "transactions_total",
      -  "units",
      -  "units_returned",
      -  "units_omitted",
      -  "truncated"
      -]New value: +[
      +  "building_slug",
      +  "city",
      +  "city_slug",
      +  "units_total",
      +  "transactions_total",
      +  "units",
      +  "units_returned",
      +  "units_omitted",
      +  "truncated"
      +]
  2. First observedv0.1.3

TDQS

A4.6/5.0
Behavior5/5

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

Beyond the readOnly/openWorld annotations, it discloses ordering rules (units by newest transaction, each unit's transactions oldest-first), how non-regular transaction classifications are excluded from averaging and counted separately, truncation semantics via truncated/units_omitted/units_total, incomplete recent registry months, and the extra backend call cost of include_trend. This is exactly the behavioral context annotations cannot carry.

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?

It is front-loaded with the purpose, then slug/URL, ordering, caveats, and limits in a logical sequence. It is dense and long, and the limit/truncation rules are partly duplicated in the schema, but nearly every sentence carries information an agent needs.

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 tool with an output schema, three parameters, and full schema coverage, the description covers everything an agent needs: what is returned, ordering, exclusion of non-market transactions, truncation flags, data-lag caveat, and the cost of the optional trend query.

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 is 3, but the description adds real meaning: building_slug is defined as the last URL segment of the building page with an example and a fallback instruction, and include_trend is explained as a nearby-area average over the last 12 quarters within radius_km. The limit behavior is also restated for truncation context.

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?

The description states a specific verb and resource ("Zwraca budynek z rejestru cen transakcyjnych (RCN)") and enumerates the returned components: address, coordinates, average prices, and units with transactions. It explicitly differentiates itself from sibling offer tools with "To ceny, za które lokale sprzedano, nie ceny ofertowe deweloperów."

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?

It gives concrete selection context: use only for apartment buildings, not houses ("tylko budynki z mieszkaniami, nie domy"), and instructs the agent to ask the user for the page link when building_slug is unknown. It does not, however, name a sibling alternative for the case where the building is unknown but a location search could help.

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