UK Property Data
Property Shared
Данные о недвижимости в Великобритании в одном пакете. Получение данных о продажах из Земельного кадастра, сертификатов EPC, объявлений Rightmove, доходности от аренды, расчетов гербового сбора, ссылок на порталы планирования и записей Companies House.
Используйте его как библиотеку Python, CLI, HTTP API или MCP-сервер для ИИ-агентов.
Что вы получаете
Источник данных | Что возвращает |
Land Registry PPD | Цены продажи, даты, типы недвижимости, сравнение по району с медианой/процентилями |
EPC Register | Энергетические рейтинги, площадь пола, возраст постройки, расходы на отопление |
Rightmove | Текущие объявления (продажа + аренда), цены, агенты, детали объявлений |
Yield Analysis | Валовая доходность на основе продаж PPD + аренды Rightmove |
Stamp Duty | Расчет SDLT с учетом ставок на апрель 2025 года, надбавки BTL, льгот для FTB |
Block Analyzer | Группировка продаж квартир по зданиям для выявления выхода инвесторов |
Planning | Поиск по порталу планирования местного совета (99 проверенных советов) |
Companies House | Поиск компаний по названию или номеру |
Навыки
Нужны структурированные отчеты о недвижимости вместо «сырых» данных? Навыки Claude, которые объединяют эти инструменты в инвестиционные сводки, доступны на bouch.dev/products.
Установка
pip install property-shared
# or with uv
uv add property-sharedДополнительно: [mcp] для MCP-сервера, [cli] для CLI, [api] для HTTP-сервера, [dev] для тестов.
pip install property-shared[mcp,cli]
# or
uv add property-shared --extra mcp --extra cliИспользование в качестве библиотеки Python
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}%)")Все модели доступны на верхнем уровне:
from property_core import (
PPDTransaction, PPDCompsResponse, EPCData,
RightmoveListing, RightmoveListingDetail,
PropertyReport, YieldAnalysis, RentalAnalysis,
BlockAnalysisResponse, CompanyRecord, StampDutyResult,
)Вспомогательные средства интерпретации (ядро возвращает числа, вы решаете, как их обозначить):
from property_core import classify_yield, classify_data_quality, generate_insightsИспользование в качестве 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 FДобавьте --api-url http://localhost:8000 к любой команде, чтобы направлять запросы через HTTP API вместо прямого вызова ядра.
Использование в качестве MCP-сервера (ИИ-агенты)
Для Claude.ai, Claude Code, ChatGPT или любого хоста, совместимого с MCP.
pip install property-shared[mcp] # or: uv add property-shared --extra mcp
property-mcp # starts stdio transportДоступно 12 инструментов: property_report, property_comps, ppd_transactions, property_yield, rental_analysis, property_epc, rightmove_search, rightmove_listing, property_blocks, stamp_duty, planning_search, company_search.
Удаленный сервер развернут по адресу https://property-shared.fly.dev/mcp (Streamable HTTP).
См. mcp_server/README.md для настройки подключения и подробностей об инструментах.
Использование в качестве HTTP API
pip install property-shared[api] # or: uv add property-shared --extra api
property-api # starts on port 8000Интерактивная документация по адресу http://localhost:8000/docs.
Основные эндпоинты:
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/reportс{ "address": "10 Downing Street, SW1A 2AA" }
Полный список эндпоинтов в USER_GUIDE.md.
Переменные окружения
Скопируйте .env.example в .env. Ключевые переменные:
Переменная | Требуется для | Описание |
| Поиск EPC | Бесплатный ключ от EPC Register |
| Поиск EPC | В паре с email выше |
| Поиск компаний | Бесплатный ключ от Companies House |
| Нет (по умолчанию 0.6с) | Задержка ограничения скорости для парсинга Rightmove |
| Парсер планирования | Парсер портала планирования с поддержкой зрения |
Land Registry PPD и Rightmove работают без учетных данных.
Разработка
# 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 -vАрхитектура
Трехуровневое разделение — ядро остается независимым от фреймворка:
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)Все три потребителя импортируют данные напрямую из property_core. Никаких уровней адаптеров.
Развертывание (Fly.io)
fly secrets set EPC_API_EMAIL=... EPC_API_KEY=...
fly deployРазвернуто по адресу https://property-shared.fly.dev с документацией API по адресу /docs и эндпоинтом MCP по адресу /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