booking

Hôtel-Rooftop Les Voiles, Toulon Mourillon : disponibilités, tarifs réels et table au rooftop.

Should I use this

Quality & Safety

A
Description quality
78%
Schema completeness
84%
Naming quality
100%
Poisoning risk
100%
Permission match
90%
Protocol compliance
100%

Findings (7)

  • LOWTool 'create_booking_session' description lacks action verbin create_booking_session
  • LOWTool 'get_booking_session' description lacks action verbin get_booking_session
  • LOWTool 'update_booking_session' description lacks action verbin update_booking_session
  • LOWTool 'get_check_in' description lacks action verbin get_check_in
  • LOWTool 'get_folio' description lacks action verbin get_folio
  • LOWTool 'get_rooftop_availability' description lacks action verbin get_rooftop_availability
  • LOWTool 'fetch' suggests web access but openWorldHint=falsein fetch

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,194Tokens (tool definitions)
~779 BTypical response size
Moderate attention impact (1.71% 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": {
    "booking": {
      "url": "https://hotels-toulon-mer.com/mcp"
    }
  }
}

Remote endpoints

https://hotels-toulon-mer.com/mcpstreamable-http

What it can do

Tool inventory

Tools (12)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢create_booking_session(meta, booking)

Ouvre une session de réservation à l’Hôtel-Rooftop Les Voiles (Toulon, Mourillon) pour des dates et une occupation données. Rend la chambre et le tarif réellement disponibles, le prix total en centimes d’euro, et une URL pour finaliser. Seuls les tarifs PRÉPAYÉS se réservent par agent : le séjour est réglé en totalité à la réservation, et n’est pas remboursable. Rend une erreur claire si l’hôtel est complet ou fermé sur la période.

Input Schema

{
  "type": "object",
  "properties": {
    "meta": {
      "type": "object",
      "description": "Métadonnées de protocole UCP."
    },
    "booking": {
      "type": "object",
      "properties": {
        "property": {
          "type": "object",
          "properties": {
            "id": {
              "type": "string"
            }
          }
        },
        "booker": {
          "type": "object",
          "description": "Le client qui réserve. Son nom est nécessaire avant de conclure.",
          "properties": {
            "first_name": {
              "type": "string"
            },
            "last_name": {
              "type": "string"
            },
            "email": {
              "type": "string"
            },
            "phone_number": {
              "type": "string"
            }
          }
        },
        "stays": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "accommodation_type": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  }
                }
              },
              "rate_plan": {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string"
                  }
                }
              },
              "occupancy": {
                "type": "object",
                "properties": {
                  "adults": {
                    "type": "integer"
                  }
                }
              },
              "stay_dates": {
                "type": "object",
                "properties": {
                  "start_date": {
                    "type": "string"
                  },
                  "end_date": {
                    "type": "string"
                  }
                },
                "required": [
                  "start_date",
                  "end_date"
                ]
              }
            },
            "required": [
              "stay_dates"
            ]
          }
        }
      },
      "required": [
        "stays"
      ]
    }
  },
  "required": [
    "booking"
  ]
}
🟢get_booking_session(meta, booking)

Relit une session de réservation ouverte, par son identifiant.

Input Schema

{
  "type": "object",
  "properties": {
    "meta": {
      "type": "object"
    },
    "booking": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        }
      },
      "required": [
        "id"
      ]
    }
  },
  "required": [
    "booking"
  ]
}
🟡update_booking_session(meta, id, booking)

Enregistre le client qui réserve (`booker`) sur une session ouverte. Le nom du client est nécessaire pour conclure une réservation ; cet outil permet de le fournir après l’ouverture de la session.

Input Schema

{
  "type": "object",
  "properties": {
    "meta": {
      "type": "object"
    },
    "id": {
      "type": "string"
    },
    "booking": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "booker": {
          "type": "object",
          "properties": {
            "first_name": {
              "type": "string"
            },
            "last_name": {
              "type": "string"
            },
            "email": {
              "type": "string"
            },
            "phone_number": {
              "type": "string"
            }
          }
        }
      }
    }
  }
}
🟢search(query)

Cherche une réponse dans ce que l’hôtel dit de lui-même : arrivée et départ, ce qui est compris dans le prix, les chambres, le rooftop, les conditions d’annulation, les animaux, la privatisation. Rend des extraits avec un identifiant ; `fetch` en donne le texte entier. Ne contient ni prix ni disponibilité.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "La question, en français ou en anglais."
    }
  },
  "required": [
    "query"
  ]
}
🟢fetch(id)

Le texte complet d’un résultat de `search`, par son identifiant.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "required": [
    "id"
  ]
}
🟢get_alternative_dates(start_date, end_date, adults)

