UK Property Data
Property Shared
UK-Immobiliendaten in einem Paket. Ruft Grundbuchverkäufe (Land Registry), EPC-Zertifikate, Rightmove-Angebote, Mietrenditen, Grunderwerbsteuerberechnungen, Links zum Planungsportal und Datensätze von Companies House ab.
Verwenden Sie es als Python-Bibliothek, CLI, HTTP-API oder MCP-Server für KI-Agenten.
Was Sie erhalten
Datenquelle | Was es zurückgibt |
Land Registry PPD | Verkaufspreise, Daten, Immobilientypen, Gebietsvergleiche mit Median/Perzentilen |
EPC Register | Energieeffizienzklassen, Grundfläche, Baualter, Heizkosten |
Rightmove | Aktuelle Angebote (Kauf + Miete), Preise, Makler, Angebotsdetails |
Renditeanalyse | Bruttorendite aus PPD-Verkäufen + Rightmove-Mieten kombiniert |
Grunderwerbsteuer | SDLT-Berechnung mit Bändern vom April 2025, BTL-Aufschlag, FTB-Entlastung |
Block Analyzer | Gruppiert Wohnungsverkäufe nach Gebäude, um Investorenausstiege zu erkennen |
Planung | Suche im Planungsportal der lokalen Behörden (99 verifizierte Behörden) |
Companies House | Firmensuche und Abfrage nach Name oder Nummer |
Skills
Sie möchten strukturierte Immobilienberichte statt Rohdaten? Claude-Skills, die diese Tools zu Investitionszusammenfassungen verknüpfen, sind unter bouch.dev/products verfügbar.
Installation
pip install property-shared
# or with uv
uv add property-sharedExtras: [mcp] für MCP-Server, [cli] für CLI, [api] für HTTP-Server, [dev] für Tests.
pip install property-shared[mcp,cli]
# or
uv add property-shared --extra mcp --extra cliVerwendung als Python-Bibliothek
from property_core import PPDService, calculate_yield, calculate_stamp_duty
# Get comparable sales for a postcode
comps = PPDService().comps("SW1A 1AA", months=24, property_type="F")
print(f"Median flat price: {comps.median:,}")
# Calculate rental yield
import asyncio
result = asyncio.run(calculate_yield("NG1 1AA", property_type="F"))
print(f"Gross yield: {result.gross_yield_pct}%")
# Stamp duty
sdlt = calculate_stamp_duty(250000, additional_property=True)
print(f"SDLT: {sdlt.total_sdlt:,.0f} ({sdlt.effective_rate}%)")Alle Modelle sind auf der obersten Ebene verfügbar:
from property_core import (
PPDTransaction, PPDCompsResponse, EPCData,
RightmoveListing, RightmoveListingDetail,
PropertyReport, YieldAnalysis, RentalAnalysis,
BlockAnalysisResponse, CompanyRecord, StampDutyResult,
)Interpretationshilfen (der Kern gibt Zahlen zurück, Sie entscheiden, wie diese beschriftet werden):
from property_core import classify_yield, classify_data_quality, generate_insightsVerwendung als CLI
pip install property-shared[cli] # or: uv add property-shared --extra cli
# Comparable sales
property-cli ppd comps "SW1A 1AA" --months 24 --property-type F
# Rental yield
property-cli analysis yield "NG1 1AA" --property-type F
# Stamp duty
property-cli calc stamp-duty 300000
# Rightmove search (with sort)
property-cli rightmove search-url "NG1 1AA" --sort-by most_reduced
# Full property report
property-cli report generate "10 Downing Street, SW1A 2AA" --property-type FFügen Sie --api-url http://localhost:8000 zu jedem Befehl hinzu, um ihn über die HTTP-API zu leiten, anstatt den Kern direkt aufzurufen.
Verwendung als MCP-Server (KI-Agenten)
Für Claude.ai, Claude Code, ChatGPT oder jeden anderen MCP-kompatiblen Host.
pip install property-shared[mcp] # or: uv add property-shared --extra mcp
property-mcp # starts stdio transport12 Tools verfügbar: property_report, property_comps, ppd_transactions, property_yield, rental_analysis, property_epc, rightmove_search, rightmove_listing, property_blocks, stamp_duty, planning_search, company_search.
Remote-Server bereitgestellt unter https://property-shared.fly.dev/mcp (Streamable HTTP).
Siehe mcp_server/README.md für die Verbindungseinrichtung und Tool-Details.
Verwendung als HTTP-API
pip install property-shared[api] # or: uv add property-shared --extra api
property-api # starts on port 8000Interaktive Dokumentation unter http://localhost:8000/docs.
Wichtige Endpunkte:
GET /v1/ppd/comps?postcode=SW1A+1AA&property_type=F&enrich_epc=trueGET /v1/analysis/yield?postcode=NG1+1AA&property_type=FGET /v1/analysis/rental?postcode=NG1+1AA&purchase_price=200000GET /v1/rightmove/search-url?postcode=NG1+1AA&sort_by=newestGET /v1/calculators/stamp-duty?price=300000&additional_property=truePOST /v1/property/reportmit{ "address": "10 Downing Street, SW1A 2AA" }
Vollständige Endpunktliste im USER_GUIDE.md.
Umgebungsvariablen
Kopieren Sie .env.example nach .env. Wichtige Variablen:
Variable | Erforderlich für | Beschreibung |
| EPC-Abfragen | Kostenloser Schlüssel vom EPC Register |
| EPC-Abfragen | Gepaart mit der E-Mail oben |
| Firmensuche | Kostenloser Schlüssel von Companies House |
| Nein (Standard 0.6s) | Ratenbegrenzungsverzögerung für Rightmove-Scraping |
| Planungs-Scraper | Vision-gestützter Planungsportal-Scraper |
Land Registry PPD und Rightmove funktionieren ohne Anmeldedaten.
Entwicklung
# Install with dev extras
uv sync --extra dev
# Run API with reload
uv run uvicorn app.main:app --reload
# Run tests (mocked, no network)
uv run --extra dev pytest -v
# Run live integration tests (real network calls)
RUN_LIVE_TESTS=1 uv run --extra dev pytest -vArchitektur
Drei-Schichten-Trennung — der Kern bleibt Framework-agnostisch:
property_core/ Pure Python library (all business logic)
app/ FastAPI wrapper (thin HTTP layer)
property_cli/ Typer CLI (thin CLI layer)
mcp_server/ FastMCP wrapper (thin MCP layer for AI hosts)Alle drei Konsumenten importieren direkt aus property_core. Keine Adapterschichten.
Bereitstellung (Fly.io)
fly secrets set EPC_API_EMAIL=... EPC_API_KEY=...
fly deployBereitgestellt unter https://property-shared.fly.dev mit API-Dokumentation unter /docs und MCP-Endpunkt unter /mcp.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/paulieb89/property-shared'
If you have feedback or need assistance with the MCP directory API, please join our Discord server