Upsalt Booking
Search Upsalt venues, check availability, and book, view, or cancel a reservation.
我該用這個嗎
品質與安全性
發現項目(5)
- LOW在 find-company 中
- LOW在 list-available-slots 中
- LOW在 create-booking 中
- LOW在 get-booking-info 中
- LOW在 cancel-booking 中
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"upsalt-booking": {
"url": "https://ai.upsalt.io/mcp/booking"
}
}
}遠端端點
https://ai.upsalt.io/mcp/bookingstreamable-http它能做什麼
工具清單
工具(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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"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.
輸入結構描述
{
"type": "object",
"properties": {
"token": {
"description": "The booking management token returned by create-booking.",
"type": "string"
}
},
"required": [
"token"
]
}社群
證據