Kira — Romanian rentals

io.github.Cezart3v0.1.1更新於 Oct 10, 2026

Live search of apartment rentals in any Romanian city, town or commune (storia, publi24, lajumate).

概覽

AI 產生的概覽

即時搜尋羅馬尼亞三個網站的租屋資訊,並擷取暖氣、停車與步行距離等細節。

功能
平行搜尋 storia.ro、publi24.ro 與 lajumate.ro 上羅馬尼亞各地的出租物件與停車位,合併結果並移除重複項目與非出租資訊。工具包括可依價格、房間數、暖氣、停車、僅個人房東與關鍵字篩選的 search_rentals,針對單一廣告連結的 get_listing_details,search_parking,以及用來解析模糊地名的 find_locality。它會閱讀廣告內文以推斷暖氣類型、停車情況、個人房東或仲介,並估算到指定地點的步行距離。所有工具皆為唯讀,每筆結果都附上原始廣告連結。
適用情境
適合在羅馬尼亞找租屋時,讓助理一次查詢多個物件網站、套用網站本身沒有的篩選條件,並從自由文字中讀取集中式暖氣或是否含停車位等細節。也可當作一般命令列工具進行相同搜尋。
執行需求
透過 uv/uvx 在本機執行,首次使用時會下載套件與其 Python;不需要帳號、API 金鑰或環境變數。選用環境變數可設定列伊/歐元匯率、請求間隔、使用者代理與快取目錄。需要連線至物件網站與 OpenStreetMap 地理編碼的網路存取。僅支援桌面版 MCP 用戶端。
安裝前請注意
它會擷取第三方物件網站,因此結果只涵蓋市場的一大部分而非全部,且部分網站會阻擋自動存取。它鎖定個人找屋用途,不適合大量蒐集,README 建議在其他用途前先查看各網站條款。回傳文字中的電話號碼與電子郵件會被遮蔽,使用者需在原網站聯絡房東。步行距離為估算值。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Kira — Romanian rentals,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

kira-mcp

[ci] [PyPI] [MIT] [python] [MCP]

Ask your AI to find you a flat to rent in Romania — any city, town or commune.

[Demo: asking Claude Code for a flat, kira-mcp searches the sites live]

An MCP server (and a CLI) that searches storia.ro, publi24.ro and lajumate.ro live, merges the results, removes duplicates and non-rentals, and reads the ad text for the things the site filters don't give you: heating type, parking, private owner vs agency, and walking distance to a place you care about.

Works with Claude (Code & Desktop), Cursor, VS Code, Windsurf, Gemini CLI, Codex and any other MCP client. Also usable as a plain CLI.

🇷🇴 Ghid în română

"Find me a 2-room flat in Cluj under 500 €, own boiler, with parking, max 20 minutes on foot from UMF."

text
$ kira search Brasov --rooms 2 --max-price 500 --heating centrala_proprie --limit 3Brașov, Brașov — 10 matching, showing 3  storia: ok (74 fetched, 374 on site)  publi24: ok (24 fetched)  lajumate: ok (56 fetched, 382 on site)
 1. Studio Maurer Villas partial mobilat    500 EUR | 2 cam | 45 mp | heating: centrala_proprie | parking: included    Tractorul, Brasov, Brasov    https://www.storia.ro/ro/oferta/studio-maurer-villas-partial-mobilat-IDIPoX 2. Apartament pe 2 niveluri, 62 mp, zona Faget-Tractorul    400 EUR | 2 cam | 62 mp | heating: centrala_proprie    ...

Why

Romanian rental sites each cover part of the market, their filters are thin, and the details that decide a viewing — centrală proprie or termoficare? is the parking spot included or "posibilitate de parcare în zonă"? — live in free text. kira-mcp does the tab-juggling and the reading, so an agent can answer the question you actually asked.

Features

  • All of Romania: 3,181 localities (municipii, orașe, comune) from Wikidata. Diacritics optional, common shortcuts understood (cluj, tg mures, buc), ambiguous names resolved (Floresti, Prahova).
  • 3 sites in parallel, deduplicated across sites (the same flat posted on two sites shows once, with also_listed_on).
  • Filters: price (EUR; RON converted), rooms, heating, parking, private owner, keywords.
  • Text extraction tuned on real Romanian ads: heating (centrala_proprie / termoficare), parking (included, likely_included, area_possible, none), rooms, surface, floor, street. When a filter needs it, the full ad is read, not just the snippet.
  • Walking distance from any place (near="UMF"), geocoded with OpenStreetMap, with a Google Maps directions link.
  • Drops non-rentals: sale ads, parking-only ads, hotel-style short stays.
  • Parking spots search (search_parking).
  • Privacy: phone numbers and e-mails are redacted from returned text. The user contacts the owner on the original site.

Quick start (5 minutes)

Step 1 — install uv (once)

kira-mcp runs through uv, which downloads it and its Python on first use. Nothing else to install.

  • Windows (PowerShell): powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  • macOS / Linux: curl -LsSf https://astral.sh/uv/install.sh | sh

Close and reopen the terminal, then check: uvx --version.

Step 2 — connect it to your AI

