Zovo Tip Pool Calculator
A tip pool calculator and tip out calculator for restaurant, bar, cafe and salon staff.
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Bulgarian real-estate listings, district prices and monthly market reports from imotai.bg.
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
ใช้ได้ทั้ง Claude บนเว็บ แอปคอมพิวเตอร์ และมือถือ:
https://imotai.bg/mcpพิมพ์คำสั่งนี้ใน Terminal
claude mcp add --transport http imotai https://imotai.bg/mcpวางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"imotai": {
"url": "https://imotai.bg/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"imotai": {
"type": "http",
"url": "https://imotai.bg/mcp"
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ChatGPT ต่อได้เฉพาะ server ที่อยู่บนอินเทอร์เน็ต:
https://imotai.bg/mcpชื่อเมนูอาจต่างกันเล็กน้อยตามแพ็กเกจและรุ่นของแอป
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
ชื่อและคำอธิบายเครื่องมือตามที่ server ตอบมาเมื่อ 6 พ.ย. 2569 ผู้ทำเป็นคนเขียน ไม่ใช่เรา แสดงเป็นข้อความล้วน
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
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569
ชื่อใน registry ยืนยันโดเมน imotai.bg แล้ว (registry ตรวจความเป็นเจ้าของโดเมน)
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตอบกลับใน 91 ms (HTTP 200)
ไม่ต้องล็อกอิน
อ่านคำอธิบายเครื่องมือ 6 ตัวแล้ว ไม่พบคำสั่งแอบแฝงถึง AI
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 3 จาก 3 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก
รันบนคลาวด์ของผู้ทำ ต่อผ่านอินเทอร์เน็ตได้เลย ไม่ต้องลงโปรแกรม แต่ข้อมูลที่ส่งให้จะผ่านเซิร์ฟเวอร์ของผู้ทำ
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.0) เข้า registry 6 วันที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต่อผ่าน URL จึงใช้กับโปรแกรมที่รับ remote MCP ได้ เช่น ChatGPT ที่เปิดโหมดนักพัฒนา
ในหมวดเดียวกันมี Zovo Tip Pool Calculator, Zovo Mind Map, Acosta Curated Travel
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:↓ ดาวน์โหลดต่อสัปดาห์i★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
A tip pool calculator and tip out calculator for restaurant, bar, cafe and salon staff.
Turns an outline or a plan into a clean mind map you can print or download.
Search Acosta Curated Travel articles, browse upcoming group trips, and reach Ivone Acosta.
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
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.