MCP tool: search
Znajdź działki według adresu, w pobliżu punktu lub na obszarze
Description (verbatim)
Wyszukaj według q/id/point, szerokości i długości geograficznej lub bbox do 4 km². Odpowiedź zawiera skróty informacji o działkach i kursor; każda strona kosztuje 1 kredyt. Filtry typowane obszaru i eksport są niedostępne.
Cost and binding
x-request-cost: 1 request per call.
REST binding: GET /v1/search.
Inputs
Dokładnie jeden z parametrów q, id, point (lat i lng razem liczą się jako point). Wszystkie punkty odczytu API i wszystkie narzędzia obsługują te trzy warianty.
| Field | Required | Schema / constraints | Description |
|---|---|---|---|
area_max_m2 | no | {"maximum": 1000000000000.0, "minimum": 0, "type": "number"} | not specified in the source contract |
area_min_m2 | no | {"maximum": 1000000000000.0, "minimum": 0, "type": "number"} | not specified in the source contract |
bbox | no | {"type": "string"} | not specified in the source contract |
buildings_present | no | {"type": "boolean"} | not specified in the source contract |
cursor | no | {"type": "string"} | not specified in the source contract |
frontage_min_m | no | {"maximum": 1000000000000.0, "minimum": 0, "type": "number"} | not specified in the source contract |
gunb_activity_min | no | {"maximum": 1000000000000.0, "minimum": 0, "type": "integer"} | not specified in the source contract |
id | no | {"maxLength": 100, "pattern": "^\\s*[0-9]{6}[._][0-9]\\.[0-9]{1,4}\\.[0-9A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u024F_./ -]{0,63}[0-9A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u024F_./-]\\s*$", "type": "string"} | not specified in the source contract |
land_use_class | no | {"enum": ["R", "Ł", "Ps", "Br", "B", "Ba", "Bi", "Bp", "Bz", "K", "Ls", "Lz", "Lzr", "N", "Wp", "Ws", "Wsr", "W", "dr", "Tk", "Ti", "Tr", "E"], "type": "string"} | not specified in the source contract |
lat | no | {"maximum": 55.0, "minimum": 49.0, "type": "number"} | not specified in the source contract |
limit | no | {"maximum": 1000, "minimum": 1, "type": "integer"} | not specified in the source contract |
lng | no | {"maximum": 24.5, "minimum": 14.0, "type": "number"} | not specified in the source contract |
pog_zone_class | no | {"enum": ["SW", "SJ", "SN", "SU", "SH", "SI", "SZ", "SC", "SG", "SO", "SR", "SK", "SP"], "type": "string"} | not specified in the source contract |
point | no | {"pattern": "^-?[0-9]{1,2}(\\.[0-9]+)?, ?-?[0-9]{1,3}(\\.[0-9]+)?$", "type": "string"} | not specified in the source contract |
public_road_max_m | no | {"maximum": 1000000000000.0, "minimum": 0, "type": "number"} | not specified in the source contract |
q | no | {"maxLength": 300, "minLength": 1, "type": "string"} | not specified in the source contract |
radius_m | no | {"maximum": 2000, "minimum": 0, "type": "integer"} | not specified in the source contract |
rcn_price_max_pln_m2 | no | {"maximum": 1000000000000.0, "minimum": 0, "type": "number"} | not specified in the source contract |
rcn_price_min_pln_m2 | no | {"maximum": 1000000000000.0, "minimum": 0, "type": "number"} | not specified in the source contract |
road_access | no | {"type": "boolean"} | not specified in the source contract |
shape_regularity_min | no | {"maximum": 1, "minimum": 0, "type": "number"} | not specified in the source contract |
teryt | no | {"pattern": "^(?:[0-9]{4}|[0-9]{6}[123])$", "type": "string"} | not specified in the source contract |
{
"inputSchema": {
"allOf": [
{
"additionalProperties": false,
"not": {
"anyOf": [
{
"required": [
"area"
]
},
{
"required": [
"parcel_ids"
]
},
{
"required": [
"job_id"
]
},
{
"required": [
"idempotency_key"
]
}
]
},
"oneOf": [
{
"required": [
"q"
]
},
{
"required": [
"id"
]
},
{
"required": [
"point"
]
},
{
"required": [
"lat",
"lng"
]
},
{
"required": [
"bbox"
]
},
{
"required": [
"teryt"
]
}
],
"properties": {
"area_max_m2": {
"maximum": 1000000000000.0,
"minimum": 0,
"type": "number"
},
"area_min_m2": {
"maximum": 1000000000000.0,
"minimum": 0,
"type": "number"
},
"bbox": {
"type": "string"
},
"buildings_present": {
"type": "boolean"
},
"cursor": {
"type": "string"
},
"frontage_min_m": {
"maximum": 1000000000000.0,
"minimum": 0,
"type": "number"
},
"gunb_activity_min": {
"maximum": 1000000000000.0,
"minimum": 0,
"type": "integer"
},
"id": {
"$ref": "#/$defs/ParcelIdInput"
},
"land_use_class": {
"enum": [
"R",
"Ł",
"Ps",
"Br",
"B",
"Ba",
"Bi",
"Bp",
"Bz",
"K",
"Ls",
"Lz",
"Lzr",
"N",
"Wp",
"Ws",
"Wsr",
"W",
"dr",
"Tk",
"Ti",
"Tr",
"E"
],
"type": "string"
},
"lat": {
"maximum": 55.0,
"minimum": 49.0,
"type": "number"
},
"limit": {
"maximum": 1000,
"minimum": 1,
"type": "integer"
},
"lng": {
"maximum": 24.5,
"minimum": 14.0,
"type": "number"
},
"pog_zone_class": {
"enum": [
"SW",
"SJ",
"SN",
"SU",
"SH",
"SI",
"SZ",
"SC",
"SG",
"SO",
"SR",
"SK",
"SP"
],
"type": "string"
},
"point": {
"pattern": "^-?[0-9]{1,2}(\\.[0-9]+)?, ?-?[0-9]{1,3}(\\.[0-9]+)?$",
"type": "string"
},
"public_road_max_m": {
"maximum": 1000000000000.0,
"minimum": 0,
"type": "number"
},
"q": {
"maxLength": 300,
"minLength": 1,
"type": "string"
},
"radius_m": {
"maximum": 2000,
"minimum": 0,
"type": "integer"
},
"rcn_price_max_pln_m2": {
"maximum": 1000000000000.0,
"minimum": 0,
"type": "number"
},
"rcn_price_min_pln_m2": {
"maximum": 1000000000000.0,
"minimum": 0,
"type": "number"
},
"road_access": {
"type": "boolean"
},
"shape_regularity_min": {
"maximum": 1,
"minimum": 0,
"type": "number"
},
"teryt": {
"pattern": "^(?:[0-9]{4}|[0-9]{6}[123])$",
"type": "string"
}
},
"type": "object"
}
],
"type": "object"
}
}
Structured results
Tools return structuredContent (JSON) using canonical definitions in envelope.json.
Compact shared local schemas. Bundle reachable $defs per tool before use; never fetch refs. Examples and detailed guidance: mcp-examples.md.
{
"allOf": [
{
"$ref": "#/$defs/Envelope"
}
],
"properties": {
"meta": {
"properties": {
"operation": {
"enum": [
"search"
]
}
}
}
},
"type": "object"
}
Shared catalog-local $defs are published once in MCP catalogue. See Envelope and the bound operation for responses.
Server instructions (verbatim)
Źródłowe informacje o polskich działkach ewidencyjnych. Przekazuj w q tekst wpisany przez użytkownika. Każde narzędzie samodzielnie rozpoznaje działkę, więc wcześniejsze wywołanie resolve nie jest potrzebne. Przy statusie ambiguous pokaż kandydatów albo ponów wywołanie z id wybranego kandydata; nigdy nie wybieraj samodzielnie bez wiedzy użytkownika. Każda odpowiedź dotycząca danych tematycznych zawiera coverage i note: covered oznacza obecność rekordu, covered_no_data oznacza brak rekordu w źródle obejmującym to miejsce, not_covered oznacza brak publikacji przez państwo lub brak danych w tym miejscu, a not_computed oznacza, że wyniku jeszcze nie obliczono. Cytując fakt, przytocz note, source.attribution i as_of. Nie określaj działki jako „bezpiecznej”: podaj, co wynika z każdego źródła i czego ono nie obejmuje. Nie pisz „brak planu” bez wskazania, czy chodzi o plan ogólny czy MPZP, jego statusu (draft, adopted, in_force, none; dla MPZP status może być null, gdy źródło go nie publikuje) i źródła. Jeżeli źródło wymienia strefę MPZP bez statusu prawnego, coverage wynosi covered, a status i effective_from mają wartość null; przytocz note i nie ustalaj statusu samodzielnie. Nie zwracamy numerów ksiąg wieczystych ani danych właścicieli. Pole billing pokazuje koszt wywołania; opłaty za odpowiedzi not_covered i błędy są zwracane. Każda odpowiedź v2 zawiera licencję, zakres i metodę. extracted oznacza metodę pozyskania, a nie stan coverage; wynik poniżej progu ma stan not_covered. Powierzchnia z area.source równym computed nie jest urzędową powierzchnią działki. Klucze API i połączenie OAuth korzystają z kredytów tego samego konta. Wyszukiwanie na podstawie ogłoszenia zwraca wyłącznie identyfikatory kandydatów i wymaga włączenia LANDFEED_LISTING_LOOKUP_ENABLED.
Annotations
{
"idempotentHint": true,
"openWorldHint": false,
"readOnlyHint": true
}
Coverage states
Cztery stany zakresu danych dla jednej kategorii w danym miejscu. covered: źródło obejmuje to miejsce i zawiera rekord; value zawiera ten rekord. covered_no_data: źródło obejmuje to miejsce, lecz nie zawiera rekordu; value ma określoną dla danej kategorii pustą wartość (false, 0, [], none), nigdy null; jest to potwierdzony brak rekordu, za który naliczana jest opłata. not_covered: źródło nie obejmuje miejsca albo państwo nie publikuje tych danych w postaci do odczytu maszynowego; value=null, agent nie może wyciągać wniosków, a opłata jest zwracana, gdy zapytanie dotyczy tych danych. not_computed: posiadamy źródło, lecz nie obliczyliśmy jeszcze wyniku dla tego miejsca, np. trwa ładowanie zbioru; value=null, opłata jest zwracana. Każdy stan zawiera uwagę napisaną prostym językiem.
States: covered | covered_no_data | not_covered | not_computed.
LayerAnswer required fields: layer, coverage, value, note, source, as_of, layer_version.
Billing rule
Koszt żądania. charged: liczba naliczonych wywołań po zwrotach. refunded: liczba wywołań naliczonych, a następnie zwróconych. rule: zastosowana reguła. Płatne są odpowiedzi, potwierdzone braki rekordów (covered_no_data) i niejednoznaczne listy kandydatów. Bezpłatne są błędne dane wejściowe (400), brak uwierzytelnienia (401), odpowiedzi bez zmiany danych (304) i operacje bezpłatne. Zwrot obejmuje pozostałe 4xx, każde 5xx, status not_covered oraz odpowiedź dotyczącą jednej kategorii ze stanem not_covered lub not_computed. W operacjach zbiorczych liczby dotyczą poszczególnych elementów.
Rule values: charged | free_operation | free_invalid_input | free_unauthorized | free_not_modified | refunded_client_error | refunded_server_error | refunded_not_covered | refunded_not_computed | batch_mixed.
curl example of the REST binding
curl --silent --show-error --request GET "https://mcp.agentdzialek.pl/v1/search" --get \
-H "X-Api-Key: ${LANDFEED_API_KEY}" \
--data-urlencode 'id=141803_2.0001.12/3'
MCP transport invocation: not specified in the source contract.