Claude Code
bash
claude mcp add kira -s user -- uvx kira-rentals-mcp

Check with claude mcp list → kira: ... ✓ Connected.

Claude Desktop
  1. Settings → Developer → Edit Config (opens claude_desktop_config.json).
  2. Paste (merge with what is there):
json
{  "mcpServers": {    "kira": {      "command": "uvx",      "args": ["kira-rentals-mcp"]    }  }}
  1. Quit Claude Desktop completely (tray icon → Quit) and start it again. "kira" appears under the tools/connectors menu.

If it says the server failed, use the full path of uvx as command (where uvx on Windows, which uvx on macOS — e.g. C:\Users\you\.local\bin\uvx.exe).

Cursor / Windsurf / Gemini CLI

Same JSON as Claude Desktop, in ~/.cursor/mcp.json, ~/.codeium/windsurf/mcp_config.json or ~/.gemini/settings.json.

VS Code (Copilot agent mode)

.vscode/mcp.json in your workspace:

json
{  "servers": {    "kira": {      "type": "stdio",      "command": "uvx",      "args": ["kira-rentals-mcp"]    }  }}
Codex CLI

~/.codex/config.toml:

toml
[mcp_servers.kira]command = "uvx"args = ["kira-rentals-mcp"]
Other / remote clients (HTTP)
bash
uvx kira-rentals-mcp --transport streamable-http --port 8000

serves MCP at http://localhost:8000/mcp.

Step 3 — ask

Just talk to it, in English or Romanian:

  • "Caută-mi o garsonieră în Sibiu sub 350 €, cu centrală proprie."
  • "2-room flat in Timișoara, max 500 €, private owner, sorted by price."
  • "Apartamente cu 2 camere în Cluj la max 20 de minute pe jos de UMF."
  • "Is parking included in this one? "
  • "Loc de parcare de închiriat în Brașov sub 60 €."

The first call takes a few extra seconds while uv downloads the package.

No MCP? Use the agent skill or the CLI

  • Agent skill: copy skills/romania-rentals/ into your skills folder (e.g. ~/.claude/skills/). It teaches the agent when to search and how to read the results, via the MCP tools or the CLI.
  • CLI: see below.

Tools

ToolWhat it does
search_rentalsSearch one locality. Filters: min_price, max_price (EUR/month), rooms, heating, parking, owner_only, keywords, near + max_walk_minutes, sort (newest, price_asc, price_desc, distance), limit.
get_listing_detailsFull description, photos, heating/parking with confidence, for one ad URL.
search_parkingParking spots / garages for rent in a locality.
find_localityResolve an ambiguous or misspelled place name; lists candidates with county.

All tools are read-only. Every result carries the original ad URL.

CLI

bash
uvx --from kira-rentals-mcp kira search "Cluj-Napoca" --rooms 2 --max-price 500 --near UMF --max-walk 20 --sort distancekira search Iasi --heating centrala_proprie --parking included likely_includedkira listing https://www.storia.ro/ro/oferta/...kira parking Brasov --max-price 80kira find Florestikira --json search Sibiu        # machine-readable

Configuration

Env varDefault
KIRA_RON_PER_EUR5.0Exchange rate for RON prices.
KIRA_REQUEST_DELAY1.2Seconds between requests to the same site.
KIRA_USER_AGENTkira-mcp/<version> (+repo url)
KIRA_CACHE_DIROS cache dirWhere geocoding results are cached.

Sources and limits

SiteStatus
storia.ro✅ server-side price/room filters, pagination
publi24.ro✅ newest page per search
lajumate.ro✅ pagination
olx.ro❌ blocks automated access (HTTP 403)
imobiliare.ro❌ blocks automated access (HTTP 403)

kira-mcp does not try to get around a site that blocks it. Results are therefore a large share of the market, not all of it — the tool says so in every response.

Be a good citizen. kira-mcp identifies itself, waits between requests, caches pages for 10 minutes, fetches only what one search needs and returns links back to the sites. It is meant for personal flat-hunting, not bulk harvesting. Check each site's terms before using it for anything else.

Distances are estimates (straight line × 1.3, walking 4.7 km/h). They use the location the poster entered; an ad with only a neighbourhood gets a district-precision distance, an ad with neither is listed without one.

Development

bash
git clone https://github.com/Cezart3/kira-mcp && cd kira-mcpuv sync --group devuv run pytest            # offline, against synthetic fixturesKIRA_LIVE=1 uv run pytest -m live   # against the real sitesuv run ruff check .

The locality list is rebuilt with uv run python scripts/build_localities.py.

Site parsers live in src/kira_mcp/sites/. Adding a site = one class with search_rentals and fetch_detail; see sites/base.py.

Credits

  • Locality data: Wikidata (CC0).
  • Geocoding: Nominatim / © OpenStreetMap contributors (ODbL), at ≤1 request/second, cached.
  • Extraction rules grew out of Kira, a personal flat-hunting bot.

License

MIT © 2026 Cezar Tocaciu

來源:README.md,提交 be79ba0

工具

0
工具後設資料尚未被收錄。

版本歷史

1
  1. v0.1.1最新Oct 10, 2026