Skip to main content
Glama
panoskiriakopoulos-sys

Rizerve MCP Server

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
PORTNoHTTP port when TRANSPORT=http3000
TRANSPORTNostdio for local MCP clients, http for remote accessstdio
RIZERVE_API_KEYYesAPI key from Rizerve Dashboard → Integrations → API Access
RIZERVE_API_URLNoAPI base URL (change for staging/testing)https://api.rizerve.io/v1

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
rizerve_list_propertiesA

List all properties owned by the authenticated account.

This tool returns properties with full details including pricing (in cents), amenities, availability settings, and branding configuration.

Args:

  • page (number): Page number, 1-based (default: 1)

  • limit (number): Items per page, max 100 (default: 20)

  • published_only (boolean): Filter to published only (default: false)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: For JSON format: Paginated response with { data: Property[], meta: { total, page, limit } } For markdown format: Formatted list with property details

Examples:

  • "Show all my properties" → rizerve_list_properties()

  • "Show published properties" → rizerve_list_properties({ published_only: true })

  • "Get properties as JSON" → rizerve_list_properties({ response_format: 'json' })

rizerve_get_propertyA

Get a single property by its public slug.

Args:

  • slug (string): Property public slug (e.g. "beachfront-villa")

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Full property object with all details.

Examples:

  • "Show me the beachfront villa property" → rizerve_get_property({ slug: "beachfront-villa" })

Error Handling:

  • Returns "Property with slug 'X' not found" if the slug doesn't exist. Use rizerve_list_properties to see available slugs.

rizerve_create_propertyC

Create a new property listing.

Required fields: title, price_per_night (in cents). Optional: description, location, public_slug (auto-generated if omitted), bedrooms, bathrooms, max_guests, amenities, minimum_stay, check_in_time, check_out_time, extra_fee, extra_fee_type, theme_color, latitude, longitude, main_site_url.

Args:

  • title (string): Property title (required)

  • price_per_night (number): Price in cents, e.g. 15000 = €150.00 (required)

  • All other fields optional (see schema)

Returns: Created property object with generated id and public_slug.

Examples:

  • "Add a new villa in Crete" → rizerve_create_property({ title: "Cretan Sunset Villa", price_per_night: 12000, location: "Crete, Greece", bedrooms: 3, max_guests: 6 })

rizerve_update_propertyA

Update a property's details. Send only the fields you want to change — omitted fields are left unchanged.

Args:

  • slug (string): Property public slug

  • Any property fields to update (title, description, price_per_night, is_published, etc.)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Examples:

  • "Change the villa price to €120" → rizerve_update_property({ slug: "beachfront-villa", price_per_night: 12000 })

  • "Publish the mountain cabin" → rizerve_update_property({ slug: "mountain-cabin", is_published: true })

rizerve_delete_propertyA

Delete a property permanently.

⚠️ DESTRUCTIVE: This action cannot be undone. All bookings, availability data, and iCal feeds for this property will also be deleted.

Args:

  • slug (string): Property public slug to delete

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Examples:

  • "Remove the old cabin listing" → rizerve_delete_property({ slug: "old-cabin" })

rizerve_list_bookingsA

List bookings across all properties with optional filters.

Supports filtering by status, property, and date range. Results are paginated.

Args:

  • page (number): Page number (default: 1)

  • limit (number): Items per page, max 100 (default: 20)

  • status (string): Filter by status: pending, confirmed, cancelled, completed

  • property_slug (string): Filter by property slug

  • check_in_from (date): Show bookings from this date (YYYY-MM-DD)

  • check_in_to (date): Show bookings up to this date (YYYY-MM-DD)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Paginated booking list with full guest details, pricing, and status.

Examples:

  • "Show all confirmed bookings" → rizerve_list_bookings({ status: "confirmed" })

  • "What bookings check in this week?" → rizerve_list_bookings({ check_in_from: "2026-06-27", check_in_to: "2026-07-04" })

  • "Show pending bookings for the villa" → rizerve_list_bookings({ property_slug: "beachfront-villa", status: "pending" })

rizerve_get_bookingA

Get a single booking by its UUID.

Args:

  • id (string): Booking UUID

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Full booking object with guest details, dates, pricing, and status.

Examples:

  • "Show me booking 660e8400-..." → rizerve_get_booking({ id: "660e8400-e29b-41d4-a716-446655440001" })

rizerve_create_bookingA

Create a new booking for a property. Automatically blocks the calendar for the booked dates.

Required: property_id, guest_name, check_in, check_out, total_price (in cents). Returns 409 conflict if dates overlap with existing bookings.

Args:

  • property_id (string): Property UUID (required)

  • guest_name (string): Full guest name (required)

  • check_in (date): Check-in date YYYY-MM-DD (required)

  • check_out (date): Check-out date YYYY-MM-DD (required)

  • total_price (number): Total price in cents (required)

  • guest_email, guest_phone, guests, currency, payment_mode, notes (optional)

Returns: Created booking object with status "pending".

Examples:

  • "Book the villa for Maria, July 5-10, €750" → rizerve_create_booking({ property_id: "550e...", guest_name: "Maria P.", check_in: "2026-07-05", check_out: "2026-07-10", total_price: 75000 })

rizerve_update_booking_statusA

Update a booking's status.

Valid transitions:

  • pending → confirmed, cancelled

  • confirmed → cancelled, completed

  • cancelled → (terminal, no further transitions)

  • completed → (terminal, no further transitions)

Cancelling unblocks the calendar dates. Confirming keeps them blocked.

