Koskamo

Hotyata MCP

Hotyata MCP provides AI agents with access to real-time real estate and secondhand marketplace data for Batumi and Tbilisi. It enables searching for properties and classified items, retrieving detailed listings, fetching statistics, discovering residential complexes, and reporting issues through standardized Model Context Protocol tools.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Hotyata MCP logo, by HotyataVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by Hotyata
MCP endpoint (Streamable HTTP)
https://hotyata.com/mcp
Vendor documentation

What its tools do

9 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

9 of 9 have a description · 0 of 9 declare behavior hints · 9 of 9 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to hotyata.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Search for real estate listings with rich filters
  • Retrieve detailed information for specific properties
  • Search secondhand marketplace items via vector search
  • Discover residential complexes and new developments

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
Hotyata 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
9 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

9 advertised

search_real_estate
Advertised by the server during the last successful anonymous check.

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. - 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>

search_real_estate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "bbox": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "number"
          }
        }
      ],
      "description": "Bounding box rectangle: 'min_lng,min_lat,max_lng,max_lat' or [min_lng, min_lat, max_lng, max_lat]"
    },
    "city": {
      "type": "string",
      "default": "batumi",
      "description": "City name: 'batumi' or 'tbilisi'"
    },
    "page": {
      "type": "number",
      "default": 1,
      "description": "Page number (starting from 1)"
    },
    "sort": {
      "enum": [
        "newest",
        "cheapest",
        "expensive",
        "cheapest_sqm",
        "expensive_sqm",
        "area_desc",
        "area_asc"
      ],
      "type": "string",
      "default": "newest",
      "description": "Sort order: 'newest', 'cheapest', 'expensive', 'cheapest_sqm', 'expensive_sqm', 'area_desc', 'area_asc'"
    },
    "limit": {
      "type": "number",
      "default": 10,
      "maximum": 50,
      "description": "Number of listings to return (max 50)"
    },
    "query": {
      "type": "string",
      "description": "Keywords to search in title, description, street, or amenities (e.g. 'seaview', 'panoramic', 'owner', 'urgent')"
    },
    "rooms": {
      "type": [
        "number",
        "string"
      ],
      "description": "Number of rooms (e.g. 1 for studio/1-room, 2, 3, or comma-separated '2,3')"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional array of field names to include in each property object to save context tokens"
    },
    "has_gas": {
      "type": "boolean",
      "description": "Must have gas connection / gas heating"
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Filter by one or more source channels, platforms, portals, or Facebook group URLs. Examples: ['facebook marketplace'], ['ss.ge', 'myhome.ge'], ['https://www.facebook.com/groups/278563704483455/']"
    },
    "currency": {
      "enum": [
        "USD",
        "GEL"
      ],
      "type": "string",
      "default": "USD",
      "description": "Currency for price filtering ('USD' or 'GEL')"
    },
    "district": {
      "type": "string",
      "description": "District name or comma-separated list of districts (e.g. 'Old Batumi,Rustaveli' or 'Saburtalo,Vake')"
    },
    "sea_view": {
      "enum": [
        "none",
        "partial",
        "full",
        "any"
      ],
      "type": "string",
      "description": "Sea view filter: 'full' (panoramic), 'partial' (side), 'any' (full or partial), or 'none'"
    },
    "deal_type": {
      "enum": [
        "sale",
        "rent_long",
        "rent_daily",
        "pledge"
      ],
      "type": "string",
      "description": "Type of deal: 'sale', 'rent_long' (long-term monthly rent), 'rent_daily' (short-term daily rent), or 'pledge' (mortgage/lease)"
    },
    "max_floor": {
      "type": "number",
      "description": "Maximum floor number"
    },
    "max_price": {
      "type": "number",
      "description": "Maximum total price in selected currency"
    },
    "min_floor": {
      "type": "number",
      "description": "Minimum floor number (e.g. 3)"
    },
    "min_price": {
      "type": "number",
      "description": "Minimum total price in selected currency"
    },
    "complex_id": {
      "type": "number",
      "description": "Filter by residential complex ID"
    },
    "has_balcony": {
      "type": "boolean",
      "description": "Must have balcony"
    },
    "seller_type": {
      "enum": [
        "owner",
        "agent",
        "developer",
        "all"
      ],
      "type": "string",
      "description": "Filter by seller type: 'owner' (direct owner, no commission), 'developer', or 'agent'"
    },
    "exclude_orbi": {
      "type": "boolean",
      "description": "Exclude high-density Orbi City aparthotel listings"
    },
    "has_elevator": {
      "type": "boolean",
      "description": "Must have an elevator"
    },
    "heating_type": {
      "enum": [
        "central",
        "gas",
        "karma",
        "underfloor",
        "electric"
      ],
      "type": "string",
      "description": "Specific heating system type"
    },
    "is_furnished": {
      "type": "boolean",
      "description": "Furnished status"
    },
    "max_area_sqm": {
      "type": "number",
      "description": "Maximum area in square meters"
    },
    "min_area_sqm": {
      "type": "number",
      "description": "Minimum area in square meters"
    },
    "pets_allowed": {
      "type": "boolean",
      "description": "Pet-friendly rentals"
    },
    "max_price_sqm": {
      "type": "number",
      "description": "Maximum price per square meter in selected currency"
    },
    "min_price_sqm": {
      "type": "number",
      "description": "Minimum price per square meter in selected currency"
    },
    "property_type": {
      "enum": [
        "apartment",
        "house",
        "commercial",
        "land",
        "residential",
        "all"
      ],
      "type": "string",
      "description": "Property type filter (defaults to excluding parking)"
    },
    "max_year_built": {
      "type": "number",
      "description": "Maximum building construction/completion year"
    },
    "min_year_built": {
      "type": "number",
      "description": "Minimum building construction/completion year (e.g. 2018)"
    },
    "is_heritage_zone": {
      "type": "boolean",
      "description": "Filter properties located in Cultural Heritage Protection Zone (Old Batumi)"
    },
    "has_floor_heating": {
      "type": "boolean",
      "description": "Must have underfloor heating"
    },
    "renovation_status": {
      "type": "string",
      "description": "Filter by condition (comma-separated allowed): 'black_frame' (black box), 'white_frame' (white box), 'green_frame', 'renovated' (turnkey), 'needs_renovation'"
    },
    "construction_stage": {
      "type": "string",
      "description": "Filter by building stage (comma-separated allowed): 'off_plan' (katlavan / foundation / 2027+), 'under_construction', 'completed' (ready building)"
    },
    "near_metro_station": {
      "type": "string",
      "description": "Tbilisi metro station name filter"
    },
    "no_summer_increase": {
      "type": "boolean",
      "description": "Rentals with fixed year-round price (no summer hike)"
    },
    "max_distance_to_sea": {
      "type": "number",
      "description": "Maximum distance to the sea in meters (e.g. 150 for first line, 500)"
    },
    "min_distance_to_sea": {
      "type": "number",
      "description": "Minimum distance to the sea in meters"
    },
    "max_distance_to_metro": {
      "type": "number",
      "description": "Maximum distance to metro in meters (Tbilisi)"
    }
  }
}
get_real_estate_stats
Advertised by the server during the last successful anonymous check.

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>

