Skip to main content
Glama

Property Shared

property-shared MCP server

Данные о недвижимости в Великобритании в одном пакете. Получение данных о продажах из Земельного кадастра, сертификатов 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=true

  • GET /v1/analysis/yield?postcode=NG1+1AA&property_type=F

  • GET /v1/analysis/rental?postcode=NG1+1AA&purchase_price=200000

  • GET /v1/rightmove/search-url?postcode=NG1+1AA&sort_by=newest

  • GET /v1/calculators/stamp-duty?price=300000&additional_property=true

  • POST /v1/property/report с { "address": "10 Downing Street, SW1A 2AA" }

Полный список эндпоинтов в USER_GUIDE.md.

Переменные окружения

Скопируйте .env.example в .env. Ключевые переменные:

Переменная

Требуется для

Описание

EPC_API_EMAIL

Поиск EPC

Бесплатный ключ от EPC Register

EPC_API_KEY

Поиск EPC

В паре с email выше

COMPANIES_HOUSE_API_KEY

Поиск компаний

Бесплатный ключ от Companies House

RIGHTMOVE_DELAY_SECONDS

Нет (по умолчанию 0.6с)

Задержка ограничения скорости для парсинга Rightmove

OPENAI_API_KEY

Парсер планирования

Парсер портала планирования с поддержкой зрения

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