mcpField
I
ImotAI — Bulgarian real estate

ImotAI — Bulgarian real estate

リモート
imotai.bgビジネス・マーケティング01 週間前に更新
リポジトリ公式サイト

ImotAI — Bulgarian real estate について

ImotAIは、imotai.bgのブルガリア不動産物件と市場データをエージェントに提供する読み取り専用MCPサーバーです。物件検索、地区統計、価格推定に対応し、成約価格ではなく販売中物件の希望価格を基準にします。

主な機能

  1. 01都市と価格掲載地区を一覧
  2. 02売買・賃貸物件を検索
  3. 03地区の市場情報付きで物件を表示
  4. 04月次レポートと市場統計を取得
  5. 05類似物件から価格を推定

活用シーン

  1. 01都市と予算で物件を探す
  2. 02地区間の希望価格を比較
  3. 03都市市場の月ごとの変化を確認
  4. 04類似物件を参考に価格を推定

MCP 対応

MCPサーバーは、Streamable HTTPまたはローカルstdioで、読み取り専用の物件検索、市場統計、レポート、価格推定ツールを提供します。APIキーは不要です。出力項目は許可リストで制限され、仲介者の連絡先、説明文、正確な座標は含みません。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://imotai.bg/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

詳細

ImotAI MCP サーバー

AI エージェント(Claude Desktop、Claude Code など)に、imotai.bg のブルガリア不動産データを読み取り専用で提供する Model Context Protocol サーバーです。

サイトの公開 API を利用する薄型のクライアントです。API キーは不要で、書き込みは行わず、個人データ(仲介業者の名前、電話番号、自由記述の説明)が API の外に出ることはありません。数値は成約価格ではなく、現在公開中の物件の希望価格に基づいています。

オンラインで使う(インストール不要)

サーバーは https://imotai.bg/mcp で稼働しています(Streamable HTTP、ステートレス、キー不要)。

  • Claude(claude.ai/デスクトップアプリ):Settings → Connectors → Add custom connector → https://imotai.bg/mcp
  • Claude Code:claude mcp add --transport http imotai https://imotai.bg/mcp
  • Cursor/VS Code/その他のクライアント(mcp.json):
{ "mcpServers": { "imotai": { "url": "https://imotai.bg/mcp" } } }
  • ChatGPT:https://imotai.bg/mcp を使ってカスタムコネクターを追加します(プランによっては開発者モードが必要です)。

ブルガリア語の手順:https://imotai.bg/ii-asistenti。オンライン利用の制限:クライアントあたり毎分30リクエスト。

ステータス

v0.2.0。 6つのツール(list_districts、search_properties、get_property、get_market_stats、get_market_report、estimate_value)があり、それぞれに明示的な出力許可リストを設定しています。物件関連のツールには marketContext ブロックが含まれます。トランスポートは2種類です。stdio(dist/index.js、ローカル)と Streamable HTTP(src/http.ts、上記のホスト済みエンドポイント)です。get_market_report は、都市の月次ImotAI市場レポート(中央値の希望価格/m²、前月比、地区、新規物件)を返します。

データ:CC BY 4.0 — ImotAI(imotai.bg)のクレジット表記が必要です。

インストール

git clone https://github.com/pdimiev-prog/imotai-mcp.git
cd imotai-mcp
npm install
npm run build   # produces dist/index.js

Claude Desktop で使う

claude_desktop_config.json に以下を追加します(dist/index.js には絶対パスを指定してください)。

{
  "mcpServers": {
    "imotai": {
      "command": "node",
      "args": ["/absolute/path/to/imotai-mcp/dist/index.js"],
      "env": { "IMOTAI_API_URL": "https://imotai.bg/api" }
    }
  }
}

Claude Desktop を再起動し、次のように質問します。

ImotAI がソフィアで追跡している地区と、各地区の公開中の物件数を教えてください。

Claude は list_districts を呼び出し、その結果に基づいて回答します。

ツール

list_districts

入力: { city: string } — 都市のスラッグ("sofia")またはブルガリア語の都市名("София")。

出力:

{
  "city": { "slug": "sofia", "name": "София" },
  "districts": [
    { "name": "Лозенец", "slug": "lozenets", "activeListings": 64 },
    { "name": "Витоша",  "slug": "vitosha",  "activeListings": null }
  ],
  "note": "activeListings is filled only for districts with a public price page (>= 8 offers); a null count does not mean zero."
}

都市が見つからない場合は、{ "error": "Unknown city \"…\". Recognised city slugs: …" } を返します。まずこのツールを呼び出してください。返されるスラッグは、他のツールで有効な district 値です。

search_properties

入力:

フィールド型備考
citystring、必須スラッグまたはブルガリア語の都市名
transactionType"sale" | "rent"、必須
districtstringlist_districts が返すスラッグ
propertyTypeenumapartment、house、villa、studio、office、shop、warehouse、land、garage、other
minPrice / maxPricenumberEUR
minArea / maxAreanumberm²
roomsstringCSV。例:"2,3"。5室以上の場合は "5+"
limitinteger 1–25デフォルトは10

