MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Data access / search

Hotyata

Real estate and classifieds in Batumi & Tbilisi with rooftop geocoding and duplicate detection.

Checks passed
12 / 22

2 failed · 8 not measured

Median response
2307 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
9

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
004
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
310
Publisher identityCan the publisher be traced to its source?
312

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 2307 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-11-25, serverInfo.name Hotyata.

  • Pass
    Lists tools

    tools/list returned 9 tools.

  • Pass
    Current protocol

    Negotiated 2025-11-25. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 2307 ms over 1 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 2307 ms over 1 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    1 of 1 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Not measured
    Stable tool list

    Fewer than two successful probes in 30 days, so tool-list stability is not measured.

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    85 of 85 parameters have a description (100%). The bar is 80%.

  • Fail
    Safety hints

    9 tools set neither readOnlyHint nor destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Fail
    Source repo linked

    No repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-11-06T14:27:48.393799Z, within 180 days.

  • Not measured
    Open-source licence

    No GitHub repository to ask about a licence.

Start using Hotyata

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http hotyata https://hotyata.com/mcp

Capabilities

Tools 9

execute_code_mode

Execute a JavaScript snippet inside an isolated QuickJS WASM sandbox with direct synchronous/async access to the Hotyata SDK (`sdk`). Use this "MCP Code Mode" tool whenever you need to run multi-step queries, compare multiple categories/districts/stages, join complexes with properties, filter or aggregate results, and return only a compact final summary in a single round-trip. Available global `sdk` methods inside your script (can be called with or without `await`): - `sdk.searchProperties(params)` -> `{ total, page, limit, properties: [...] }` - `sdk.getPropertyStats(params)` -> `{ city, deal_type, group_by, total_matching_listings, groups: [...] }` - `sdk.getProperty(idOrArrayOfIds)` -> property details object or `{ properties: [...] }` - `sdk.searchComplexes(params)` -> `{ total, page, limit, complexes: [...] }` - `sdk.getComplex(idOrArrayOfIds)` -> complex details object or `{ complexes: [...] }` - `sdk.searchItems(params)` -> `{ total, page, limit, items: [...] }` - `sdk.getItem(idOrArrayOfIds)` -> item details object or `{ items: [...] }` <examples> // Example 1: Compare renovation status & off-plan (katlavan) sale dynamics in Batumi const byRenovation = sdk.getPropertyStats({ city: "batumi", deal_type: "sale", group_by: "renovation_status" }); const byStage = sdk.getPropertyStats({ city: "batumi", deal_type: "sale", group_by: "construction_stage" }); return { byRenovation: byRenovation.groups, byStage: byStage.groups }; // Example 2: Multi-search classifieds and return top 3 cheapest per item type const queries = ["4K monitor", "router", "electric heater", "mechanical keyboard"]; return queries.map(q => { const res = sdk.searchItems({ query: q, sort: "cheapest", limit: 3 }); return { query: q, total: res.total, cheapest: res.items.map(i => ({ id: i.id, title: i.title, price_gel: i.price_gel, price_usd: i.price_usd, url: i.canonical_url })) }; }); </examples> <hints> - Write a function body ending with a `return ...;` statement. - Maximum 15 SDK calls per execution. Memory limit: 32MB, CPU timeout: 5s. </hints>

Discovered
get_complex_details

Get detailed profile of one or up to 15 residential complexes including developer name, delivery year, address, rooftop coordinates, and counts & sample active properties currently for sale and rent.

Discovered
get_item_details

Get details for one or up to 15 secondhand classified items including full description, photo gallery, seller username, and original Telegram message link.

Discovered
get_property_details

Get complete specifications, full description, seller contact info (phone, contacts, source_url), photo URLs, rooftop coordinates, and complex affiliation for one or up to 15 properties in a single call.

Discovered
get_real_estate_stats

Aggregate real estate market statistics (count, average & median price USD, average & median price per sqm USD, min/max price, average area) grouped by district, renovation_status, construction_stage, rooms, seller_type, or complex. <hints> - Ideal for market analytics: comparing prices across city districts, or comparing 'black_frame' vs 'white_frame' vs 'renovated' vs 'off_plan' (katlavan). - Supports all search_real_estate filters (city, deal_type, district, renovation_status, construction_stage, rooms, has_gas, etc.) to slice the market before grouping. </hints>

Discovered
report_issue

Report an issue with data accuracy, stale or off-market listings, incorrect coordinates, spam, or tool usability limitations. AI agents should call this when finding inaccuracies or when human users report off-market listings.

Discovered
search_classified_items

Search deduplicated secondhand marketplace goods (electronics, monitors, routers, keyboards, heaters, furniture, vehicles, household items) aggregated across Telegram channels in Batumi and Tbilisi. <hints> - Powered by multilingual synonym expansion + semantic vector search: English queries (e.g. '4K monitor', 'WiFi router', 'electric heater', 'mechanical keyboard') automatically match Russian, English, and Georgian ads. - Avoid overly restrictive 'category' values unless needed; keyword query alone searches across all categories with hybrid semantic ranking. - Use sort='cheapest' to find lowest-priced items. </hints>

Discovered
search_complexes

Search residential developments and new building projects with developer details, delivery status, coordinates, distance to sea, and gas availability.

Discovered
search_real_estate

Search verified real estate listings in Batumi and Tbilisi (apartments, houses, commercial). <hints> - Returns compact objects with price_usd, price_sqm_usd, area_sqm, rooms, renovation_status, construction_stage, seller_type, heating_type, gas_status, is_heritage_zone, cadastral_code, year_built, developer_name, sea_view, distance_to_sea_m, has_gas, pets_allowed, no_summer_increase, address, latitude, longitude, photos, source_url, and canonical_url. - Also returns top-level shortlist_url (single link opening these exact returned properties on Hotyata's split-screen map) and web_search_url (link to all matching results on the map). Always share shortlist_url or web_search_url with the user so they can view all listings on one map in a single click. - When presenting results as a numbered list (#1, #2, ...), keep the same order as returned — the embedded interactive map widget numbers pins #1, #2, ... to match your text list. - Geo search: Use bbox='min_lng,min_lat,max_lng,max_lat' or [min_lng, min_lat, max_lng, max_lat] to search within a map rectangle. - Batumi districts: 'Old Batumi', 'Rustaveli', 'Khimshiashvili' (New Boulevard), 'Bagrationi', 'Javakhishvili', 'Agmashenebeli', 'Airport', 'Tamar', 'Makhinjauri', 'Gonio', 'Kvariati', 'Chakvi', 'Kobuleti'. - Tbilisi districts: 'Vake', 'Saburtalo', 'Vera', 'Mtatsminda', 'Chugureti' (Marjanishvili), 'Didube', 'Avlabari', 'Ortachala', 'Isani', 'Samgori', 'Gldani', 'Didi Dighomi', 'Old Tbilisi'. - Use sort='cheapest' or 'cheapest_sqm' to find the best deals without fetching multiple pages. - Use fields=['id','title','price_usd','price_sqm_usd','area_sqm','district','canonical_url'] to minimize token usage. - Filter by source channel/portal/group using sources=['facebook marketplace'], ['ss.ge', 'myhome.ge'], ['@batumiarendachat'], or Facebook group URLs ['https://www.facebook.com/groups/278563704483455/']. Unmonitored sources return an error. </hints>

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected2307 ms9