get_real_estate_stats input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "city": {
      "type": "string",
      "default": "batumi",
      "description": "City name: 'batumi' or 'tbilisi'"
    },
    "rooms": {
      "type": [
        "number",
        "string"
      ],
      "description": "Filter by room count"
    },
    "has_gas": {
      "type": "boolean",
      "description": "Filter by gas connection"
    },
    "district": {
      "type": "string",
      "description": "Filter by specific district(s)"
    },
    "group_by": {
      "enum": [
        "district",
        "renovation_status",
        "construction_stage",
        "rooms",
        "seller_type",
        "complex",
        "none"
      ],
      "type": "string",
      "default": "district",
      "description": "Dimension to group statistics by"
    },
    "deal_type": {
      "enum": [
        "sale",
        "rent_long",
        "rent_daily",
        "pledge"
      ],
      "type": "string",
      "default": "sale",
      "description": "Deal type to analyze ('sale', 'rent_long', 'rent_daily')"
    },
    "seller_type": {
      "enum": [
        "owner",
        "agent",
        "developer",
        "all"
      ],
      "type": "string",
      "description": "Filter by seller type"
    },
    "exclude_orbi": {
      "type": "boolean",
      "description": "Exclude Orbi City listings from stats"
    },
    "property_type": {
      "enum": [
        "apartment",
        "house",
        "commercial",
        "land",
        "residential",
        "all"
      ],
      "type": "string",
      "description": "Property type filter"
    },
    "renovation_status": {
      "type": "string",
      "description": "Filter by renovation status ('black_frame', 'white_frame', 'green_frame', 'renovated', 'needs_renovation')"
    },
    "construction_stage": {
      "type": "string",
      "description": "Filter by construction stage ('off_plan', 'under_construction', 'completed')"
    }
  }
}
get_property_details
Advertised by the server during the last successful anonymous check.

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.

get_property_details input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "property_id": {
      "type": "number",
      "description": "Single unique property ID"
    },
    "property_ids": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "maxItems": 15,
      "description": "Batch array of up to 15 property IDs to fetch in one round-trip"
    }
  }
}
search_complexes
Advertised by the server during the last successful anonymous check.

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

search_complexes input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "city": {
      "type": "string",
      "default": "batumi",
      "description": "City name ('batumi' or 'tbilisi')"
    },
    "limit": {
      "type": "number",
      "default": 10,
      "maximum": 50,
      "description": "Max results (up to 50)"
    },
    "query": {
      "type": "string",
      "description": "Complex name or developer name (e.g. 'Alliance', 'Orbi', 'Horizons', 'Calligraphy', 'Next', 'Gumbati')"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional array of field names to return"
    },
    "has_gas": {
      "type": "boolean",
      "description": "Filter complexes with gas connection"
    },
    "district": {
      "type": "string",
      "description": "Filter by district name"
    },
    "delivery_year": {
      "type": "number",
      "description": "Filter by expected delivery year (e.g. 2025, 2026, 2027)"
    },
    "max_distance_to_sea": {
      "type": "number",
      "description": "Maximum distance to the sea in meters (e.g. 150 for first line, 500)"
    }
  }
}
get_complex_details
Advertised by the server during the last successful anonymous check.

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.

