Bulgarian real-estate listings, district prices and monthly market reports from imotai.bg.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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 below 5 comparable offers. You MUST show the "disclaimer" field to the user verbatim whenever you cite any number from this tool. Never call this an official or precise property valuation.
Living area in m².
City slug ("sofia") or Bulgarian name.
District slug or name from list_districts.
Accepted but not used for filtering.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http imotai https://imotai.bg/mcp
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 below 5 comparable offers. You MUST show the "disclaimer" field to the user verbatim whenever you cite any number from this tool. Never call this an official or precise property valuation.
| Argument | Type | Description |
|---|---|---|
| area* | number | Living area in m². |
| city* | string | City slug ("sofia") or Bulgarian name. |
| rooms | integer | Accepted but not used for filtering. |
| district* | string | District slug or name from list_districts. |
| propertyType* | string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city",
"district",
"propertyType",
"area"
],
"properties": {
"area": {
"type": "number",
"description": "Living area in m².",
"exclusiveMinimum": 0
},
"city": {
"type": "string",
"minLength": 1,
"description": "City slug (\"sofia\") or Bulgarian name."
},
"rooms": {
"type": "integer",
"description": "Accepted but not used for filtering.",
"exclusiveMinimum": 0
},
"district": {
"type": "string",
"minLength": 1,
"description": "District slug or name from list_districts."
},
"propertyType": {
"enum": [
"apartment",
"house",
"villa",
"studio",
"land"
],
"type": "string"
}
},
"additionalProperties": false
}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 when you use the numbers.
| Argument | Type | Description |
|---|---|---|
| city* | string | City slug ("plovdiv") or Bulgarian name ("Пловдив"). |
| month | string | Report month as YYYY-MM, e.g. "2026-10". Omit for the latest. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"minLength": 1,
"description": "City slug (\"plovdiv\") or Bulgarian name (\"Пловдив\")."
},
"month": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}$",
"description": "Report month as YYYY-MM, e.g. \"2026-10\". Omit for the latest."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| city* | string | City slug ("sofia") or Bulgarian name. |
| district | string | District slug or name from list_districts; omit for city-level stats. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"minLength": 1,
"description": "City slug (\"sofia\") or Bulgarian name."
},
"district": {
"type": "string",
"description": "District slug or name from list_districts; omit for city-level stats."
}
},
"additionalProperties": false
}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, comparable active count). Does NOT return the broker free-text description, contact details, or exact coordinates.
| Argument | Type | Description |
|---|---|---|
| id* | string | The listing id (UUID) or its URL slug. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"minLength": 1,
"description": "The listing id (UUID) or its URL slug."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| city* | string | City slug ("sofia") or its Bulgarian name ("София"). |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city"
],
"properties": {
"city": {
"type": "string",
"minLength": 1,
"description": "City slug (\"sofia\") or its Bulgarian name (\"София\")."
}
},
"additionalProperties": false
}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 listing deviates from it). No contact details or free-text descriptions.
| Argument | Type | Description |
|---|---|---|
| city* | string | City slug ("sofia") or Bulgarian name. |
| limit | integer | Default 10, max 25. |
| rooms | string | CSV of room counts, e.g. "2,3"; "5+" for 5 or more. |
| maxArea | number | |
| minArea | number | |
| district | string | District slug from list_districts, e.g. "lozenets". |
| maxPrice | number | |
| minPrice | number | |
| propertyType | string | |
| transactionType* |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 1, 2026.
No readOnlyHint / destructiveHint annotations, so clients can't tell a read from a write without asking.
Fix: Add annotations to each tool, e.g. { readOnlyHint: true } for tools that only read.
| string |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"city",
"transactionType"
],
"properties": {
"city": {
"type": "string",
"minLength": 1,
"description": "City slug (\"sofia\") or Bulgarian name."
},
"limit": {
"type": "integer",
"maximum": 25,
"minimum": 1,
"description": "Default 10, max 25."
},
"rooms": {
"type": "string",
"description": "CSV of room counts, e.g. \"2,3\"; \"5+\" for 5 or more."
},
"maxArea": {
"type": "number",
"exclusiveMinimum": 0
},
"minArea": {
"type": "number",
"exclusiveMinimum": 0
},
"district": {
"type": "string",
"description": "District slug from list_districts, e.g. \"lozenets\"."
},
"maxPrice": {
"type": "number",
"exclusiveMinimum": 0
},
"minPrice": {
"type": "number",
"exclusiveMinimum": 0
},
"propertyType": {
"enum": [
"apartment",
"house",
"villa",
"studio",
"office",
"shop",
"warehouse",
"land",
"garage",
"other"
],
"type": "string"
},
"transactionType": {
"enum": [
"sale",
"rent"
],
"type": "string"
}
},
"additionalProperties": false
}