Skip to main content
Glama
deweloperuch-mcp

deweloperuch-mcp

by MBratkowski

Statystyki GUS, NBP i Eurostatu

get_government_statistics
Read-only

Retrieve official GUS, NBP and Eurostat time-series statistics for Poland or selected cities, including housing completions, demographics, unemployment, wages and NBP prices.

Instructions

Zwraca oficjalne statystyki GUS, NBP i Eurostatu (demografia Polski) jako szeregi czasowe dla Polski, agregatu miast albo miasta na prawach powiatu: mieszkania oddane i rozpoczęte, średnią powierzchnię mieszkań deweloperskich, ceny m² wg NBP, bezrobocie, wynagrodzenia, demografię i ludność (parametr dataset). Ofert mieszkań tu nie ma (search_offers), ceny z rejestru RCN daje get_transaction_statistics, a porównanie wielu miast w jednym okresie rank_locations z indicator.

Zwraca periods (od najstarszego) i series (series_id, label, unit, values wyrównane z periods; null = brak danych) oraz frequency, source, total, returned, truncated, available_from, note i stats_url (sekcja strony na deweloperuch.pl: podaj ją użytkownikowi jako link).

Ograniczenia: domyślnie ostatnie 12 okresów; truncated=true: są starsze (zwiększ periods, najwyżej 120). nbp_prices: tylko 3 agregaty i część dużych miast (np. warszawa, krakow), nie polska. Nie każdy zestaw jest dostępny dla każdej lokalizacji (błąd wskaże, co podać); dane GUS i NBP są publikowane z opóźnieniem: ostatni okres bywa sprzed kilku tygodni lub miesięcy, dla demografii Polski nawet roku. Przeczytaj note: ostatni okres bywa niepełny.

Input Schema

NameRequiredDescriptionDefault
datasetYesdwellings_quarterly: mieszkania oddane do użytkowania i rozpoczęte (razem, wg form budownictwa, na wynajem), kwartalnie; dwellings_monthly: to samo miesięcznie; average_area: średnia powierzchnia mieszkania oddanego przez deweloperów (m², rocznie); demography: urodzenia żywe, zgony, przyrost naturalny (dla Polski miesięcznie wg Eurostatu, dla miast rocznie wg GUS); population: ludność, kobiety i mężczyźni (rocznie); unemployment: stopa bezrobocia rejestrowanego (%, miesięcznie); wages: przeciętne miesięczne wynagrodzenie brutto w PLN (dla Polski miesięcznie, dla miast rocznie, czasem z relacją do średniej krajowej); nbp_prices: średnie ceny m² wg NBP, rynek pierwotny i wtórny, ofertowe i transakcyjne (PLN/m², kwartalnie). Częstotliwość zwraca pole frequency. Agregat 7-miast nie ma wages ani unemployment (są dla miast i polska).
periodsNoIle ostatnich okresów zwrócić (lat, kwartałów albo miesięcy), 1–120, domyślnie 12. Najszerszy zestaw (mieszkania, 15 szeregów) przy 120 miesiącach to ok. 10 tys. znaków. Dla trendów bierz dane roczne/kwartalne; miesięczne 120 okresów tylko, gdy użytkownik o to prosi.
locationYespolska (cała Polska), agregat 7-miast, 10-miast albo 6-miast-bez-warszawy, albo jedno z 66 miast na prawach powiatu: nazwa małymi literami bez polskich znaków, z myślnikami zamiast spacji, np. warszawa, krakow, lodz, bielsko-biala, zielona-gora, jastrzebie-zdroj. Dane są tylko dla 66 miast na prawach powiatu, a nie dla dzielnic i mniejszych miejscowości.

Output Schema

