
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).
概览
实时搜索罗马尼亚三个网站的租房信息,并提取供暖、停车和步行距离等细节。
- 功能
- 并行搜索 storia.ro、publi24.ro 和 lajumate.ro 上罗马尼亚各地的出租房源和停车位,合并结果并去除重复项和非出租信息。工具包括带价格、房间数、供暖、停车、仅个人房东和关键词筛选的 search_rentals,针对单个广告链接的 get_listing_details,search_parking,以及用于解析模糊地名的 find_locality。它会阅读广告正文以推断供暖类型、停车情况、个人房东还是中介,并估算到指定地点的步行距离。所有工具均为只读,每条结果都带有原始广告链接。
- 适用场景
- 适合在罗马尼亚找房时,让助手一次查询多个房源网站、使用网站本身不提供的筛选条件,并从自由文本中读取集中供暖或是否含停车位等细节。也可作为普通命令行工具进行同样的搜索。
- 运行要求
- 通过 uv/uvx 在本地运行,首次使用时下载软件包及其 Python;无需账号、API 密钥或环境变量。可选环境变量用于配置列伊/欧元汇率、请求间隔、用户代理和缓存目录。需要访问房源网站和 OpenStreetMap 地理编码的网络连接。仅支持桌面端 MCP 客户端。
安装
在 SourceWeft 中
- 打开 控制台中的 Kira — Romanian rentals,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
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.
"Find me a 2-room flat in Cluj under 500 €, own boiler, with parking, max 20 minutes on foot from UMF."
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
Check with claude mcp list → kira: ... ✓ Connected.
Claude Desktop
- Settings → Developer → Edit Config (opens
claude_desktop_config.json). - Paste (merge with what is there):
- 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:
Codex CLI
~/.codex/config.toml:
Other / remote clients (HTTP)
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
All tools are read-only. Every result carries the original ad URL.
CLI
Configuration
Sources and limits
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
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- v0.1.1最新Oct 10, 2026