Args:

  • id (string): Booking UUID

  • status (string): New status

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Examples:

  • "Confirm Maria's booking" → rizerve_update_booking_status({ id: "660e...", status: "confirmed" })

  • "Cancel the pending booking" → rizerve_update_booking_status({ id: "660e...", status: "cancelled" })

rizerve_get_availabilityA

Check availability for a property over a date range.

Returns available/blocked dates with reasons. Also returns overall availability status (true/false) for the entire range.

Args:

  • slug (string): Property public slug

  • check_in (date): Start date YYYY-MM-DD (required)

  • check_out (date): End date YYYY-MM-DD (required)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Availability data with total_nights, available_nights, blocked_dates, and overall available flag.

Examples:

  • "Is the villa available July 5-10?" → rizerve_get_availability({ slug: "beachfront-villa", check_in: "2026-07-05", check_out: "2026-07-10" })

rizerve_block_dateA

Block or unblock a specific date for a property.

Use to mark dates as unavailable for maintenance, owner stays, or manual blocks.

Args:

  • slug (string): Property public slug

  • date (string): Date to block/unblock YYYY-MM-DD (required)

  • available (boolean): false to block, true to unblock (required)

  • reason (string): Optional reason (e.g. "maintenance", "owner_stay")

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Examples:

  • "Block July 3rd for maintenance" → rizerve_block_date({ slug: "beachfront-villa", date: "2026-07-03", available: false, reason: "maintenance" })

  • "Unblock July 3rd" → rizerve_block_date({ slug: "beachfront-villa", date: "2026-07-03", available: true })

rizerve_batch_set_availabilityA

Set availability for multiple properties and date ranges at once.

Efficient for bulk operations like blocking off-season dates or marking multi-property maintenance windows.

Args:

  • ranges (array): Array of { property_id, date_from, date_to, available, reason? } objects (max 50)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Summary with number of ranges processed and total dates affected.

Examples:

  • "Block August 1-15 for owner stay across two villas" → rizerve_batch_set_availability({ ranges: [{ property_id: "550e...", date_from: "2026-08-01", date_to: "2026-08-15", available: false, reason: "owner_stay" }] })

rizerve_list_ical_feedsA

List external iCal feeds imported for a property.

Shows feed URLs, sources (Airbnb, Booking.com, etc.), and last sync times.

Args:

  • slug (string): Property public slug

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Array of iCal feed objects with sync status.

Examples:

  • "What iCal feeds are connected to the villa?" → rizerve_list_ical_feeds({ slug: "beachfront-villa" })

rizerve_import_ical_feedA

Import an external iCal feed for auto-sync. The system will sync it within a few minutes.

Use this to pull calendars from Airbnb, VRBO, Booking.com, etc. into Rizerve.

Args:

  • slug (string): Property public slug

  • url (string): External iCal feed URL (required)

  • source (string): Label like "airbnb", "booking", "vrbo"

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Created feed object.

Examples:

rizerve_export_icalA

Get a property's public iCal feed URL for importing into OTAs (Airbnb, VRBO, Booking.com).

This is the URL you give to external platforms so they can read Rizerve's calendar.

Args:

  • slug (string): Property public slug

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Public iCal URL for the property.

Examples:

  • "Get the iCal URL to share with Airbnb" → rizerve_export_ical({ slug: "beachfront-villa" })

rizerve_delete_ical_feedA

Remove an imported iCal feed. Imported dates from this feed are cleared.

Args:

  • slug (string): Property public slug

  • feed_id (string): iCal feed UUID to delete

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Examples:

  • "Remove the Airbnb calendar connection" → rizerve_delete_ical_feed({ slug: "beachfront-villa", feed_id: "770e8400-..." })

rizerve_get_property_statsA

Get detailed statistics for a single property.

Includes page views, bookings, conversion rate, revenue, average stay length, and occupancy rate.

Args:

  • slug (string): Property public slug

  • period (string): Time period - "7d", "30d", "90d", "365d", or "YYYY-MM-DD/YYYY-MM-DD" (default: "30d")

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Property stats object with all metrics.

Examples:

  • "How's the villa doing this month?" → rizerve_get_property_stats({ slug: "beachfront-villa", period: "30d" })

  • "Show me villa stats for all of 2026" → rizerve_get_property_stats({ slug: "beachfront-villa", period: "2026-01-01/2026-12-31" })

rizerve_get_revenue_reportA

Get revenue report across all properties with breakdown by period or property.

Args:

  • period (string): Time period - "7d", "30d", "90d", "365d" (default: "30d")

  • group_by (string): "day", "week", "month", or "property" (default: "month")

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Total revenue with breakdown.

Examples:

  • "How much did we make this month?" → rizerve_get_revenue_report({ period: "30d" })

  • "Revenue by property this year" → rizerve_get_revenue_report({ period: "365d", group_by: "property" })

rizerve_get_occupancy_reportA

Get occupancy rates across properties.

Args:

  • period (string): Time period - "30d", "90d", "365d" (default: "30d")

  • property_slug (string): Filter to single property (omit for all)

  • response_format ('markdown' | 'json'): Output format (default: 'markdown')

Returns: Overall occupancy rate with per-property breakdown.

Examples:

  • "What's our occupancy this month?" → rizerve_get_occupancy_report({ period: "30d" })

  • "Occupancy for just the villa" → rizerve_get_occupancy_report({ property_slug: "beachfront-villa" })

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/panoskiriakopoulos-sys/rizerve-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server