Rcs Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Rcs Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
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.
znajdz_obszar(nazwa, poziom) - znajduje bbox dla województwa, powiatu, gminy, miasta albo wsi.wyszukaj_transakcje(...) - zwraca listę transakcji dla bboxa.statystyki_cen(...) - liczy medianę, średnią, kwartyle i zakres ceny za m2 na próbie transakcji, plus medianę w rozbiciu na lata.Typowy przepływ:
znajdz_obszar("Zakopane", "miasto")bbox z wyniku.statystyki_cen(bbox=...) albo wyszukaj_transakcje(bbox=...)Surowe rekordy RCN dają bardzo mylące ceny za m2 - te same dane potrafią pokazać i 65 zl/m2, i 71 tys. zl/m2 w jednym mieście. Dlatego domyślnie:
tran_cena_brutto to cena całego aktu, który często obejmuje kilka lokali (16% rekordów w próbce z Sopotu) - dzielona przez powierzchnię jednego lokalu zawyżała cenę nawet dwukrotnie.nier_pow_gruntu (grunt pod całym budynkiem) działa już tylko dla działek.min/max to krańce oczyszczonej próbki. Liczbę odrzuconych widać w odrzucone_odstajace.Każdy z tych filtrów można wyłączyć parametrem, żeby zobaczyć surowe dane.
Osobna sprawa to czas: RCN nie filtruje po dacie po stronie serwera, więc próbka potrafi objąć 20+ lat i wtedy jedna mediana miesza epoki cenowe (dla Łodzi bez filtra: 3,7 tys. zl/m2, a dla samego 2025-2026: 8,3 tys.). Dlatego wynik zawsze zawiera zakres_dat i mediana_wg_roku, a przy szerokiej próbce - ostrzeżenie. Do wyceny podawaj data_od.
Obsługiwane typy nieruchomości:
lokalebudynkidzialkiProjekt działa przez Docker Compose. Lokalny venv nie jest potrzebny.
docker compose up -dPrzy zmianach w kodzie przebuduj obraz:
docker compose up -d --buildZatrzymanie:
docker compose downCache granic administracyjnych jest trzymany w wolumenie Dockera rcs-mcp-cache, więc kolejne uruchomienia korzystają z zapisanych danych.
Zbudowanie cache'u od zera trwa dłużej niż limit czasu pojedynczego wywołania narzędzia MCP (ok. 30 s dla powiat, ok. 60 s dla gmina), dlatego kontener po starcie rozgrzewa w tle brakujące poziomy. Postęp widać w logach:
docker compose logs -f rcs-mcpJeśli mimo to trafisz na jeszcze niezbudowany poziom, znajdz_obszar nie zawiesi się do timeoutu — zwróci informację, że cache buduje się w tle. Pobieranie leci dalej, więc wystarczy powtórzyć to samo wywołanie za kilkadziesiąt sekund.
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.
https://mapy.geoportal.gov.pl/wss/service/rcn?language=polhttps://mapy.geoportal.gov.pl/wss/service/PZGIK/PRG/WFS/AdministrativeBoundarieshttps://mapy.geoportal.gov.pl/wss/service/PZGiK/PRNG/WFS/GeographicalNamesGeoportal zwraca dane jako WFS/GML. Serwer pobiera je przez httpx i parsuje lokalnie.
CQL_FILTER w usługach Geoportalu jest ignorowane, więc projekt filtruje dane po stronie klienta.BBOX.tylko_mieszkalne=True domyślnie odrzuca część rekordów niemieszkalnych dla lokali i budynków.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.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.