{"ok":true,"site":{"host":"infogatel2.github.io","url":"https://infogatel2.github.io/freespirits-realestate-webmcp/","type":"live","desc":"FreeSpirits Real Estate","tools":[{"name":"search_properties","kind":"answer","impl":"imperative","description":"Use this first for property-discovery requests. Search available real-estate listings using structured criteria such as location, price, bedrooms, property type, renovation status, and features. Returned summaries already include enough facts for normal comparison: stable property ID, title, neighborhood, price, size, bedrooms, renovation status, features, and listing URL. If the user asks to compare the best options, pass the returned IDs directly to compare_properties; do not call get_property_details merely to compare them.","title":"Search properties","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"transactionType":{"type":"string","enum":["rent","sale"],"description":"Whether the user wants to rent or buy."},"location":{"type":"string","description":"City or neighborhood, for example Thessaloniki or Toumba."},"minPrice":{"type":"number","minimum":0},"maxPrice":{"type":"number","minimum":0},"minBedrooms":{"type":"integer","minimum":0},"maxBedrooms":{"type":"integer","minimum":0},"propertyTypes":{"type":"array","items":{"type":"string"}},"renovated":{"type":"boolean"},"features":{"type":"array","items":{"type":"string"}},"limit":{"type":"integer","minimum":1,"maximum":20,"default":10}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/freespirits-realestate-webmcp/"},{"name":"get_property_details","kind":"answer","impl":"imperative","description":"Optional deep-inspection tool for one property. Use only when the user explicitly asks for additional facts that are not already present in search_properties or compare_properties. Do NOT call this tool merely to choose the top-ranked property, save a favorite, or prepare an enquiry after a comparison; those steps can proceed directly from the comparison result.","title":"Get property details","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"propertyId":{"type":"string","description":"Stable property ID returned by search_properties."}},"required":["propertyId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/freespirits-realestate-webmcp/"},{"name":"compare_properties","kind":"act","impl":"imperative","description":"Use after search_properties when the user asks for the best options or a comparison. Compare 2–5 property IDs with a transparent deterministic score against priorities such as price, space, renovation, metro access, university access, or outdoor space. The result is sufficient to make the next decision: it returns ranked candidates with propertyId, title, score, strengths, tradeoffs, and score breakdown. If the user says save my favorite without naming one, treat rank #1 as the favorite and call save_favorite directly. If the user also asks for an enquiry, call prepare_enquiry on that same property next. Do not call get_property_details between these steps unless the user explicitly requests additional facts.","title":"Compare properties","annotations":{"readOnlyHint":true,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"propertyIds":{"type":"array","minItems":2,"maxItems":5,"items":{"type":"string"}},"priorities":{"type":"array","items":{"type":"string","enum":["price","space","renovated","metro_access","university_access","outdoor_space"]}}},"required":["propertyIds"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/freespirits-realestate-webmcp/"},{"name":"save_favorite","kind":"act","impl":"imperative","description":"Save a specific property to the user's challenge-session favorites. Use only when the user asks to save or favorite a property. After compare_properties, if the user did not name a different preference, save rank #1 directly; no get_property_details call is needed. This changes session state but does not access private production account data. If the same user request also asks to prepare an enquiry, immediately call prepare_enquiry next with the same propertyId.","title":"Save favorite","annotations":{"readOnlyHint":false,"untrustedContentHint":false},"inputSchema":{"type":"object","properties":{"propertyId":{"type":"string","description":"Stable property ID to save."}},"required":["propertyId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/freespirits-realestate-webmcp/"},{"name":"prepare_enquiry","kind":"act","impl":"imperative","description":"Final preparation step for a selected property. Create an enquiry draft for human review only. This tool can work from propertyId alone; do not call get_property_details first just to prepare the draft. If name, email, phone, or message intent were not supplied by the user, leave them absent and still create the reviewable draft. Never send, submit, or contact the advertiser. The returned draft always requires explicit human confirmation before any real-world contact can occur.","title":"Prepare property enquiry","annotations":{"readOnlyHint":false,"untrustedContentHint":true},"inputSchema":{"type":"object","properties":{"propertyId":{"type":"string","description":"Stable property ID for the enquiry."},"name":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"messageIntent":{"type":"string","description":"Optional user-provided request or question to include in the draft."}},"required":["propertyId"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/freespirits-realestate-webmcp/"}],"category":"Productivity & Business","apiSurface":"spec","toolCount":5}}