Des séjours de même durée, proches des dates demandées, et réellement disponibles. Utile quand `create_booking_session` ne trouve rien : sur seize chambres, deux jours de décalage suffisent souvent. Rend jusqu’à trois propositions, de la plus proche à la plus lointaine, avec leur prix tout compris.

Input Schema

{
  "type": "object",
  "properties": {
    "start_date": {
      "type": "string",
      "description": "Arrivée souhaitée, AAAA-MM-JJ."
    },
    "end_date": {
      "type": "string",
      "description": "Départ souhaité, AAAA-MM-JJ."
    },
    "adults": {
      "type": "integer",
      "description": "Nombre d’adultes. 2 par défaut."
    }
  },
  "required": [
    "start_date",
    "end_date"
  ]
}
🟢get_property_details

Tout ce qu’il faut savoir pour DÉCRIRE l’Hôtel-Rooftop Les Voiles à un client : situation, étoiles, horaires d’arrivée et de départ, équipements compris (et ce qui ne l’est pas), petit-déjeuner, rooftop, catégories de chambres, conditions tarifaires et taxe de séjour. Ne contient ni prix ni disponibilité : ceux-ci viennent de `create_booking_session`.

Input Schema

{
  "type": "object",
  "properties": {}
}
🟢get_stay(stay_key)

Relit un séjour déjà réservé : dates, numéro de réservation, chambre attribuée. Exige la clé du séjour (`stay_key`), celle remise dans la confirmation. Rappel : un séjour réservé par agent est prépayé — il n’est ni annulable, ni modifiable.

Input Schema

{
  "type": "object",
  "properties": {
    "stay_key": {
      "type": "string",
      "description": "La clé remise dans la confirmation."
    }
  },
  "required": [
    "stay_key"
  ]
}
🟢get_check_in(stay_key)

Le code du portail, le numéro de chambre et le code de la porte — l’hôtel n’a pas de réception 24 h/24 et l’arrivée est autonome. Délivrés SEULEMENT le jour de l’arrivée, à partir de 15 h, et une fois la chambre faite. Sinon, dit ce qui manque et à partir de quand revenir.

Input Schema

{
  "type": "object",
  "properties": {
    "stay_key": {
      "type": "string"
    }
  },
  "required": [
    "stay_key"
  ]
}
🟢get_folio(stay_key)

La note du séjour : le détail des prestations, ce qui est déjà réglé, et ce qui reste dû.

Input Schema

{
  "type": "object",
  "properties": {
    "stay_key": {
      "type": "string"
    }
  },
  "required": [
    "stay_key"
  ]
}
🟢get_rooftop_availability(start_date, end_date, party_size)

Les soirs où une table est libre au Rooftop des Voiles (Toulon), sur une période donnée. Dit pour chaque soir s’il est réservable, et sinon si le rooftop est FERMÉ ou COMPLET — les deux ne se disent pas de la même façon à un client. Le rooftop accueille jusqu’à 5 personnes par table.

Input Schema

{
  "type": "object",
  "properties": {
    "start_date": {
      "type": "string",
      "description": "Premier soir regardé, AAAA-MM-JJ."
    },
    "end_date": {
      "type": "string",
      "description": "Dernier soir regardé, AAAA-MM-JJ."
    },
    "party_size": {
      "type": "integer",
      "description": "Nombre de couverts. 2 par défaut."
    }
  },
  "required": [
    "start_date",
    "end_date"
  ]
}
🟡create_rooftop_reservation(date, time, party_size, name, phone, ...)

Réserve une table au Rooftop des Voiles. La table est tenue IMMÉDIATEMENT et fermement : il n’y a rien à confirmer ensuite, et aucun paiement n’est demandé. Rend une erreur claire si le rooftop est fermé, complet, ou si le service du soir est passé.

Input Schema

{
  "type": "object",
  "properties": {
    "date": {
      "type": "string",
      "description": "Le soir, AAAA-MM-JJ."
    },
    "time": {
      "type": "string",
      "description": "Créneau, par exemple « 19h30 ». Le premier possible si absent."
    },
    "party_size": {
      "type": "integer",
      "description": "Nombre de couverts, 5 au maximum."
    },
    "name": {
      "type": "string",
      "description": "Nom au nom duquel la table est tenue."
    },
    "phone": {
      "type": "string"
    },
    "email": {
      "type": "string"
    },
    "note": {
      "type": "string",
      "description": "Allergies, occasion, demande particulière."
    }
  },
  "required": [
    "date",
    "party_size",
    "name"
  ]
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded12 tools