プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

ImotAI — Bulgarian real estate

作者:pdimiev-progバージョン 0.2.0i★ –iクラウドで動く
レジストリ名bg.imotai/imotai

インストール

概要

作者による説明(英語の原文)

Bulgarian real-estate listings, district prices and monthly market reports from imotai.bg.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: クラウドで動く
  • トランスポート: Streamable HTTP
  • カテゴリ: 旅行・地図・天気

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

必要なもの

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

ウェブ、デスクトップ、モバイルのClaudeで使えます:

  1. Settings → Connectors を開く
  2. Add custom connector を押す
  3. 下のアドレスを貼り付けて Add を押す
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Add2https://…3
https://imotai.bg/mcp

ターミナルでこれを実行します

claude mcp add --transport http imotai https://imotai.bg/mcp

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "imotai": {
      "url": "https://imotai.bg/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "imotai": {
      "type": "http",
      "url": "https://imotai.bg/mcp"
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

ChatGPTがつなげるのは、インターネット上のサーバーだけです:

  1. ウェブ版のChatGPTを開き → Settings → Connectors (Apps)
  2. Create または Add を押す(プランによっては、先に Advanced で Developer mode をオンにする必要があります)
  3. 下のアドレスを貼り付け、名前を付けて保存する
  4. サインインを求められたら、作者のサービスにサインインする
SettingsConnectors1+ Create2https://…3
https://imotai.bg/mcp

メニューの名前は、プランや時期によって少し違うことがあります。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

ツールの名前と説明は、サーバーが2026年11月6日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。

  • list_districts

    List the districts (neighbourhoods) of a Bulgarian city that ImotAI has data for, with the count of active listings in each where a public price page exists. Call this first to learn which "district" values are valid for the other ImotAI tools in a given city.

  • search_properties

    Search Bulgarian real-estate listings on imotai.bg by city, district, property type, price range, area range and rooms. Returns up to 25 listings with structured fields, a link to each, and a district-level marketContext block (district average price per m² and how far this listi

  • get_property

    Get the full structured data for one ImotAI listing by its id or slug: price, price per m², area, rooms, floor, construction, heating, location (city/district), features, and an authoritative per-listing marketContext (district average and median price per m², deviation percent,

  • get_market_stats

    The market picture for a Bulgarian city or district on imotai.bg: number of offers, average and P25/P50/P75 for total price and price per m², a breakdown by room count, and the neighbouring districts for comparison. Apartments for sale. Returns { available: false } below 8 offers

  • estimate_value

    Rough price positioning for a property by city, district, type and area — based on the CURRENT ASKING PRICES of comparable active listings, not on closed transactions. Returns an estimate, a low–high range, a confidence level from sample size, and a mandatory disclaimer. Refuses

  • get_market_report

    The monthly ImotAI market report for a Bulgarian city: median asking price per m² of apartments for sale, change versus the previous month, the same per district, and the number of new listings in the month. Omit "month" for the latest report. Cite the "url" and "source" fields w

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月9日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名はドメイン imotai.bg で確認済みです(レジストリがドメインの所有を確認しています)

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • ✓ 合格

    エンドポイントが応答する

    91ミリ秒で応答(HTTP 200)

  • – 対象外

    OAuthでサインイン

    サインイン不要

  • ✓ 合格

    ツールの説明に隠れた指示がない

    6件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした

旅行・地図・天気のほかのサーバーとの比較i

  • このカテゴリのほかの1736件のうち0%よりスターが多い
  • このカテゴリのほかの1736件のうち80%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの1736件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

ImotAI — Bulgarian real estateは安全ですか?

当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。

パソコンで動きますか、それともクラウドですか?

作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(0.2.0)がレジストリに届いたのは7 日前です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。

代わりに使えるものは?

同じカテゴリには:IoMarkets Topup, Open Transfer Times, CLIO Geo

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:↓ 週あたりのダウンロードi★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

IoMarkets Topup

Travel eSIMs and mobile top-ups paid in USDC via x402.

作者:SergoVashakmadze初期今日更新

クラウドで動く✓ iomarkets.app

Open Transfer Times

Check if a flight connection is comfortable, tight or risky, with cited airport data.

作者:joelynli0110初期↓ 1477/週今日更新

パソコンで動く

CLIO Geo

MCP server for rendering GeoJSON vector layers into map images with basemaps

作者:iowarp成長中↓ 3511/週今日更新

パソコンで動く

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

ImotAI MCP Server

A Model Context Protocol server that gives AI agents (Claude Desktop, Claude Code, …) a read-only window onto Bulgarian real-estate data from imotai.bg.

It is a thin client over the site's public API — no API keys, no writes, no personal data (broker names, phones and free-text descriptions never leave the API). Numbers are based on current asking prices of active listings, not on closed transactions.

Use it online (no install)

The server runs at `https://imotai.bg/mcp` (Streamable HTTP, stateless, no key).

  • Claude (claude.ai / desktop app): Settings → Connectors → Add custom connector → https://imotai.bg/mcp
  • Claude Code: claude mcp add --transport http imotai https://imotai.bg/mcp
  • Cursor / VS Code / other clients (mcp.json):
{ "mcpServers": { "imotai": { "url": "https://imotai.bg/mcp" } } }
  • ChatGPT: add a custom connector with https://imotai.bg/mcp (developer mode, depending on plan).

Instructions in Bulgarian: https://imotai.bg/ii-asistenti. Online limits: 30 requests/min per client.

Status

v0.2.0. Six tools (list_districts, search_properties, get_property, get_market_stats, get_market_report, estimate_value), each with an explicit output allowlist; the property tools carry a marketContext block. Two transports: stdio (dist/index.js, local) and Streamable HTTP (src/http.ts, the hosted endpoint above). get_market_report returns the monthly ImotAI market report for a city (median asking price per m², month-over-month change, districts, new listings).

Data: CC BY 4.0 — credit ImotAI (imotai.bg).

Install

git clone https://github.com/pdimiev-prog/imotai-mcp.git

cd imotai-mcp npm install npm run build # produces dist/index.js

Use it in Claude Desktop

Add this to claude_desktop_config.json (use the absolute path to dist/index.js):

{

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

Restart Claude Desktop, then ask something like:

*Which districts does ImotAI track in Sofia, and how many active listings are in each?*

Claude will call list_districts and answer from the result.

Tools

list_districts

Input: { city: string } — a city slug ("sofia") or its Bulgarian name ("София").

Output:

{

"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." }

An unknown city returns { "error": "Unknown city \"…\". Recognised city slugs: …" }. Call this first — the slugs it returns are the valid district values for the other tools.

search_properties

Input:

FieldTypeNotes
citystring, requiredSlug or Bulgarian name
transactionType"sale" \"rent", required
districtstringSlug from list_districts
propertyTypeenumapartment, house, villa, studio, office, shop, warehouse, land, garage, other
minPrice / maxPricenumberEUR
minArea / maxAreanumberm²
roomsstringCSV, e.g. "2,3"; "5+" for 5 or more
limitinteger 1–25Default 10

Output: { results: [...], total, shown }. Each result has structured fields plus a url to the listing. No contact details, no free-text description, no coordinates.

get_property

Input: { id: string } — the listing's UUID or its URL slug.

Output: { found: true, url, ...structured fields, features: [] }, or { found: false, reason } if there is no such listing. Never returns the broker description, phone/name, or exact coordinates.

get_market_stats

Input: { city: string, district?: string } — slugs or Bulgarian names from list_districts. Omit district for city-level stats.

Output: { available: true, city, district, count, avgPrice, avgPricePerSqm, price: {p25,p50,p75}, pricePerSqm: {p25,p50,p75}, byRooms: [...], neighbouringDistricts: [...], basis, url }. Sale offers, all residential types. Below 8 offers → { available: false, count, reason }. Unknown city/district → { error } pointing at list_districts.

Market context

Both property tools attach a marketContext — "is this listing priced above or below its district":

  • `get_property.marketContext` is the authoritative per-listing figure from ImotAI's own calculation: districtAveragePricePerSqm, districtMedianPricePerSqm, deviationPercent (+ = pricier than the district), comparableActiveListings, basedOnCount, pricePageUrl.
  • `search_properties[].marketContext` is a lighter district-level approximation for scanning (one price-page lookup per distinct district): districtAveragePricePerSqm, deviationPercent, comparableListings, basis.

Both are null when the district has fewer than 8 offers or no price page. The two levels use slightly different denominators, so their numbers are close but not identical — the get_property figure is the precise one.

estimate_value

Input:

FieldTypeNotes
citystring, requiredSlug or Bulgarian name from list_districts
districtstring, requiredSlug or Bulgarian name from list_districts
propertyTypeenum, requiredapartment, house, villa, studio, land
areanumber, requiredLiving area in m²
roomsintegerAccepted but not used for filtering

Output:

{

"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" }

Below 5 comparable offers it returns { "available": false, "reason": "…", "disclaimer": "…" } — still with a disclaimer. An unknown city or district returns { "error": "…" } pointing at list_districts (no disclaimer there).

confidence is high at ≥ 50 comparable offers, medium at ≥ 15, otherwise low; it is always `low` when external market data was blended into the figure, and the disclaimer then says so.

⚠️ **This is positioning against the CURRENT ASKING PRICES of comparable active

listings — not an appraisal, not an official valuation, not based on closed

transactions.** The disclaimer field is present on every available result;

show it to the user verbatim whenever you cite any number from this tool.

Rate limiting

The server allows 60 downstream requests per minute per process (token bucket, refills continuously). Every call to imotai.bg/api counts — a search_properties that resolves three distinct districts spends four requests (one search + three price pages).

When the bucket is empty a tool returns, without throwing:

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

Wait about a minute and retry. The limit is per running server process; a single Claude Desktop client is one process. Override it with IMOTAI_RATE_LIMIT_PER_MIN if you run your own instance.

Configuration

Env varDefaultMeaning
IMOTAI_API_URLhttps://imotai.bg/apiBase URL of the ImotAI public API
IMOTAI_HTTP_TIMEOUT_MS15000Per-request timeout
IMOTAI_RATE_LIMIT_PER_MIN60Max downstream requests per minute (token bucket, per process)

How it works

stdio MCP server (Node ≥ 20, ESM). Each tool maps to one or two calls against the public imotai.bg/api endpoints and reshapes the response through an explicit field allowlist. No state, no cache, no credentials.

Licence

MIT.

PopNxに聞く