出力: { results: [...], total, shown }。各結果には、構造化フィールドと物件への url が含まれます。連絡先情報、自由記述の説明、座標は含まれません。

get_property

入力: { id: string } — 物件のUUIDまたはURLスラッグ。

出力: { found: true, url, ...structured fields, features: [] }。該当する物件がない場合は { found: false, reason } を返します。仲介業者の説明、電話番号/名前、正確な座標は返しません。

get_market_stats

入力: { city: string, district?: string } — list_districts が返すスラッグまたはブルガリア語の都市名・地区名。都市全体の統計を取得するには、district を省略します。

出力: { available: true, city, district, count, avgPrice, avgPricePerSqm, price: {p25,p50,p75}, pricePerSqm: {p25,p50,p75}, byRooms: [...], neighbouringDistricts: [...], basis, url }。住宅タイプ全般の売買物件が対象です。物件が8件未満の場合は { available: false, count, reason } を返します。都市または地区が見つからない場合は、list_districts を案内する { error } を返します。

市場の概要

どちらの物件ツールにも marketContext が付与されます。「この掲載物件の価格は、地区の相場より高いか低いか」を示します。

  • get_property.marketContext は、ImotAI 独自の計算による、掲載物件ごとの信頼性の高い数値です。districtAveragePricePerSqm、districtMedianPricePerSqm、deviationPercent(+は地区の相場より高いことを示します)、comparableActiveListings、basedOnCount、pricePageUrl が含まれます。
  • search_properties[].marketContext は、検索結果を確認するための、地区単位の簡易的な推定値です(地区ごとに価格ページを1回参照します)。districtAveragePricePerSqm、deviationPercent、comparableListings、basis が含まれます。

地区の掲載物件が8件未満の場合、または価格ページがない場合は、どちらも null になります。2つの値では分母がわずかに異なるため、数値は近いものの一致しません。正確な値は get_property のものです。

estimate_value

入力:

フィールド型注記
citystring、必須list_districts にあるスラッグまたはブルガリア語の名称
districtstring、必須list_districts にあるスラッグまたはブルガリア語の名称
propertyTypeenum、必須apartment、house、villa、studio、land
areanumber、必須居住面積(m²)
roomsinteger指定できますが、フィルタリングには使用されません

出力:

{
  "available": true,
  "estimate": 208000,
  "rangeLow": 184000,
  "rangeHigh": 240000,
  "basedOnCount": 40,
  "confidence": "medium",          // from sample size; forced "low" for the market blend
  "disclaimer": "…",               // ALWAYS present — show verbatim
  "referenceUrl": "https://imotai.bg/ceni/sofia/lozenets"
}

比較可能な掲載物件が5件未満の場合、{ "available": false, "reason": "…", "disclaimer": "…" } を返します。この場合も disclaimer が含まれます。不明な市または地区を指定すると、list_districts を参照する { "error": "…" } を返します(この場合、disclaimer は含まれません)。

比較可能な掲載物件が50件以上の場合、confidence は high、15件以上の場合は medium、それ未満の場合は low です。外部の市場データが数値に反映された場合は、常に low となり、その旨が disclaimer に記載されます。

⚠️ これは、比較可能な掲載中の物件の現在の希望価格に対する位置付けです。査定でも、公式評価でも、成約取引に基づくものでもありません。 available の結果にはすべて disclaimer フィールドが含まれます。このツールの数値を引用する場合は、必ずその内容を変更せずにユーザーに提示してください。

レート制限

サーバーは、プロセスごとに1分あたり60件の下流リクエストを許可します(トークンバケット方式で、継続的に補充されます)。imotai.bg/api への呼び出しはすべてカウントされます。3つの地区を解決する search_properties は、4件のリクエストを消費します(検索1件+価格ページ3件)。

トークンバケットが空の場合、ツールは例外をスローせず、次を返します。

{ "error": "Твърде много заявки за кратко — изчакайте минута." }

約1分待ってから再試行してください。制限は実行中のサーバープロセスごとに適用されます。Claude Desktop クライアントは1つのプロセスです。独自のインスタンスを実行する場合は、IMOTAI_RATE_LIMIT_PER_MIN で上書きできます。

設定

環境変数デフォルト意味
IMOTAI_API_URLhttps://imotai.bg/apiImotAI 公開 API のベース URL
IMOTAI_HTTP_TIMEOUT_MS15000リクエストごとのタイムアウト
IMOTAI_RATE_LIMIT_PER_MIN601分あたりの下流リクエスト最大数(トークンバケット方式、プロセスごと)

動作の仕組み

stdio MCP サーバー(Node ≥ 20、ESM)です。各ツールは、公開されている imotai.bg/api エンドポイントに対して1~2回の呼び出しを行い、明示的に許可したフィールドのリストに基づいてレスポンスを整形します。状態、キャッシュ、認証情報は使用しません。

ライセンス

MIT。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。