AegeanBot Direct Stays

Search verified Greek vacation rentals with live availability, prices, policies, and booking links.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
95%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,432Tokens (tool definitions)
~2.6 KBTypical response size
Moderate attention impact (1.12% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "direct-stays": {
      "url": "https://app.aegeanbot.com/mcp"
    }
  }
}

Remote endpoints

https://app.aegeanbot.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_listing_policies(listing)

Every policy fact for ONE listing in one call: check-in/out times, advance notice, preparation days, this month's minimum stay, cancellation policy, and (when configured) amendment rules like late checkout. Use for ANY rules/policy question about a home.

Input Schema

{
  "type": "object",
  "properties": {
    "listing": {
      "type": "string",
      "description": "listing title (partial ok)"
    }
  },
  "required": [
    "listing"
  ]
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢get_faq_answer(question, listing_id)

Retrieve the host's own Q&A entries most relevant to a factual question about the stay, the house, or the host's services. Prefer this over guessing for any host-specific question.

Input Schema

{
  "type": "object",
  "properties": {
    "question": {
      "type": "string"
    },
    "listing_id": {
      "type": "string",
      "description": "scope to one listing (optional)"
    }
  },
  "required": [
    "question"
  ]
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢search_listings(query, location, setting, mood, guests, ...)

Search available vacation rentals across Greece. Pass explicit destinations, dates, guest counts and filters as structured fields; use query only for preferences not represented by another field. Do not invent locations, dates, guest counts or budgets the guest never gave. Results include stable listing ids for follow-up calls (get_listing_details, check_availability_and_price).

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "optional free-text preferences NOT captured by the structured filters, e.g. 'quiet romantic vibe with sunset views' — do not repeat structured information here"
    },
    "location": {
      "type": "string",
      "description": "a PLACE the guest actually named: city, island, region, island complex ('Cyclades') or area ('Athens south coast'). For generic geography ('the islands', 'the mountains', 'by the sea') use setting instead — do NOT guess a region the guest never said. Omit if unknown"
    },
    "setting": {
      "type": "string",
      "enum": [
        "island",
        "city",
        "mountain",
        "countryside",
        "beachfront"
      ],
      "description": "geography facet for generic wishes: 'στα νησιά'/'the islands' → island; combinable with budget/dates, replaces a location guess"
    },
    "mood": {
      "type": "string",
      "enum": [
        "beach",
        "pools",
        "sunset",
        "night"
      ],
      "description": "holiday-mood collection: beach=steps from the sea/coves, pools=private pool/resort calm, sunset=golden-hour terraces/romance, night=chora/town stays with evening life"
    },
    "guests": {
      "type": "integer",
      "description": "total guests (alternative to adults/children when the split is unknown)"
    },
    "adults": {
      "type": "integer",
      "minimum": 1,
      "description": "number of adult guests"
    },
    "children": {
      "type": "integer",
      "minimum": 0,
      "description": "number of children — counted toward capacity together with adults"
    },
    "infants": {
      "type": "integer",
      "minimum": 0,
      "description": "number of infants — noted but NOT counted toward sleeping capacity"
    },
    "bedrooms": {
      "type": "integer",
      "minimum": 1,
      "description": "minimum bedrooms requested"
    },
    "bathrooms": {
      "type": "number",
      "minimum": 1,
      "description": "minimum bathrooms requested"
    },
    "property_type": {
      "type": "string",
      "enum": [
        "villa",
        "apartment",
        "house",
        "studio",
        "maisonette"
      ],
      "description": "requested property type"
    },
    "amenities": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "private_pool",
          "pool",
          "heated_pool",
          "jacuzzi_hot_tub",
          "sea_view",
          "beachfront",
          "parking",
          "private_parking",
          "air_conditioning",
          "wifi",
          "full_kitchen",
          "washing_machine",
          "garden",
          "bbq",
          "balcony_terrace",
          "workspace",
          "baby_cot",
          "high_chair"
        ]
      },
      "description": "hard amenity requirements the guest explicitly asked for — every listed amenity must be present"
    },
    "max_nightly_price": {
      "type": "number",
      "minimum": 0,
      "description": "maximum accommodation price per night (EUR)"
    },
    "max_total_price": {
      "type": "number",
      "minimum": 0,
      "description": "maximum total stay price (EUR) when the guest gave a whole-trip budget — only applied when exact dates are also given (otherwise ignored with a note)"
    },
    "currency": {
      "type": "string",
      "enum": [
        "EUR"
      ],
      "description": "currency used for price filters"
    },
    "sort": {
      "type": "string",
      "enum": [
        "recommended",
        "price_low_to_high",
        "price_high_to_low"
      ],
      "description": "result ordering; default recommended"
    },
    "checkin": {
      "type": "string",
      "format": "date",
      "description": "exact arrival date YYYY-MM-DD — ONLY when the guest gave real stay dates. If they only named a month/season ('in August'), leave dates out: availability is checked per night, so a whole month demands 30 free nights"
    },
    "checkout": {
      "type": "string",
      "format": "date",
      "description": "exact departure date YYYY-MM-DD — same rule as checkin"
    },
    "near_metro": {
      "type": "boolean",
      "description": "true only when the guest wants to be near a metro/subway station (Athens & Thessaloniki only) — filters to homes within a 1 km walk of a station"
    }
  },
  "required": [],
  "additionalProperties": false
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢get_listing_details(listing)

Full facts for ONE listing already in play (amenities, description, capacity, base price).

Input Schema

{
  "type": "object",
  "properties": {
    "listing": {
      "type": "string",
      "description": "listing title (partial ok)"
    }
  },
  "required": [
    "listing"
  ]
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}
🟢check_availability_and_price(listing, checkin, checkout)

Exact availability + total price for one listing and concrete dates, with the direct booking link.

Input Schema

{
  "type": "object",
  "properties": {
    "listing": {
      "type": "string"
    },
    "checkin": {
      "type": "string",
      "description": "YYYY-MM-DD — never in the past; bare day numbers in a follow-up ('26 to 29') keep the month/year already under discussion, NOT the current month"
    },
    "checkout": {
      "type": "string",
      "description": "YYYY-MM-DD"
    }
  },
  "required": [
    "listing",
    "checkin",
    "checkout"
  ]
}

Output Schema

{
  "type": "object",
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools