Skip to main content
Glama

Property Shared

property-shared MCP server

영국 부동산 데이터를 하나의 패키지로 제공합니다. 토지 등기소 매매 기록, EPC 인증서, Rightmove 매물, 임대 수익률, 인지세 계산, 계획 포털 링크 및 기업 등록소 기록을 가져옵니다.

Python 라이브러리, CLI, HTTP API 또는 AI 에이전트용 MCP 서버로 사용하세요.

제공 기능

데이터 소스

반환 내용

토지 등기소 PPD

매매 가격, 날짜, 부동산 유형, 중앙값/백분위수를 포함한 지역 비교

EPC 등록부

에너지 등급, 바닥 면적, 건축 연도, 난방 비용

Rightmove

현재 매물(매매 + 임대), 가격, 중개인, 매물 상세 정보

수익률 분석

PPD 매매 데이터와 Rightmove 임대 데이터를 결합한 총 수익률

인지세

2025년 4월 세율 기준 SDLT 계산, BTL 추가 요금, 생애 첫 주택 구매자 감면

블록 분석기

투자자 매물을 파악하기 위해 건물별 아파트 매매 그룹화

계획(Planning)

지역 의회 계획 포털 조회 (99개 검증된 의회)

기업 등록소

이름 또는 번호로 기업 검색 및 조회

스킬

원시 데이터 대신 구조화된 부동산 보고서가 필요하신가요? 이러한 도구를 연결하여 투자 요약본을 생성하는 Claude 스킬은 bouch.dev/products에서 확인하실 수 있습니다.

설치

pip install property-shared

# or with uv
uv add property-shared

추가 옵션: MCP 서버용 [mcp], CLI용 [cli], HTTP 서버용 [api], 테스트용 [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 서버로 사용 (AI 에이전트)

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 (스트리밍 가능한 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 조회

위 이메일과 함께 사용

COMPANIES_HOUSE_API_KEY

기업 검색

Companies House에서 무료 키 발급

RIGHTMOVE_DELAY_SECONDS

선택 (기본 0.6초)

Rightmove 스크래핑 속도 제한 지연 시간

OPENAI_API_KEY

계획 스크래퍼

비전 기반 계획 포털 스크래퍼

토지 등기소 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

아키텍처

3계층 분리 — 코어는 프레임워크에 구애받지 않습니다:

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