rcs-mcp
Serwer MCP dla Rejestru Cen Nieruchomości z geoportal.gov.pl. Udostępnia Claude Desktop narzędzia do wyszukiwania obszarów w Polsce i sprawdzania rzeczywistych transakcji nieruchomościowych z aktów notarialnych.
Co udostępnia
znajdz_obszar(nazwa, poziom)- znajduje bbox dla województwa, powiatu, gminy, miasta albo wsi.wyszukaj_transakcje(...)- zwraca listę transakcji dla bboxa.statystyki_cen(...)- liczy min/max/avg/median ceny za m2 na próbie transakcji.
Typowy przepływ:
znajdz_obszar("Zakopane", "miasto")- Weź
bboxz wyniku. statystyki_cen(bbox=...)albowyszukaj_transakcje(bbox=...)
Obsługiwane typy nieruchomości:
lokalebudynkidzialki
Uruchomienie
Projekt działa przez Docker Compose. Lokalny venv nie jest potrzebny.
docker compose up -d
Przy zmianach w kodzie przebuduj obraz:
docker compose up -d --build
Zatrzymanie:
docker compose down
Cache granic administracyjnych jest trzymany w wolumenie Dockera rcs-mcp-cache, więc pierwsze wyszukanie danego poziomu może potrwać dłużej, ale kolejne uruchomienia korzystają z zapisanych danych.
Claude Desktop
Wpis w claude_desktop_config.json:
{
"mcpServers": {
"rcs-mcp": {
"command": "/usr/local/bin/docker",
"args": [
"compose",
"-f",
"/Volumes/wew/Git/rcs-mcp/docker-compose.yml",
"exec",
"-T",
"rcs-mcp",
"rcs-mcp"
]
}
}
}
Po zmianie konfiguracji zrestartuj Claude Desktop.
Źródła danych
- RCN:
https://mapy.geoportal.gov.pl/wss/service/rcn?language=pol - PRG, granice administracyjne:
https://mapy.geoportal.gov.pl/wss/service/PZGIK/PRG/WFS/AdministrativeBoundaries - PRNG, nazwy miejscowości:
https://mapy.geoportal.gov.pl/wss/service/PZGiK/PRNG/WFS/GeographicalNames
Geoportal zwraca dane jako WFS/GML. Serwer pobiera je przez httpx i parsuje lokalnie.
Ograniczenia
- Filtrowanie serwerowe
CQL_FILTERw usługach Geoportalu jest ignorowane, więc projekt filtruje dane po stronie klienta. - Realnie użyteczny filtr przestrzenny to
BBOX. - Pierwsze wyszukanie obszaru może pobrać większą warstwę PRG/PRNG i zbudować cache.
- Dane RCN bywają zaszumione, np. udziałami, garażami, komórkami lub błędnymi powierzchniami. Dla statystyk zwykle bardziej sensowna jest mediana niż średnia.
- Parametr
tylko_mieszkalne=Truedomyślnie odrzuca część rekordów niemieszkalnych dla lokali i budynków.
Struktura
rcs_mcp/server.py- definicje narzędzi MCP.rcs_mcp/wfs_client.py- pobieranie i parsowanie transakcji RCN.rcs_mcp/granice.py- wyszukiwanie obszarów i cache PRG/PRNG.Dockerfile- obraz aplikacji.docker-compose.yml- uruchomienie kontenera dla Claude Desktop.












