orbit
Orbit Zürich: Workshop-Räume, Preise und freie Slots abfragen, Buchungsanfragen stellen.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (3)
- HIGH
- MEDIUMen create_booking
- LOWen check_availability
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": {
"orbit": {
"url": "https://www.the-orbit.ch/api/mcp"
}
}
}Puntos de conexión remotos
https://www.the-orbit.ch/api/mcpstreamable-httphttps://the-orbit.ch/api/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (6)
🟢list_rooms(category)
Listet alle aktiven Räume des Orbit mit Kapazität, Etage, Ausstattung und Standardpreisen pro Slot (vormittag 08:00–12:00, nachmittag 13:00–18:00, ganztags 08:00–18:00). Räume mit `bookableFrom` in der Zukunft sind sichtbar, aber noch nicht buchbar.
Esquema de entrada
{
"type": "object",
"properties": {
"category": {
"description": "Optional: Kategorie-Slug zum Filtern (siehe `category.slug` im Ergebnis)",
"type": "string"
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_availability(date, roomIds)
Prüft für ein Datum, welche Slots (vormittag, nachmittag, ganztags) in welchen Räumen noch frei sind, inklusive Standardpreisen in CHF. Ohne `roomIds` werden alle aktiven Räume geprüft.
Esquema de entrada
{
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Datum im Format YYYY-MM-DD"
},
"roomIds": {
"description": "Optional: nur diese Raum-IDs prüfen (IDs aus list_rooms)",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"date"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_services
Listet alle buchbaren Zusatzservices (z.B. Catering, Moderation, Workshop-Begleitung) mit Standardpreisen. Services mit `isAccompaniment: true` sind exklusive Begleitformate (max. eines pro Buchung) und können einen Raum-Rabatt auslösen.
Esquema de entrada
{
"type": "object",
"properties": {},
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢quote_booking(rooms, services, title, notes, participants, ...)
Berechnet den unverbindlichen Gesamtpreis (Listenpreise, CHF) für eine Raum-/Service-Auswahl mit der echten Pricing-Engine des Orbit — inklusive Bestpreis-Logik, Wochenend-Zuschlag (+30%) und Verpflegungs-Pauschalen. Nutze dieses Tool statt Preise aus list_rooms selbst zusammenzurechnen. Mit API-Token wird die Quote personalisiert (Company-Pass-Deckung bzw. Individualrabatt des Kontos statt Listenpreis). Raum-IDs kommen aus list_rooms, Service-IDs aus list_services.
Esquema de entrada
{
"type": "object",
"properties": {
"rooms": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"roomId": {
"type": "string",
"minLength": 1
},
"slot": {
"type": "string",
"enum": [
"VORMITTAG",
"NACHMITTAG",
"GANZTAGS",
"ZEITFENSTER"
]
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"roomId",
"slot",
"date"
]
},
"description": "Gewünschte Räume mit Slot und Datum (Raum-IDs aus list_rooms)"
},
"services": {
"default": [],
"description": "Optionale Zusatzservices (Service-IDs aus list_services)",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"serviceId": {
"type": "string",
"minLength": 1
},
"quantity": {
"default": 1,
"type": "integer",
"minimum": 1,
"maximum": 100
},
"notes": {
"type": "string",
"maxLength": 2000
}
},
"required": [
"serviceId"
]
}
},
"title": {
"description": "Optionaler Titel des Anlasses",
"type": "string",
"maxLength": 200
},
"notes": {
"description": "Optionale Bemerkungen",
"type": "string",
"maxLength": 2000
},
"participants": {
"description": "Anzahl Personen — Pflicht, wenn Verpflegung pro Person verrechnet wird",
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 500
},
{
"type": "null"
}
]
},
"duration": {
"type": "string",
"enum": [
"EIN_TAG",
"ZWEI_TAGE",
"DREI_TAGE",
"VIER_TAGE"
],
"description": "Buchungsdauer; bei Mehrtagen buchen alle Räume GANZTAGS"
},
"startTime": {
"description": "Startzeit 'HH:00' (08–17) — Pflicht bei EIN_TAG, verboten bei Mehrtagen",
"anyOf": [
{
"type": "string",
"pattern": "^(0[89]|1[0-7]):00$"
},
{
"type": "null"
}
]
},
"endTime": {
"description": "Endzeit 'HH:00' (09–18) — Pflicht bei EIN_TAG, verboten bei Mehrtagen",
"anyOf": [
{
"type": "string",
"pattern": "^(09|1[0-8]):00$"
},
{
"type": "null"
}
]
}
},
"required": [
"rooms",
"duration"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢request_booking(rooms, services, title, notes, participants, ...)
Stellt eine UNVERBINDLICHE Buchungsanfrage an das Orbit-Team. Die Anfrage reserviert den Slot noch NICHT — das Team prüft sie und bestätigt per E-Mail an die Kontaktadresse. Prüfe vorher mit check_availability, ob die gewünschten Slots frei sind, und nenne dem Menschen den Preis aus quote_booking. Raum-IDs aus list_rooms, Service-IDs aus list_services.
Esquema de entrada
{
"type": "object",
"properties": {
"rooms": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"roomId": {
"type": "string",
"minLength": 1
},
"slot": {
"type": "string",
"enum": [
"VORMITTAG",
"NACHMITTAG",
"GANZTAGS",
"ZEITFENSTER"
]
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"roomId",
"slot",
"date"
]
},
"description": "Gewünschte Räume mit Slot und Datum (Raum-IDs aus list_rooms)"
},
"services": {
"default": [],
"description": "Optionale Zusatzservices (Service-IDs aus list_services)",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"serviceId": {
"type": "string",
"minLength": 1
},
"quantity": {
"default": 1,
"type": "integer",
"minimum": 1,
"maximum": 100
},
"notes": {
"type": "string",
"maxLength": 2000
}
},
"required": [
"serviceId"
]
}
},
"title": {
"description": "Optionaler Titel des Anlasses",
"type": "string",
"maxLength": 200
},
"notes": {
"description": "Optionale Bemerkungen",
"type": "string",
"maxLength": 2000
},
"participants": {
"description": "Anzahl Personen — Pflicht, wenn Verpflegung pro Person verrechnet wird",
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 500
},
{
"type": "null"
}
]
},
"duration": {
"type": "string",
"enum": [
"EIN_TAG",
"ZWEI_TAGE",
"DREI_TAGE",
"VIER_TAGE"
],
"description": "Buchungsdauer; bei Mehrtagen buchen alle Räume GANZTAGS"
},
"startTime": {
"description": "Startzeit 'HH:00' (08–17) — Pflicht bei EIN_TAG, verboten bei Mehrtagen",
"anyOf": [
{
"type": "string",
"pattern": "^(0[89]|1[0-7]):00$"
},
{
"type": "null"
}
]
},
"endTime": {
"description": "Endzeit 'HH:00' (09–18) — Pflicht bei EIN_TAG, verboten bei Mehrtagen",
"anyOf": [
{
"type": "string",
"pattern": "^(09|1[0-8]):00$"
},
{
"type": "null"
}
]
},
"contactName": {
"type": "string",
"minLength": 2,
"maxLength": 120,
"description": "Name der Kontaktperson"
},
"contactEmail": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "E-Mail der Kontaktperson — hierhin geht die Bestätigung"
},
"contactPhone": {
"description": "Optionale Telefonnummer",
"type": "string",
"maxLength": 40
}
},
"required": [
"rooms",
"duration",
"contactName",
"contactEmail"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡create_booking(rooms, services, title, notes, participants, ...)
Erstellt eine VERBINDLICHE Buchung mit den echten Konditionen des angemeldeten Kontos (Company-Pass-Deckung bzw. Individualrabatt) — reserviert den Slot sofort. Erfordert einen API-Token (Authorization: Bearer …, erstellbar unter https://the-orbit.ch/account/api-tokens). Prüfe vorher mit check_availability, ob die Slots frei sind, und mit quote_booking den Preis. Ohne Token: request_booking für eine unverbindliche Anfrage nutzen. Raum-IDs aus list_rooms, Service-IDs aus list_services.
Esquema de entrada
{
"type": "object",
"properties": {
"rooms": {
"minItems": 1,
"maxItems": 16,
"type": "array",
"items": {
"type": "object",
"properties": {
"roomId": {
"type": "string",
"minLength": 1
},
"slot": {
"type": "string",
"enum": [
"VORMITTAG",
"NACHMITTAG",
"GANZTAGS",
"ZEITFENSTER"
]
},
"date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"roomId",
"slot",
"date"
]
},
"description": "Gewünschte Räume mit Slot und Datum (Raum-IDs aus list_rooms)"
},
"services": {
"default": [],
"description": "Optionale Zusatzservices (Service-IDs aus list_services)",
"maxItems": 20,
"type": "array",
"items": {
"type": "object",
"properties": {
"serviceId": {
"type": "string",
"minLength": 1
},
"quantity": {
"default": 1,
"type": "integer",
"minimum": 1,
"maximum": 100
},
"notes": {
"type": "string",
"maxLength": 2000
}
},
"required": [
"serviceId"
]
}
},
"title": {
"description": "Optionaler Titel des Anlasses",
"type": "string",
"maxLength": 200
},
"notes": {
"description": "Optionale Bemerkungen",
"type": "string",
"maxLength": 2000
},
"participants": {
"description": "Anzahl Personen — Pflicht, wenn Verpflegung pro Person verrechnet wird",
"anyOf": [
{
"type": "integer",
"minimum": 1,
"maximum": 500
},
{
"type": "null"
}
]
},
"duration": {
"type": "string",
"enum": [
"EIN_TAG",
"ZWEI_TAGE",
"DREI_TAGE",
"VIER_TAGE"
],
"description": "Buchungsdauer; bei Mehrtagen buchen alle Räume GANZTAGS"
},
"startTime": {
"description": "Startzeit 'HH:00' (08–17) — Pflicht bei EIN_TAG, verboten bei Mehrtagen",
"anyOf": [
{
"type": "string",
"pattern": "^(0[89]|1[0-7]):00$"
},
{
"type": "null"
}
]
},
"endTime": {
"description": "Endzeit 'HH:00' (09–18) — Pflicht bei EIN_TAG, verboten bei Mehrtagen",
"anyOf": [
{
"type": "string",
"pattern": "^(09|1[0-8]):00$"
},
{
"type": "null"
}
]
},
"contactName": {
"type": "string",
"minLength": 2,
"maxLength": 120,
"description": "Name der Kontaktperson"
},
"contactEmail": {
"type": "string",
"maxLength": 254,
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"description": "E-Mail der Kontaktperson — hierhin geht die Bestätigung"
},
"contactPhone": {
"description": "Optionale Telefonnummer",
"type": "string",
"maxLength": 40
}
},
"required": [
"rooms",
"duration",
"contactName",
"contactEmail"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Prompts recomendados
list_roomslist_roomsComunidad
Evidencia