Search Upsalt venues, check availability, and book, view, or cancel a reservation.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Cancel an existing booking using the management token returned by create-booking. This action is irreversible; confirm with the guest before calling it.
The booking management token returned by create-booking.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Cancel an existing booking using the management token returned by create-booking. This action is irreversible; confirm with the guest before calling it.
| Argument | Type | Description |
|---|---|---|
| token* | string | The booking management token returned by create-booking. |
{
"type": "object",
"required": [
"token"
],
"properties": {
"token": {
"type": "string",
"description": "The booking management token returned by create-booking."
}
}
}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.
| Argument | Type | Description |
|---|
| city | string | Guest city. |
| date* | string | Booking date in YYYY/MM/DD format (e.g. 2026/07/20). Note the slashes. |
| hour* | string | Booking hour in HH:MM format, taken from list-available-slots. |
| name* | string | Guest first name. |
| pets | integer | Number of pets. |
| email* | string | Guest email address. The booking confirmation and management token are sent here. |
| optin | integer | Marketing opt-in flag (1 or 0). |
| phone* | string | Guest phone number. |
| vegan | boolean | Whether the party includes vegan guests. |
| adults* | integer | Number of adults. |
| babies | integer | Number of babies. |
| country | string | Guest country. |
| message | string | Optional message for the business. |
| surname* | string | Guest last name. |
| children | integer | Number of children. |
| latitude | number | Guest latitude, if known. |
| shift_id* | integer | The shift id, taken from list-available-slots. |
| highchair | integer | Number of highchairs. |
| longitude | number | Guest longitude, if known. |
| pushchair | integer | Number of pushchairs. |
| company_id* | integer | The company id, as returned by the find-company tool. |
| vegetarian | boolean | Whether the party includes vegetarian guests. |
| wheelchair | integer | Number of wheelchairs. |
| gluten_free | boolean | Whether the party needs gluten-free options. |
| guest_token | string | Existing guest token, if the guest has booked before. |
| nuts_allergy | boolean | Whether the party has a nut allergy. |
{
"type": "object",
"required": [
"company_id",
"date",
"hour",
"shift_id",
"adults",
"name",
"surname",
"email",
"phone"
],
"properties": {
"city": {
"type": "string",
"description": "Guest city."
},
"date": {
"type": "string",
"description": "Booking date in YYYY/MM/DD format (e.g. 2026/07/20). Note the slashes."
},
"hour": {
"type": "string",
"description": "Booking hour in HH:MM format, taken from list-available-slots."
},
"name": {
"type": "string",
"description": "Guest first name."
},
"pets": {
"type": "integer",
"description": "Number of pets."
},
"email": {
"type": "string",
"description": "Guest email address. The booking confirmation and management token are sent here."
},
"optin": {
"type": "integer",
"description": "Marketing opt-in flag (1 or 0)."
},
"phone": {
"type": "string",
"description": "Guest phone number."
},
"vegan": {
"type": "boolean",
"description": "Whether the party includes vegan guests."
},
"adults": {
"type": "integer",
"description": "Number of adults."
},
"babies": {
"type": "integer",
"description": "Number of babies."
},
"country": {
"type": "string",
"description": "Guest country."
},
"message": {
"type": "string",
"description": "Optional message for the business."
},
"surname": {
"type": "string",
"description": "Guest last name."
},
"children": {
"type": "integer",
"description": "Number of children."
},
"latitude": {
"type": "number",
"description": "Guest latitude, if known."
},
"shift_id": {
"type": "integer",
"description": "The shift id, taken from list-available-slots."
},
"highchair": {
"type": "integer",
"description": "Number of highchairs."
},
"longitude": {
"type": "number",
"description": "Guest longitude, if known."
},
"pushchair": {
"type": "integer",
"description": "Number of pushchairs."
},
"company_id": {
"type": "integer",
"description": "The company id, as returned by the find-company tool."
},
"vegetarian": {
"type": "boolean",
"description": "Whether the party includes vegetarian guests."
},
"wheelchair": {
"type": "integer",
"description": "Number of wheelchairs."
},
"gluten_free": {
"type": "boolean",
"description": "Whether the party needs gluten-free options."
},
"guest_token": {
"type": "string",
"description": "Existing guest token, if the guest has booked before."
},
"nuts_allergy": {
"type": "boolean",
"description": "Whether the party has a nut allergy."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| slug* | string | The company slug, as found in its booking page URL. |
| business_type | string | Optional business type filter. |
{
"type": "object",
"required": [
"slug"
],
"properties": {
"slug": {
"type": "string",
"description": "The company slug, as found in its booking page URL."
},
"business_type": {
"type": "string",
"description": "Optional business type filter."
}
}
}Retrieve the details of an existing booking using the management token returned by create-booking.
| Argument | Type | Description |
|---|---|---|
| token* | string | The booking management token returned by create-booking. |
| company_id* | integer | The company id the booking belongs to. |
{
"type": "object",
"required": [
"company_id",
"token"
],
"properties": {
"token": {
"type": "string",
"description": "The booking management token returned by create-booking."
},
"company_id": {
"type": "integer",
"description": "The company id the booking belongs to."
}
}
}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.
| Argument | Type | Description |
|---|---|---|
| date* | string | The date to check, in YYYY-MM-DD format (e.g. 2026-07-20). |
| company_id* | integer | The company id, as returned by the find-company tool. |
{
"type": "object",
"required": [
"company_id",
"date"
],
"properties": {
"date": {
"type": "string",
"description": "The date to check, in YYYY-MM-DD format (e.g. 2026-07-20)."
},
"company_id": {
"type": "integer",
"description": "The company id, as returned by the find-company tool."
}
}
}