get_complex_details input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "complex_id": {
      "type": "number",
      "description": "Single residential complex ID"
    },
    "complex_ids": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "maxItems": 15,
      "description": "Batch array of up to 15 complex IDs to fetch in one call"
    }
  }
}
search_classified_items
Advertised by the server during the last successful anonymous check.

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>

search_classified_items input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "city": {
      "type": "string",
      "default": "batumi",
      "description": "City name ('batumi' or 'tbilisi')"
    },
    "page": {
      "type": "number",
      "default": 1,
      "description": "Page number (starting from 1)"
    },
    "sort": {
      "enum": [
        "relevance",
        "newest",
        "cheapest",
        "expensive"
      ],
      "type": "string",
      "description": "Sort order: 'relevance' (default when query is present), 'newest', 'cheapest', 'expensive'"
    },
    "limit": {
      "type": "number",
      "default": 10,
      "maximum": 50,
      "description": "Max listings to return (max 50)"
    },
    "query": {
      "type": "string",
      "description": "Search keywords, e.g. 'monitor 4K', 'router', 'electric heater', 'mechanical keyboard', 'iPhone 15'"
    },
    "fields": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Optional array of field names to return"
    },
    "intent": {
      "enum": [
        "WTS",
        "WTB",
        "GIFT",
        "RENT",
        "SERVICE"
      ],
      "type": "string",
      "default": "WTS",
      "description": "Listing intent: 'WTS' (For Sale, default), 'WTB' (Looking to buy), 'GIFT' (Free), 'RENT', 'SERVICE'"
    },
    "category": {
      "type": "string",
      "description": "Optional category substring filter (e.g. 'electronics', 'furniture', 'appliances', 'computers', 'transport')"
    },
    "currency": {
      "enum": [
        "USD",
        "GEL"
      ],
      "type": "string",
      "default": "USD",
      "description": "Currency for price filter ('USD' or 'GEL')"
    },
    "max_price": {
      "type": "number",
      "description": "Maximum price in selected currency"
    },
    "min_price": {
      "type": "number",
      "description": "Minimum price in selected currency"
    }
  }
}
get_item_details
Advertised by the server during the last successful anonymous check.

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

get_item_details input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "item_id": {
      "type": "number",
      "description": "Single classified item ID"
    },
    "item_ids": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "maxItems": 15,
      "description": "Batch array of up to 15 classified item IDs to fetch in one call"
    }
  }
}
execute_code_mode
Advertised by the server during the last successful anonymous check.

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>

execute_code_mode input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "code"
  ],
  "properties": {
    "code": {
      "type": "string",
      "description": "JavaScript function body to execute in the sandbox. Must return a JSON-serializable value via `return ...`."
    }
  }
}
report_issue
Advertised by the server during the last successful anonymous check.

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.

report_issue input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "entity_type",
    "issue_category",
    "explanation"
  ],
  "properties": {
    "entity_id": {
      "type": "string",
      "description": "ID or URL of the property, item, or complex (if applicable)"
    },
    "entity_type": {
      "enum": [
        "property",
        "item",
        "complex",
        "mcp_tool",
        "other"
      ],
      "type": "string",
      "description": "What entity has the issue"
    },
    "explanation": {
      "type": "string",
      "description": "Clear explanation of what is incorrect and what the correct information should be"
    },
    "agent_client": {
      "type": "string",
      "description": "Name of the AI assistant/agent (e.g. 'ChatGPT-4o', 'Claude-3.5', 'Cursor')"
    },
    "issue_category": {
      "enum": [
        "already_rented_or_sold",
        "wrong_price",
        "incorrect_location",
        "duplicate_listing",
        "spam_or_fraud",
        "broken_media",
        "schema_feedback",
        "other"
      ],
      "type": "string",
      "description": "Category of the reported issue"
    },
    "source_context": {
      "type": "string",
      "description": "How this issue was discovered (e.g. 'User called landlord and confirmed rented', 'Coordinates point to the sea')"
    }
  }
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
891 ms
95th percentile latency
891 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 891 ms · metadata changed · 9 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http hotyata-mcp https://hotyata.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add hotyata-mcp --url https://hotyata.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable hotyata-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "hotyata-mcp": {
      "url": "https://hotyata.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "hotyata-mcp": {
      "type": "streamableHttp",
      "url": "https://hotyata.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start hotyata-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "hotyata-mcp": {
      "type": "http",
      "url": "https://hotyata.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http hotyata-mcp https://hotyata.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://hotyata.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "hotyata-mcp": {
      "serverUrl": "https://hotyata.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Hotyata MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Hotyata MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing