Temporal MCP Server
Time, timezone and duration tools — IANA zones, conversion, DST-correct date arithmetic.
Beschreibung vom Entwickler (englisches Original)
Bulgarian real-estate listings, district prices and monthly market reports from imotai.bg.
Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.
Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.
Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.
Du brauchst
Welche App nutzt du?
Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.
Funktioniert in Claude im Web, auf dem Desktop und auf dem Handy:
https://imotai.bg/mcpFühre das in deinem Terminal aus
claude mcp add --transport http imotai https://imotai.bg/mcpIn .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen
{
"mcpServers": {
"imotai": {
"url": "https://imotai.bg/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
In .vscode/mcp.json in deinem Projekt einfügen
{
"servers": {
"imotai": {
"type": "http",
"url": "https://imotai.bg/mcp"
}
}
}Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.
ChatGPT verbindet sich nur mit Servern im Internet:
https://imotai.bg/mcpMenünamen können sich je nach Tarif und mit der Zeit leicht unterscheiden.
Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.
Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.
Tool-Namen und -Beschreibungen genau so, wie der Server sie am 6. Nov. 2026 gemeldet hat. Geschrieben hat sie der Entwickler, nicht wir; wir zeigen sie als reinen Text.
list_districtsList 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_propertiesSearch 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_propertyGet 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_statsThe 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_valueRough 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_reportThe 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
Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 8. Nov. 2026
Der Registry-Name wurde über die Domain imotai.bg bestätigt (die Registry prüft, wem die Domain gehört)
Dieses Repo haben wir noch nicht von GitHub gelesen
Dieses Repo haben wir noch nicht von GitHub gelesen
Antwort in 91 ms (HTTP 200)
Keine Anmeldung nötig
Wir haben 6 Tool-Beschreibungen gelesen und keine versteckten Anweisungen an die KI gefunden
Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.
Er hat 3 von 3 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.
Die Registry nennt keinen erforderlichen Schlüssel, manche Server bitten dich aber bei der ersten Nutzung, dich anzumelden.
Er läuft in der Cloud des Entwicklers. Du verbindest dich übers Internet, ohne etwas zu installieren, aber was du sendest, läuft über die Server des Entwicklers.
Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.2.0) kam vor 6 Tagen in die Registry.
Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Er verbindet sich per URL, also funktionieren auch Apps, die Remote-MCP-Server akzeptieren, zum Beispiel ChatGPT im Entwicklermodus.
In derselben Kategorie: Temporal MCP Server, Simvito eSIM, DogPolicies
Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.
So liest du eine Karte:↓ Downloads pro Wochei★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti
Time, timezone and duration tools — IANA zones, conversion, DST-correct date arithmetic.
Compare travel eSIM plans and each local network (4G/5G), check phone support, get payment links.
Verified dog rules for California and Nevada travel: parks, beaches, hotels, fees, sourced and dated
Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.
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.
The server runs at `https://imotai.bg/mcp` (Streamable HTTP, stateless, no key).
https://imotai.bg/mcpclaude mcp add --transport http imotai https://imotai.bg/mcpmcp.json):{ "mcpServers": { "imotai": { "url": "https://imotai.bg/mcp" } } }
https://imotai.bg/mcp (developer mode, depending on plan).Instructions in Bulgarian: https://imotai.bg/ii-asistenti. Online limits: 30 requests/min per client.
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).
git clone https://github.com/pdimiev-prog/imotai-mcp.git
cd imotai-mcp npm install npm run build # produces dist/index.js
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.
list_districtsInput: { 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_propertiesInput:
| Field | Type | Notes | |
|---|---|---|---|
city | string, required | Slug or Bulgarian name | |
transactionType | "sale" \ | "rent", required | |
district | string | Slug from list_districts | |
propertyType | enum | apartment, house, villa, studio, office, shop, warehouse, land, garage, other | |
minPrice / maxPrice | number | EUR | |
minArea / maxArea | number | m² | |
rooms | string | CSV, e.g. "2,3"; "5+" for 5 or more | |
limit | integer 1–25 | Default 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_propertyInput: { 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_statsInput: { 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.
Both property tools attach a marketContext — "is this listing priced above or below its district":
districtAveragePricePerSqm, districtMedianPricePerSqm, deviationPercent (+ = pricier than the district), comparableActiveListings, basedOnCount, pricePageUrl.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_valueInput:
| Field | Type | Notes |
|---|---|---|
city | string, required | Slug or Bulgarian name from list_districts |
district | string, required | Slug or Bulgarian name from list_districts |
propertyType | enum, required | apartment, house, villa, studio, land |
area | number, required | Living area in m² |
rooms | integer | Accepted 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
disclaimerfield is present on everyavailableresult;
show it to the user verbatim whenever you cite any number from this tool.
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.
| Env var | Default | Meaning |
|---|---|---|
IMOTAI_API_URL | https://imotai.bg/api | Base URL of the ImotAI public API |
IMOTAI_HTTP_TIMEOUT_MS | 15000 | Per-request timeout |
IMOTAI_RATE_LIMIT_PER_MIN | 60 | Max downstream requests per minute (token bucket, per process) |
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.
MIT.