UK Property Data について
UK Property Dataは、Pythonライブラリ、CLI、HTTP API、MCPサーバーを通じて英国の不動産データと分析を提供します。不動産の調査者や投資家向けに、売買記録、掲載物件、エネルギー証明書、利回り、税額計算、計画情報、企業記録を扱います。
主な機能
- 01Land Registryの成約価格比較
- 02EPC証明書の照会と概要
- 03Rightmoveの売買・賃貸物件
- 04賃貸利回りと印紙税の計算
- 05建物単位のフラット売買分析
- 06計画ポータルとCompanies Houseの照会
活用シーン
- 01郵便番号周辺の成約価格を比較
- 02成約と掲載情報から賃貸利回りを評価
- 03購入時の印紙税を計算
- 04計画ポータルや企業記録を確認
MCP 対応
公開済みHTTPエンドポイントまたはローカルで起動したサーバーを通じ、不動産データと分析ツールをMCPクライアントに提供します。対象にはLand Registry、EPC、Rightmove、計画情報、Companies Houseが含まれます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://property-shared.fly.dev/mcpclaude mcp add --transport http paulieb89-property-shared https://property-shared.fly.dev/mcp{"mcpServers":{"paulieb89-property-shared":{"type":"http","url":"https://property-shared.fly.dev/mcp"}}}Cursor で開く{"servers":{"paulieb89-property-shared":{"type":"http","url":"https://property-shared.fly.dev/mcp"}}}VS Code で開く{"mcpServers":{"paulieb89-property-shared":{"type":"http","url":"https://property-shared.fly.dev/mcp"}}}{"mcpServers":{"paulieb89-property-shared":{"serverUrl":"https://property-shared.fly.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
14| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | |
| months | integer | いいえ | 今日までの暦月数。デフォルトは 24 です。結果は利用可能なデータの対象範囲に制限されます。 |
| address | any | いいえ | |
| postcode | string | はい | |
| enrich_epc | boolean | いいえ | |
| search_level | string | いいえ | |
| property_type | any | いいえ | |
| filter_outliers | boolean | いいえ | |
| transaction_category | any | いいえ |
詳細
Property Shared
英国の不動産データを1つのパッケージにまとめました。Land Registryの売買データ、EPC証明書、Rightmoveの掲載情報、賃貸利回り、印紙税の計算、都市計画ポータルへのリンク、Companies Houseの記録を取得できます。
Pythonライブラリ、CLI、HTTP API、またはMCPサーバーとして利用できます。
利用できるデータ
| データソース | 取得できる情報 |
|---|---|
| Land Registry PPD | 売却価格、日付、不動産タイプ、中央値・パーセンタイル付きの地域比較データ |
| EPC(GOV.UK) | エネルギー評価、床面積、暖房費。イングランドとウェールズのみ。証明書の検索と概要検索に対応しています。詳しくは以下のEPCに関する注記をご覧ください |
| Rightmove | 現在の掲載情報(売買・賃貸)、価格、仲介業者、掲載情報の詳細 |
| 利回り分析 | PPDの売買データとRightmoveの賃貸データを組み合わせて算出する総利回り |
| 印紙税 | 2025年4月の税率区分、BTL追加税率、初回購入者向け優遇措置に対応したSDLT計算 |
| ブロック分析 | 建物ごとにフラットの売却情報をグループ化し、投資家の売却を把握 |
| 都市計画 | 地方自治体の都市計画ポータルを検索(確認済みの自治体99件、stdioのみ) |
| Companies House | 会社名または会社番号で会社を検索・照会 |
スキルとプラグイン
不動産・法律パックは近日公開予定です。英国の不動産投資、英国の不動産仲介、不動産取引や譲渡に関する実務経験または専門知識があり、開発に協力していただける方は、ぜひご連絡ください。[email protected]
MCP サーバーとして利用する
インストールは不要です。URLをMCPクライアントの設定に貼り付けるだけで利用できます。
Claude Code、Cursor、その他のMCPクライアント:
{
"mcpServers": {
"property-shared": {
"type": "http",
"url": "https://property-shared.fly.dev/mcp"
}
}
}
インストール
pip install property-shared
# or with uv
uv add property-shared
追加機能:CLIには[cli]、HTTPサーバーには[api]を指定します。
pip install property-shared[cli]
# or
uv add property-shared --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経由で実行します。
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=true{ "address": "10 Downing Street, SW1A 2AA" }を指定してPOST /v1/property/report
エンドポイントの全一覧はUSER_GUIDE.mdをご覧ください。
EPC に関する注意事項(v1.14.0)
EPC サービスは GOV.UK の Bearer API に移行しました。EPC_API_TOKEN を設定してください。以前の
EPC_API_EMAIL/EPC_API_KEY の組み合わせは、廃止されたホストで認証するものであり、
代替手段としてはサポートされていません。
新しい上流サービスが対応していること、対応していないこと:
- 証明書番号による証明書検索 — 詳細情報を 1 件のリクエストで取得できます。
- 郵便番号による概要検索 — 住所、UPRN(存在しないことがよくあります)、エネルギー 評価、登録日、スキーマ種別を返します。エネルギースコア、床面積、物件タイプは 返しません。これらの情報は完全な証明書にのみ存在します。
- 郵便番号で特定できるのは地域であり、物件ではありません。 物件を 1 件特定するには、UPRN、または証明書と完全に一致する住所が必要です(大文字・小文字、句読点、
先頭の
Flat/Apartmentという表記は除きます)。住所がない、一致するものがない、 複数の候補があるなど、それ以外の場合は、最良の推測で解決せずに拒否されます。 CLI と REST のインターフェースについては、USER_GUIDE.md を参照してください。 - 地域統計で取得できるのは、レコード数と、上限付きのレスポンスに一致する概要が
すべて含まれている場合の評価分布に限られます。物件タイプの内訳と床面積の統計は、
取得できないことを示す
Noneとして報告されます(ゼロではありません)。これらを 算出するには、証明書ごとに 1 件のリクエストが必要になるためです。 - 対象地域はイングランドとウェールズです。 スコットランド、北アイルランド、 チャンネル諸島では「証明書が見つかりません」と返されます。これは対象地域の境界を 示すものであり、物件に関する説明ではありません。
- ページネーションは安定したスナップショットではありません。 レスポンスには
complete、duplicates_removed、unusable_rowsが含まれます。いずれの操作も、 地域内のデータを完全に取得できるとは保証しません。 - 曖昧な住所の一致は拒否されます。 任意の近隣の証明書に割り当てて解決することはありません。
search_all_by_postcode() はサポートされていません。候補の検索には
search_summaries() を使い、必要な 1 件を取得するには get_certificate() を使ってください。
環境変数
リポジトリのルートに、必要な変数を記載した .env ファイルを作成してください(gitignore の対象です)。
オプションの変数は、空の値を設定するのではなく、完全に省略してください。
KEY=は空文字列を設定します。未設定の場合とは異なり、os.getenv("KEY", "default")は""を返すため、デフォルト値は適用されません。この問題により EPC のライブ テストで空の郵便番号が上流サービスに送信されました。
主な変数:
| 変数 | 必要な用途 | 説明 |
|---|---|---|
EPC_API_TOKEN | EPC 検索 | GOV.UK EPC data の Bearer トークン |
EPC_API_EMAIL | (非推奨) | 廃止されたサービス用。設定エラーを発生させる目的でのみ解析されます |
EPC_API_KEY | (非推奨) | 廃止されたサービス用。代替手段としてはサポートされていません |
COMPANIES_HOUSE_API_KEY | 企業検索 | Companies House の無料キー |
RIGHTMOVE_DELAY_SECONDS | いいえ(デフォルト 0.6 秒) | Rightmove のスクレイピングにおけるレート制限の遅延 |
OPENAI_API_KEY | 計画情報スクレイパー | ビジョンガイド型の計画ポータルスクレイパー |
Land Registry PPD と Rightmove は、認証情報なしで利用できます。
開発
# Install dependencies (dev tooling installs by default via [dependency-groups])
uv sync
# Run API with reload
uv run --extra api uvicorn app.main:app --reload
# Full validation (lockfile check, pre-commit, all extras, full suite) —
# same entrypoint CI and the release gate use
./scripts/validate.sh
# + live integration tests (real network calls)
RUN_LIVE_TESTS=1 ./scripts/validate.sh
https://property-shared.fly.dev にデプロイされており、API ドキュメントは /docs、MCP エンドポイントは /mcp です。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。