Skip to main content
Glama

Property Shared

property-shared MCP server

Datos de propiedades del Reino Unido en un solo paquete. Obtiene ventas del Registro de la Propiedad, certificados EPC, listados de Rightmove, rentabilidad de alquileres, cálculos de impuesto de timbre, enlaces a portales de planificación y registros de Companies House.

Úselo como biblioteca de Python, CLI, API HTTP o servidor MCP para agentes de IA.

Qué obtiene

Fuente de datos

Qué devuelve

Land Registry PPD

Precios de venta, fechas, tipos de propiedad, comparativas de área con mediana/percentiles

EPC Register

Calificaciones energéticas, superficie, antigüedad de construcción, costes de calefacción

Rightmove

Listados actuales (venta + alquiler), precios, agentes, detalles del listado

Yield Analysis

Rentabilidad bruta combinando ventas PPD + alquileres de Rightmove

Stamp Duty

Cálculo de SDLT con tramos de abril de 2025, recargo BTL, alivio para compradores primerizos (FTB)

Block Analyzer

Agrupa ventas de pisos por edificio para detectar salidas de inversores

Planning

Búsqueda en el portal de planificación del ayuntamiento local (99 ayuntamientos verificados)

Companies House

Búsqueda de empresas y consulta por nombre o número

Habilidades

¿Desea informes de propiedades estructurados en lugar de datos sin procesar? Las habilidades de Claude que encadenan estas herramientas en resúmenes de inversión están disponibles en bouch.dev/products.

Instalación

pip install property-shared

# or with uv
uv add property-shared

Extras: [mcp] para servidor MCP, [cli] para CLI, [api] para servidor HTTP, [dev] para pruebas.

pip install property-shared[mcp,cli]
# or
uv add property-shared --extra mcp --extra cli

Uso como biblioteca de 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}%)")

Todos los modelos están disponibles en el nivel superior:

from property_core import (
    PPDTransaction, PPDCompsResponse, EPCData,
    RightmoveListing, RightmoveListingDetail,
    PropertyReport, YieldAnalysis, RentalAnalysis,
    BlockAnalysisResponse, CompanyRecord, StampDutyResult,
)

Ayudantes de interpretación (el núcleo devuelve números, usted decide cómo etiquetarlos):

from property_core import classify_yield, classify_data_quality, generate_insights

Uso como 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

Agregue --api-url http://localhost:8000 a cualquier comando para enrutar a través de la API HTTP en lugar de llamar al núcleo directamente.

Uso como servidor MCP (Agentes de IA)

Para Claude.ai, Claude Code, ChatGPT o cualquier host compatible con MCP.

pip install property-shared[mcp]  # or: uv add property-shared --extra mcp
property-mcp  # starts stdio transport

12 herramientas disponibles: property_report, property_comps, ppd_transactions, property_yield, rental_analysis, property_epc, rightmove_search, rightmove_listing, property_blocks, stamp_duty, planning_search, company_search.

Servidor remoto desplegado en https://property-shared.fly.dev/mcp (HTTP transmitible).

Consulte mcp_server/README.md para la configuración de conexión y detalles de las herramientas.

Uso como API HTTP

pip install property-shared[api]  # or: uv add property-shared --extra api
property-api  # starts on port 8000

Documentación interactiva en http://localhost:8000/docs.

Endpoints clave:

  • 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 con { "address": "10 Downing Street, SW1A 2AA" }

Lista completa de endpoints en USER_GUIDE.md.

Variables de entorno

Copie .env.example a .env. Variables clave:

Variable

Requerido para

Descripción

EPC_API_EMAIL

Consultas EPC

Clave gratuita de EPC Register

EPC_API_KEY

Consultas EPC

Emparejado con el correo electrónico anterior

COMPANIES_HOUSE_API_KEY

Búsqueda de empresas

Clave gratuita de Companies House

RIGHTMOVE_DELAY_SECONDS

No (predeterminado 0.6s)

Retraso de límite de tasa para el scraping de Rightmove

OPENAI_API_KEY

Scraper de planificación

Scraper de portal de planificación guiado por visión

Land Registry PPD y Rightmove funcionan sin credenciales.

Desarrollo

# 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

Arquitectura

Separación de tres capas: el núcleo permanece independiente del framework:

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)

Los tres consumidores importan directamente desde property_core. Sin capas de adaptador.

Despliegue (Fly.io)

fly secrets set EPC_API_EMAIL=... EPC_API_KEY=...
fly deploy

Desplegado en https://property-shared.fly.dev con documentación de API en /docs y endpoint MCP en /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