Upsalt Booking
Search Upsalt venues, check availability, and book, view, or cancel a reservation.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (5)
- LOWen find-company
- LOWen list-available-slots
- LOWen create-booking
- LOWen get-booking-info
- LOWen cancel-booking
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"upsalt-booking": {
"url": "https://ai.upsalt.io/mcp/booking"
}
}
}Puntos de conexión remotos
https://ai.upsalt.io/mcp/bookingstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (5)
🟢find-company(slug, business_type)
Find a company by its slug and return its public profile: services, opening hours, and booking configuration. Use this first to obtain the company_id needed by the other tools.
Esquema de entrada
{
"type": "object",
"properties": {
"slug": {
"description": "The company slug, as found in its booking page URL.",
"type": "string"
},
"business_type": {
"description": "Optional business type filter.",
"type": "string"
}
},
"required": [
"slug"
]
}🟢list-available-slots(company_id, date)
List the available booking slots for a company on a given date. Returns shifts and bookable hours; use the shift_id and hour when creating a booking.
Esquema de entrada
{
"type": "object",
"properties": {
"company_id": {
"description": "The company id, as returned by the find-company tool.",
"type": "integer"
},
"date": {
"description": "The date to check, in YYYY-MM-DD format (e.g. 2026-07-20).",
"type": "string"
}
},
"required": [
"company_id",
"date"
]
}🔴create-booking(company_id, date, hour, shift_id, adults, ...)
Create a booking for a company as a guest. Requires a date (YYYY/MM/DD), an hour and shift_id obtained from list-available-slots, and the guest contact details. On success, returns the reservation details including a token that can be used with get-booking-info and cancel-booking.
Esquema de entrada
{
"type": "object",
"properties": {
"company_id": {
"description": "The company id, as returned by the find-company tool.",
"type": "integer"
},
"date": {
"description": "Booking date in YYYY/MM/DD format (e.g. 2026/07/20). Note the slashes.",
"type": "string"
},
"hour": {
"description": "Booking hour in HH:MM format, taken from list-available-slots.",
"type": "string"
},
"shift_id": {
"description": "The shift id, taken from list-available-slots.",
"type": "integer"
},
"adults": {
"description": "Number of adults.",
"type": "integer"
},
"name": {
"description": "Guest first name.",
"type": "string"
},
"surname": {
"description": "Guest last name.",
"type": "string"
},
"email": {
"description": "Guest email address. The booking confirmation and management token are sent here.",
"type": "string"
},
"phone": {
"description": "Guest phone number.",
"type": "string"
},
"children": {
"description": "Number of children.",
"type": "integer"
},
"babies": {
"description": "Number of babies.",
"type": "integer"
},
"pets": {
"description": "Number of pets.",
"type": "integer"
},
"vegan": {
"description": "Whether the party includes vegan guests.",
"type": "boolean"
},
"vegetarian": {
"description": "Whether the party includes vegetarian guests.",
"type": "boolean"
},
"gluten_free": {
"description": "Whether the party needs gluten-free options.",
"type": "boolean"
},
"nuts_allergy": {
"description": "Whether the party has a nut allergy.",
"type": "boolean"
},
"message": {
"description": "Optional message for the business.",
"type": "string"
},
"pushchair": {
"description": "Number of pushchairs.",
"type": "integer"
},
"wheelchair": {
"description": "Number of wheelchairs.",
"type": "integer"
},
"highchair": {
"description": "Number of highchairs.",
"type": "integer"
},
"optin": {
"description": "Marketing opt-in flag (1 or 0).",
"type": "integer"
},
"latitude": {
"description": "Guest latitude, if known.",
"type": "number"
},
"longitude": {
"description": "Guest longitude, if known.",
"type": "number"
},
"country": {
"description": "Guest country.",
"type": "string"
},
"city": {
"description": "Guest city.",
"type": "string"
},
"guest_token": {
"description": "Existing guest token, if the guest has booked before.",
"type": "string"
}
},
"required": [
"company_id",
"date",
"hour",
"shift_id",
"adults",
"name",
"surname",
"email",
"phone"
]
}🟢get-booking-info(company_id, token)
Retrieve the details of an existing booking using the management token returned by create-booking.
Esquema de entrada
{
"type": "object",
"properties": {
"company_id": {
"description": "The company id the booking belongs to.",
"type": "integer"
},
"token": {
"description": "The booking management token returned by create-booking.",
"type": "string"
}
},
"required": [
"company_id",
"token"
]
}🔴cancel-booking(token)
Cancel an existing booking using the management token returned by create-booking. This action is irreversible; confirm with the guest before calling it.
Esquema de entrada
{
"type": "object",
"properties": {
"token": {
"description": "The booking management token returned by create-booking.",
"type": "string"
}
},
"required": [
"token"
]
}Comunidad
Evidencia