NameRequiredDescriptionDefault
hintNoCo zrobić dalej, gdy wynik jest obcięty.
noteNoUwaga do danych, np. ostatni kwartał obejmuje tylko część miesięcy.
titleYes
totalYesWszystkie okresy, które serwis ma dla tego zestawu.
seriesYes
sourceYesŹródło danych: GUS, NBP albo Eurostat.
datasetYes
periodsYesOkresy od najstarszego: 2025 (rok), 2025-Q3 (kwartał) albo 2025-08 (miesiąc).
returnedYesOkresy w wyniku: ostatnie z nich.
frequencyYesyear (lata), quarter (kwartały) albo month (miesiące).
stats_urlNoLink do sekcji z tymi danymi w serwisie: podaj go użytkownikowi.
truncatedYestrue: są starsze okresy niż pokazane; co dalej, mówi hint.
location_nameYes
location_slugYes
available_fromYesNajstarszy okres, jaki ma serwis.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changedv0.2.0
    • changedInput schema / properties / dataset / description
      Previous value: -"dwellings_quarterly: mieszkania oddane do użytkowania i rozpoczęte (razem, wg form budownictwa, na wynajem), kwartalnie; dwellings_monthly: to samo miesięcznie; average_area: średnia powierzchnia mieszkania oddanego przez deweloperów (m², rocznie); demography: urodzenia żywe, zgony, przyrost naturalny (dla Polski miesięcznie, dla miast rocznie); population: ludność, kobiety i mężczyźni (rocznie); unemployment: stopa bezrobocia rejestrowanego (%, miesięcznie); wages: przeciętne miesięczne wynagrodzenie brutto w PLN (dla Polski miesięcznie, dla miast rocznie, czasem z relacją do średniej krajowej); nbp_prices: średnie ceny m² wg NBP, rynek pierwotny i wtórny, ofertowe i transakcyjne (PLN/m², kwartalnie). Częstotliwość zwraca pole frequency."New value: +"dwellings_quarterly: mieszkania oddane do użytkowania i rozpoczęte (razem, wg form budownictwa, na wynajem), kwartalnie; dwellings_monthly: to samo miesięcznie; average_area: średnia powierzchnia mieszkania oddanego przez deweloperów (m², rocznie); demography: urodzenia żywe, zgony, przyrost naturalny (dla Polski miesięcznie wg Eurostatu, dla miast rocznie wg GUS); population: ludność, kobiety i mężczyźni (rocznie); unemployment: stopa bezrobocia rejestrowanego (%, miesięcznie); wages: przeciętne miesięczne wynagrodzenie brutto w PLN (dla Polski miesięcznie, dla miast rocznie, czasem z relacją do średniej krajowej); nbp_prices: średnie ceny m² wg NBP, rynek pierwotny i wtórny, ofertowe i transakcyjne (PLN/m², kwartalnie). Częstotliwość zwraca pole frequency. Agregat 7-miast nie ma wages ani unemployment (są dla miast i polska)."
    • changedInput schema / properties / location / description
      Previous value: -"polska (cała Polska), agregat 7-miast, 10-miast albo 6-miast-bez-warszawy, albo jedno z 66 miast na prawach powiatu: nazwa małymi literami bez polskich znaków, z myślnikami zamiast spacji, np. warszawa, krakow, lodz, bielsko-biala, zielona-gora; Jastrzębie-Zdrój to jastrzebie. Dane są tylko dla 66 miast na prawach powiatu, a nie dla dzielnic i mniejszych miejscowości."New value: +"polska (cała Polska), agregat 7-miast, 10-miast albo 6-miast-bez-warszawy, albo jedno z 66 miast na prawach powiatu: nazwa małymi literami bez polskich znaków, z myślnikami zamiast spacji, np. warszawa, krakow, lodz, bielsko-biala, zielona-gora, jastrzebie-zdroj. Dane są tylko dla 66 miast na prawach powiatu, a nie dla dzielnic i mniejszych miejscowości."
  2. First observedv0.1.3

TDQS

A4.8/5.0
Behavior5/5

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

Beyond readOnlyHint/openWorldHint it discloses concrete behavior: default of 12 periods, truncated=true signaling older data available with periods up to 120, a size estimate (~10k characters), and publication lag (last period may be weeks/months old, up to a year for Polish demography) plus an incomplete-last-period caveat via 'note'. It also flags the nbp_prices geographic limitation and that errors indicate what to supply — none of which the annotations convey.

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?

Three tight paragraphs with clear roles: what it returns, what it excludes, and limitations — front-loaded with the resource statement. It loses a point because the field list ('periods, series (series_id, label, unit, values...), frequency, source, total, returned, truncated, available_from, note, stats_url') restates an output schema that already exists.

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 read-only statistics tool with 3 parameters, an enum, and an output schema, an agent has everything needed: dataset semantics, location format rules (lowercase, no diacritics, hyphens, 66 powiat cities only), period limits, data lag expectations, and the instruction to surface stats_url as a link. Nothing material is left to inference.

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; the description adds cross-parameter meaning the schema only partly captures, namely that dataset availability varies by location and that an error will name the correct value. The dataset and periods semantics (enum meanings, 1–120 range, size tradeoff) largely duplicate the schema's own parameter descriptions, so it stops short of 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?

The first sentence names a specific verb+resource ('Zwraca oficjalne statystyki GUS, NBP i Eurostatu') and enumerates the exact content (mieszkania oddane i rozpoczęte, ceny m² wg NBP, bezrobocie, wynagrodzenia, demografia), plus the three location granularities. It explicitly rules out sibling concerns: offers → search_offers, RCN transaction prices → get_transaction_statistics, multi-city comparison → rank_locations.

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?

Explicit when-not guidance with named alternatives and the condition that selects each one ('Ofert mieszkań tu nie ma (search_offers)... ceny z rejestru RCN daje get_transaction_statistics... porównanie wielu miast... rank_locations'). It also states dataset-specific usage limits (nbp_prices only 3 aggregates and some large cities, not 'polska') and warns that not every dataset exists for every location, with an error message as the fallback.

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