Villa Alosa availability

A public, read-only MCP server for the holiday lets in Céret — v0.1.0

It answers one question: which nights are free? for the three ways Villa Alosa is let — Alosa Balcon (upstairs), Alosa Terrace (downstairs) and Villa Alosa XL (whole, both apartments). A whole-house stay blocks both apartments; a stay in either apartment blocks the whole house. It knows nothing about who booked, where, or prices.

Endpoint

https://mcp.alosa.fr/mcp — Streamable HTTP, no authentication.
https://mcp.alosa.fr/health — liveness check.

The same server, same-origin on the booking sites:

Discovery: /.well-known/mcp/server-card.json on every one of those hosts (this host's card). All of this site's APIs — this server, the availability API and the concierge agent — are listed in the RFC 9727 API catalog at alosa.fr/.well-known/api-catalog.

Add it to Claude

Claude Code:

claude mcp add --transport http villa-alosa https://mcp.alosa.fr/mcp

Claude Desktop / claude.ai: Settings → Connectors → Add custom connector → https://mcp.alosa.fr/mcp. Or in claude_desktop_config.json:

{
  "mcpServers": {
    "villa-alosa": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://mcp.alosa.fr/mcp"
      ]
    }
  }
}

Tools

list_units
The three units: id, name, description, sleeps, bedrooms.
check_availability { unit, checkin, checkout }
Is the unit free for that stay? Nights and any conflicting blocked ranges.
get_availability { from?, to?, units? }
Blocked ranges per unit (default: the next 365 days, max 731).
find_free_stays { unit, nights, from?, to? }
The first 20 possible stays of exactly that many nights, plus the free periods they fall in.

Dates are YYYY-MM-DD; ranges are half-open [checkin, checkout), so you can arrive on someone else's departure day. Data comes from the public API at api.alosa.fr and is up to a few minutes old.