Skip to main content
Glama
MBratkowski

deweloperuch-mcp

by MBratkowski

Szukaj ofert mieszkań

search_offers
Read-only

Find primary-market apartment offers from Polish developers by city, price, area, price per m², district, status, or price drop. Filter and sort results to compare asking prices.

Instructions

Wyszukuje oferty mieszkań od deweloperów (tylko rynek pierwotny, ceny ofertowe, nie transakcyjne) w jednym mieście albo w całej Polsce (city=polska). Filtry: cena, metraż, cena za m², dzielnica, status (aktywne, archiwalne) i obniżka od pierwszej ceny; sortowanie po cenie, cenie za m², metrażu albo największej obniżce. Nie filtruje po liczbie pokoi ani piętrze (serwis nie ma takich danych) ani po deweloperze (jego inwestycje daje get_developer).

Zwraca jedną stronę: total (wszystkie pasujące), returned, page, per_page, pages_available, truncated, hint, list_url i items (offer_id, investment_slug, investment_url (strona inwestycji), name, cena w PLN, metraż w m², cena za m², status, inwestycja, deweloper z developer_slug, zmiany ceny w procentach; miasto tylko przy city=polska). Pozycje są skrócone; szczegóły oferty i historię ceny daje get_offer. list_url to ta lista na deweloperuch.pl z tymi samymi filtrami. Linki podawaj użytkownikowi.

Ograniczenia: można przejrzeć najwyżej 20 stron po per_page ofert. Gdy truncated=true, zawęź filtry zamiast przeglądać kolejne strony. Wszystkie oferty jednej inwestycji daje get_investment, ceny całego miasta get_market_statistics.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cityYescity_slug miasta z search_locations (np. warszawa, krakow) albo polska dla całego kraju.
pageNoNumer strony wyników, 1–20.
sortNoprice_asc: od najtańszych, price_desc: od najdroższych, price_per_m2_asc i price_per_m2_desc: po cenie za m², area_asc i area_desc: po metrażu, biggest_drop: najpierw największa obniżka od pierwszej ceny (w %); brak: domyślna kolejność serwisu (nie jest gwarantowana).
statusNoactive (domyślnie): oferty obecnie w cennikach; archived: tylko wycofane; all: aktywne i wycofane.active
area_maxNoNajwiększy metraż w m².
area_minNoNajmniejszy metraż w m².
districtNoNazwa dzielnicy dokładnie tak, jak podaje ją search_locations (kind=district, pole name), np. Mokotów; tylko z miastem tej dzielnicy, nie z polska.
per_pageNo10 albo 50. Pozycja to ok. 500 znaków wyniku (z linkiem), więc 50 daje ok. 25 tys.; zwykle wystarcza 10.
price_maxNoNajwyższa cena oferty w PLN.
price_minNoNajniższa cena oferty w PLN.
price_droppedNotrue: tylko oferty, których obecna cena jest niższa od pierwszej ceny (liczy się zmiana od pierwszej ceny, nie ostatnia zmiana).
price_per_m2_maxNoNajwyższa cena za m² w PLN.
price_per_m2_minNoNajniższa cena za m² w PLN.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
hintNo
pageYes
itemsYes
totalYes
list_urlNoTa lista ofert na deweloperuch.pl (te same filtry, sortowanie i strona): podaj ją użytkownikowi jako link.
per_pageYes
returnedYes
truncatedYestrue: pasujących ofert jest więcej, niż można przejrzeć (najwyżej 20 stron); zawęź filtry.
pages_availableYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.3

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only declare readOnlyHint and openWorldHint; the description goes far beyond by disclosing the 20-page cap, the truncated flag semantics with remediation ('zawęź filtry zamiast przeglądać kolejne strony'), the truncated-items behavior, and the list_url reuse. This is rich behavioral context an agent could not infer.

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?

Long but dense and clearly front-loaded: purpose, filters, return shape, then limits. Every paragraph carries distinct information (filter set, return fields, pagination cap, alternatives), though it is near the upper bound of useful length for a 13-parameter tool.

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 complex paginated search with an output schema, the description still explains the return envelope, the truncated hint, the 20-page limit, and the correct fallbacks to sibling tools. Nothing an agent needs to call it correctly or handle its edge cases is missing.

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 meaning beyond it: the offer-price vs transaction-price framing, the city=polska sentinel, the district-only-with-matching-city constraint, and the fact that rooms/floor are unsupported. These context notes are genuinely additive over the schema field descriptions.

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?

Starts with a specific verb+resource ('Wyszukuje oferty mieszkań od deweloperów') and immediately scopes it (tylko rynek pierwotny, ceny ofertowe, nie transakcyjne). It also names sibling tools for adjacent tasks, so an agent can distinguish it from get_offer, get_investment and get_market_statistics without opening a schema.

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 states what it does NOT filter by (liczba pokoi, piętro, deweloper) and routes each unsupported case to the correct alternative (get_developer, get_investment, get_market_statistics). It also gives the polska-vs-city selection rule and the truncated=true workflow, leaving nothing to inference.

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