AegeanBot Direct Stays
Search verified Greek vacation rentals with live availability, prices, policies, and booking links.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-httpWhat it can do
Tool inventory
Tools (5)
🟢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
Evidence