mcp-immo について
mcp-immoは、フランスの公式オープンデータを使って不動産を分析するMCPサーバーです。住所から市場情報、価格推定、リスクを調べられ、結果には出典と限界が示されます。推定は専門家による評価ではありません。
主な機能
- 01物件レポートと住所比較
- 02成約事例に基づく価格推定
- 03賃料・税金・DPEの検索
- 04地籍・用途地域・周辺施設の情報
- 05自然災害・技術リスクの確認
- 06構造化されたMCPツール結果
活用シーン
- 01フランスの物件価格を把握
- 02複数物件の賃料とエネルギー評価を比較
- 03物件リスクと用途地域を確認
- 04予算内で購入可能な自治体を検索
MCP 対応
MCPクライアント向けに、フランスの売買、価格推定、賃料、税金、エネルギー評価、地籍、用途地域、リスクを調べる21種類のツールを提供します。通常はstdioでローカル実行し、Streamable HTTPも選択できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
21掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | 候補の最大数(デフォルトは 5) |
| query | string | はい | 自由形式の住所。例:'10 rue de la Paix Paris'(パリ、ペ通り 10 番地) |
詳細
mcp-immo-olv
オープンデータによるフランスの不動産データ 住所を指定すると、MCP クライアントから公証人による売買データ(DVF)を参照し、類似物件に基づく価格査定、募集賃料、固定資産税の目安、DPE、Géorisques のリスク情報、コミューンの INSEE プロフィールを取得できます。API キーは不要です。
信頼できるソースからデータを生成する、この MCP の目的
不動産ポータルでは、希望価格や不透明な価格査定が表示されることがあります。フランスの公開データなら、より優れた情報を得られます。公証人による売買データ DVF、ADEME の診断情報、
賃料指標、地方税 REI、リスク情報、住所参照データです。
mcp-immo-olv はこれらをつなぎ、監査可能な応答を提供します。
各数値には、ソース、対象範囲、限界が示されます。価格査定はあくまで オープンデータに基づく分析であり、専門家による価格評価でも、金融上の助言でもありません。
接続方法
必要なものは Node.js 18 以降のみです。API キーもアカウントも不要です。
デフォルトではサーバーはローカルの stdio で動作し、ネットワークには公開されません。
オプションの Streamable HTTP モード(変数 IMMO_HTTP_PORT)を使うと、ホストして共有できます。§ 6 を参照してください。
| 利用環境 | 1 行で接続 |
|---|---|
| Claude Code | claude mcp add immo-olv -- npx -y mcp-immo-olv@latest |
| Cline | cline mcp add immo-olv --yes -- npx -y mcp-immo-olv@latest |
| その他の MCP クライアント | 以下の JSON ブロックを mcpServers にコピーします |
| 公式 MCP レジストリ | サーバー io.github.OlivierLAVAUD/mcp-immo |
| MCP クライアントがない場合 | ローカルのウェブコンソール:npm run dev → http://localhost:5173 |
| ホスティング/リモートアクセス | IMMO_HTTP_PORT=8123 npx -y mcp-immo-olv@latest → http://127.0.0.1:8123/mcp |
1. Claude Code
claude mcp add immo-olv -- npx -y mcp-immo-olv@latest
claude mcp list で確認します。immo-olv が表示されているはずです。
/immo-olv:rapport、/immo-olv:estimation、/immo-olv:risques コマンドを使うには、
プラグインをインストールしてください(Claude Code プラグインとしてインストールを参照)。
2. Cline
1 つのコマンドで追加(cline CLI):
cline mcp add immo-olv --yes -- npx -y mcp-immo-olv@latest
--yes を指定しない場合、このコマンドは入力済みの項目を含む追加アシスタントを開きます。
cline config mcp で確認します。immo-olv がアクティブな状態で表示されているはずです。
IDE から追加:Cline パネルで、MCP Servers アイコン(ツールバー)→
Configure タブ → Configure MCP Servers ボタンをクリックし、mcpServers に追加します:
{
"mcpServers": {
"immo-olv": {
"command": "npx",
"args": ["-y", "mcp-immo-olv@latest"],
"disabled": false,
"autoApprove": []
}
}
}
拡張機能は独自の MCP 設定ファイルを開きます。一方、CLI は
~/.cline/data/settings/cline_mcp_settings.json を読み込みます(変数
CLINE_MCP_SETTINGS_PATH で変更できます)。その後、Cline を再起動すると、21 個のツールが MCP リストに表示されます。
3. その他すべての MCP クライアント
このブロックをクライアントの設定(mcpServers)にコピーします:
{
"mcpServers": {
"immo-olv": {
"command": "npx",
"args": ["-y", "mcp-immo-olv"]
}
}
}
クライアントを再起動すると、21 個のツールが MCP ツールリストに表示されます。
4. このリポジトリから(開発)
npm install
npm run build
次に、公開パッケージではなくローカルビルドを使うよう、クライアントを設定します:
{
"mcpServers": {
"immo-olv": {
"command": "node",
"args": ["/chemin/vers/mcp-immo-olv/dist/index.js"]
}
}
}
Claude Code では、同じ操作を 1 つのコマンドで実行できます:
claude mcp add immo-olv -- node /chemin/vers/mcp-immo-olv/dist/index.js
サーバーを単独で起動することもできますが、その場合は stdin でクライアントからの接続を待ちます:
node dist/index.js
5. ウェブコンソール(MCP クライアントなし)
npm --prefix ui install
npm run build # le pont a besoin de dist/index.js
npm run dev # console : http://localhost:5173
何もインストールせずに、互換性のあるクライアントから公式 MCP レジストリ上の
io.github.OlivierLAVAUD/mcp-immo を使ってサーバーを解決できます。MCP レジストリからインストールを参照してください。
6. ホスティング/Streamable HTTP
デフォルトでは、サーバーは MCP クライアントによって起動される stdio プロセスです。
IMMO_HTTP_PORT を設定すると、同じツールレジストリが MCP Streamable HTTP トランスポートに切り替わり、ホスティングやチーム内での共有、サブプロセスを起動できないクライアントからの接続が可能になります。
IMMO_HTTP_PORT=8123 npx -y mcp-immo-olv@latest
# → mcp-immo-olv listening on Streamable HTTP: http://127.0.0.1:8123/mcp
MCP の「リモート」クライアントで、エンドポイントの URL を指定します。
{
"mcpServers": {
"immo-olv": { "url": "http://127.0.0.1:8123/mcp" }
}
}
| 変数 | デフォルト | 役割 |
|---|---|---|
IMMO_HTTP_PORT | (未設定 = stdio) | リッスンポート。設定するとサーバーが HTTP モードに切り替わります |
IMMO_HTTP_HOST | 127.0.0.1 | バインドアドレス |
IMMO_CACHE_DIR | (未設定 = メモリのみ) | DVF 用の永続ディスクキャッシュフォルダー。コールドスタートを桁違いに高速化します |
サーバーを公開する前に知っておくべきこと:
- デフォルトではローカルループバックです。
127.0.0.1のみでリッスンします。認証のない MCP サーバーでは、すべてのツールにアクセスできます。マシンの外部と共有するには、意図的にバインド先を変更し(IMMO_HTTP_HOST)、アクセスを保護してください(認証付きリバースプロキシ、ファイアウォールなど)。サーバー側には認証機能が実装されていません。 - セッション。 各 MCP セッション(
initialize)には、それぞれ専用のサーバー/トランスポートのペアが割り当てられ、Mcp-Session-Idヘッダーによってルーティングされます。不明なセッションには404、許可されていないメソッドには405を返します。 - JSON レスポンス。 各ツールは単一のリクエスト/レスポンスであり(サーバーから開始するストリームはありません)、サーバーは JSON を直接返します。これは curl およびすべての Streamable HTTP クライアントと互換性があります(仕様に従い、
application/jsonとtext/event-streamの両方を受け入れる必要があります)。 - デフォルトの方式は引き続き stdio です。 Claude Code、Cline、またはパッケージを起動するすべてのクライアントの動作に変更はありません。
IMMO_HTTP_PORTが未設定なら、従来とまったく同じ動作です。
MCP レジストリからインストールする
このサーバーは、公式 MCP レジストリに次の名前で登録されています。
io.github.OlivierLAVAUD/mcp-immo
レジストリからサーバーを解決できるクライアントは、この名前でサーバーを見つけられます。API キーもアカウントの作成も不要です。レジストリに保存されるのはメタデータのみです。サーバーはローカルで stdio を使って動作し、npm パッケージ mcp-immo-olv から起動します。上記の手動設定でも同じように利用できます。
# Vérifier la fiche publiée
curl "https://registry.modelcontextprotocol.io/v0.1/servers?search=io.github.OlivierLAVAUD%2Fmcp-immo"
Claude Code プラグインとしてインストールする
このリポジトリは Claude Code プラグインのマーケットプレイスでもあります。API キーなしで、2 つのコマンドだけでインストールできます。
claude plugin marketplace add OlivierLAVAUD/mcp-immo-olv
claude plugin install immo-olv@mcp-immo-olv
immo-olv プラグインは npx -y mcp-immo-olv@latest を使って MCP サーバーを stdio で起動し、ツールの呼び出しを事前設定する 3 つのコマンドを追加します。
| コマンド | 生成される内容 |
|---|---|
/immo-olv:rapport <adresse> | 住所に関する完全なレポート |
/immo-olv:estimation <adresse> <type> <surface> | 取引事例比較による推定額と、測定されたモデルの信頼性 |
/immo-olv:risques <adresse> | リスク、都市計画、地籍情報 |
ツールには、状況を整理するためのスキル(immobilier-france)が付属しています。このスキルは、各数値の出典を示すこと、データを決して捏造しないこと、リスクの available: false は「存在しない」ではなく不明として扱うことを徹底します。
Windows ネイティブ環境で npx が解決されない場合は、サーバーを手動で宣言してください。
claude mcp add immo-olv -- cmd /c npx -y mcp-immo-olv@latest
ツール
| ツール | 結果 | ソース |
|---|---|---|
property_report | 完全なレポート:市場、売買、査定、賃料、税金、DPE、リスク、自治体、地籍、PLU、IRIS、賃料規制。共有可能なレポート用のオプション format: "markdown"、または住所ごとのレポート用の addresses(2~5件) | 以下のすべてのソース |
compare_properties | 2~5件の住所を並べて比較:市場、査定、賃料、DPE、ランキング | DVF + Carte des loyers + ADEME |
acquisition_costs | 取得費用(移転税、公証人報酬、平均固定資産税)と総利回り/純利回りのシミュレーション | 公式基準 + REI + Carte des loyers |
search_by_budget | 条件を逆引き検索:指定予算で購入可能な自治体、面積、利回り | DVF + Carte des loyers + geo.api.gouv.fr |
estimate_property | 類似物件を基にした加重査定、価格帯、有効サンプル数、賃料、利回り | DVF + Carte des loyers + 平均税額については REI |
backtest_estimator | モデルのウォークフォワード・バックテスト:MAPE、バイアス、区間のカバレッジを面積帯および年別に表示 | DVF(DGFiP / Etalab) |
property_sales | 住所周辺または自治体内の実際の公証人取引による売買情報 | DVF(DGFiP / Etalab) |
price_per_m2 | 中央値、四分位数、年間推移、直近12か月の期間 | DVF(DGFiP / Etalab) |
rent_estimate | セグメント別の募集賃料指標 | Carte des loyers(住宅省 / ANIL) |
rent_control | 基準賃料、法定上限(加算後)および下限 | 賃料規制(パリ市、リヨン・メトロポール、モンペリエ) |
property_tax_estimate | 課税対象物件1件あたりの年間平均負担額を項目別に表示 | 公開 API OFGL 経由の REI(DGFiP) |
dpe_lookup | 既存および新築住宅の住所別エネルギー性能診断。ラベル別の賃貸に関する法的ステータス(政令第 2024-501 号)と推定年間エネルギー費用を含む | ADEME(dpe03existant、dpe02neuf) |
cadastral_parcel | 地籍区画:識別子 idu、セクション、番号、公式面積 | PCI、IGN / DGFiP(API Carto) |
urbanism_zoning | PLU ゾーン(U / AU / A / N)、都市計画規則および規定 | 都市計画ポータル(DGALN / IGN) |
iris_lookup | 住所の INSEE IRIS:コード、名称、種類、自治体 | CONTOURS-IRIS / ADMINEXPRESS、IGN |
nearby_amenities | 住所周辺の施設:交通機関、学校、商業施設、医療機関、緑地。指定半径内の件数と最寄り施設までの直線距離を表示。交通機関は鉄道/地下鉄/トラム/バスの内訳も表示 | OpenStreetMap(ODbL)、API Overpass |
natural_risks | 公式の自然災害および技術的リスク | Géorisques |
risk_summary | リスクの要約:リスク(洪水、粘土、ラドン、ICPE、DPE)ごとに1文で説明し、不明な点を明示 | Géorisques + ADEME |
commune_info | 人口(国勢調査人口 + INSEE の法定人口 pmun/pcap/ptot)、郵便番号、県、地域、面積、中心地 | geo.api.gouv.fr / INSEE |
geocode_address / reverse_geocode | 住所 ↔ 座標、INSEE コード、BAN 識別子 | Base Adresse Nationale |
構造化出力
21 個のツールは、それぞれ結果のスキーマ(outputSchema、MCP 2025-06-18 仕様)を宣言しています。そのため、各呼び出しは同じペイロードを 2 回返します。送信前に SDK が検証したオブジェクトである structuredContent と、この改訂より前のクライアント向けに保持されている従来の JSON テキストブロックです。クライアントは結果を型付けし、再解析せずに表示して、宣言された形式を信頼できます。estimate_property は estimate.per_m2.estimate、estimate.confidence、estimate.top_comps[] を返すことを約束し、サーバーはそれ以外の内容を返すのではなく、エラーになります。
スキーマは意図的に開放的(additionalProperties: true)になっています。上流のソースでフィールドが追加されても、ツールが無効になることはありません。スキーマは 2 段階で検証されます。test/output-schemas.test.ts では実際に取得したペイロード(ui/fixtures/property-report-lyon.json)と照合し、npm run smoke ではライブの応答を同じスキーマに対して検証します。
固定資産税と「純」利回り
property_tax_estimate は、物件の固定資産税の通知書を把握しているとは決して主張しません。REI は市町村ごとの集計額と課税対象件数を公開しています。サーバーは、公開されている内訳(市町村分、広域自治体分、組合、GEMAPI、TEOM)を用いて、その平均負担額を算出します。実際の通知額は、課税台帳上の賃貸価格、免税措置、所有者、課税状況によって異なります。購入前に必ず確認してください。
平均税額を差し引いた利回りは、年間賃料からこの平均額のみを差し引きます。管理費、保険料、管理委託料、空室、修繕費、所得税は差し引きません。そのため、諸費用控除後の純利回りではありません。
例
リスクのダイジェスト、近接性、比較、予算別検索、Markdown の物件情報、住所の一覧、エラーメッセージなど、ツールの実際の出力は EXAMPLES.md にあります。npm run examples で再実行できます。
必要や利用手順ごとに分類された、21 個のツール用プロンプト例(クライアントにコピーして使用できます)は Prompts.md にあります。安全対策を確認するプロンプトも含まれています。ソースに接続できない場合は inconnu、比較対象が 3 件未満の場合は推定を拒否、存在しない住所を指定した場合などです。
推定方法
推定値は、比較可能な売買事例の加重中央値です。対象と同じ物件種別で、面積が対象の 40~250%に収まり、1 件の売買契約につき住戸が 1 つのみの事例を使い、極端な値は除外します。古い価格は、市町村ごとの最新市場年度の水準に補正します(係数の範囲は 0.7~1.6)。重みは距離、面積の類似性、経過年数を組み合わせて算出し、加重四分位数から価格帯を求めます。各比較事例、その補正内容、重みを返します。
比較事例が 3 件未満の場合、エンジンは推定を拒否します。物件の状態、階数、眺望、工事の必要性、法的制約は把握できません。
推定エンジンのバックテスト
backtest_estimator は、市町村内の売買事例を使ってエンジンを再実行します。各売買事例について、その事例の日付より前に登録された売買事例のみを使って推定し(asOf で分割し、対象の売買契約は除外)、実際の取引価格と比較します。将来の比較事例や将来の市場水準が混入することはありません。
MAPE、中央値誤差、第 90 百分位、符号付きバイアス(正の値はモデルが過大推定していることを示します)、および P25~P75 区間のカバレッジを出力します。カバレッジは 95%ではなく、**50%**に近い値を目安にしてください。適切に較正された P25~P75 区間には、実際の売買の半数が含まれます。結果は面積帯と年別にも分類され、監査用に誤差が大きい事例を 10 件示します。Lyon での確認実行では、MAPE は約 21%、バイアスは +8%、カバレッジは 52.5%です。
データソース、ライセンス、制限事項
各データセットから公式の参照ページにリンクしています(ゲーム名がリンクになっています)。
サーバーが応答で返す URL(source_url、officialReportUrl、
unavailable.portal_url)は、npm run smoke でライブ検証されます。
| データセット | 提供元 | サーバーでの用途 |
|---|---|---|
| 位置情報付きDVF | DGFiP / Etalab | 2021年から現在までの売買;2021年より前の位置情報付きデータはありません;アルザス=モーゼルおよびマヨットは対象外;公開の遅れがあります |
| 家賃マップ | 住宅省 / ANIL | モデル化された募集家賃(共益費込み);規制対象の基準家賃ではありません |
| 家賃規制 | パリ市、リヨン・メトロポールおよびモンペリエ | 対象地域の基準家賃のみ;対象外の地域では「対象外」と明示して返します |
| REI | DGFiP、OFGLが公開 | 地方税の集計データ;項目ごとの平均であり、個別の税額ではありません |
| 既存住宅のDPEおよび新築住宅のDPE | ADEME | dpe03existant と dpe02neuf の診断データ。それぞれ登録簿を明記しています |
| 地籍(PCI) | IGN / DGFiP(API Carto) | 区画、idu、面積;所有権や建築権を示すものではありません |
| 都市計画ポータル | DGALN / IGN(API Carto) | 法的拘束力のあるゾーニングと規定;PLUのない自治体は含まれません |
| CONTOURS-IRIS / ADMINEXPRESS | IGN(INSEEのデータを使用) | IRISの識別情報;このレイヤーに社会人口統計データはありません |
| Géorisques | 環境移行省 | 公式のリスクレポート;APIが応答しない場合は available: false を返し、空のリストを返すのではなく、その旨を明示します |
| OpenStreetMap(Overpass経由) | OSMのコントリビューター、ODbL | 住所周辺の施設;コミュニティによるデータのため網羅性にばらつきがあります。また、Overpassが応答しないときの count が0の場合は不明を意味し、「周辺に何もない」という意味ではありません |
| BAN / geo.api.gouv.fr | IGN / DINUM / INSEE | 住所と行政区画 |
ライセンス:ここに記載した国のデータセットには Licence Ouverte / Open Licence(Etalab)が、OpenStreetMapにはODbLが適用されます。一部の地方自治体のデータセットには独自のライセンスが適用されるため、再利用する前にデータセットのページで確認してください。応答を再利用する場合は、必ず出典を明記してください。公開データセットにはAPIキーなしで直接アクセスします。メモリーキャッシュは遅延と繰り返しの呼び出しを軽減しますが、再起動時に消去されます。IMMO_CACHE_DIR(書き込み可能なディレクトリ)を設定すると、読み込んだDVFの行をディスクに保存できます。再起動後はファイルからデータを再読み込みするため、すべてを再ダウンロードせずに済みます。提供されるデータは変わりません。
開発
npm install
npm run build
npm test # tests unitaires, sans réseau
npm run smoke # vérification live des API publiques
npm run examples # exemples live, commentés dans EXAMPLES.md
cd ui
npm install
npm run dev # console avec hot reload : http://localhost:5173
npm run build
npm start # console compilée + pont MCP : http://localhost:8787
npm run smoke # test de rendu avec fixtures réelles
ルートディレクトリから、ディレクトリを移動せずに同じコマンドを実行できます(npm run dev は ui/ に処理を委譲します)。
npm --prefix ui install
npm run dev # console avec hot reload
npm run ui:build # compile l'interface
npm run ui:start # console compilée + pont MCP sur un seul port
ライセンス
MIT。Copyright © 2026 Olivier LAVAUD(LICENSE を参照)。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。