Server definition
- Hash
- sha256:81d359ee85a4ca73255d91ca07c6ab31c3e2d012ef2eb6f7b274bb7b85f4c780
- What it is
- What a remote MCP server returned when asked what it offers: 6 tools
The blob, as servednamed by its sha256
{
"instructions": "Orbit ist eine Plattform für Workshop- und Seminarräume (Preise in CHF). Räume werden pro Tag in drei Slots gebucht: vormittag (08:00–12:00), nachmittag (13:00–18:00) oder ganztags (08:00–18:00). Lese-Tools liefern Räume, Verfügbarkeiten und Services mit Standardpreisen. quote_booking berechnet den unverbindlichen Gesamtpreis; request_booking stellt eine unverbindliche Buchungsanfrage (kein Slot-Lock — das Orbit-Team bestätigt per E-Mail). Empfohlener Ablauf: check_availability → quote_booking → request_booking. Mit API-Token (Authorization: Bearer) bucht create_booking verbindlich mit den Konditionen des Kunden; quote_booking ist dann personalisiert.",
"tools": [
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"date": {
"description": "Datum im Format YYYY-MM-DD",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"roomIds": {
"description": "Optional: nur diese Raum-IDs prüfen (IDs aus list_rooms)",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"date"
],
"type": "object"
},
"name": "check_availability",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"contactEmail": {
"description": "E-Mail der Kontaktperson — hierhin geht die Bestätigung",
"format": "email",
"maxLength": 254,
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"type": "string"
},
"contactName": {
"description": "Name der Kontaktperson",
"maxLength": 120,
"minLength": 2,
"type": "string"
},
"contactPhone": {
"description": "Optionale Telefonnummer",
"maxLength": 40,
"type": "string"
},
"duration": {
"description": "Buchungsdauer; bei Mehrtagen buchen alle Räume GANZTAGS",
"enum": [
"EIN_TAG",
"ZWEI_TAGE",
"DREI_TAGE",
"VIER_TAGE"
],
"type": "string"
},
"endTime": {
"anyOf": [
{
"pattern": "^(09|1[0-8]):00$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Endzeit 'HH:00' (09–18) — Pflicht bei EIN_TAG, verboten bei Mehrtagen"
},
"notes": {
"description": "Optionale Bemerkungen",
"maxLength": 2000,
"type": "string"
},
"participants": {
"anyOf": [
{
"maximum": 500,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Anzahl Personen — Pflicht, wenn Verpflegung pro Person verrechnet wird"
},
"rooms": {
"description": "Gewünschte Räume mit Slot und Datum (Raum-IDs aus list_rooms)",
"items": {
"properties": {
"date": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"roomId": {
"minLength": 1,
"type": "string"
},
"slot": {
"enum": [
"VORMITTAG",
"NACHMITTAG",
"GANZTAGS",
"ZEITFENSTER"
],
"type": "string"
}
},
"required": [
"roomId",
"slot",
"date"
],
"type": "object"
},
"maxItems": 16,
"minItems": 1,
"type": "array"
},
"services": {
"default": [],
"description": "Optionale Zusatzservices (Service-IDs aus list_services)",
"items": {
"properties": {
"notes": {
"maxLength": 2000,
"type": "string"
},
"quantity": {
"default": 1,
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"serviceId": {
"minLength": 1,
"type": "string"
}
},
"required": [
"serviceId"
],
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"startTime": {
"anyOf": [
{
"pattern": "^(0[89]|1[0-7]):00$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Startzeit 'HH:00' (08–17) — Pflicht bei EIN_TAG, verboten bei Mehrtagen"
},
"title": {
"description": "Optionaler Titel des Anlasses",
"maxLength": 200,
"type": "string"
}
},
"required": [
"rooms",
"duration",
"contactName",
"contactEmail"
],
"type": "object"
},
"name": "create_booking",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"category": {
"description": "Optional: Kategorie-Slug zum Filtern (siehe `category.slug` im Ergebnis)",
"type": "string"
}
},
"type": "object"
},
"name": "list_rooms",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {},
"type": "object"
},
"name": "list_services",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"duration": {
"description": "Buchungsdauer; bei Mehrtagen buchen alle Räume GANZTAGS",
"enum": [
"EIN_TAG",
"ZWEI_TAGE",
"DREI_TAGE",
"VIER_TAGE"
],
"type": "string"
},
"endTime": {
"anyOf": [
{
"pattern": "^(09|1[0-8]):00$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Endzeit 'HH:00' (09–18) — Pflicht bei EIN_TAG, verboten bei Mehrtagen"
},
"notes": {
"description": "Optionale Bemerkungen",
"maxLength": 2000,
"type": "string"
},
"participants": {
"anyOf": [
{
"maximum": 500,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Anzahl Personen — Pflicht, wenn Verpflegung pro Person verrechnet wird"
},
"rooms": {
"description": "Gewünschte Räume mit Slot und Datum (Raum-IDs aus list_rooms)",
"items": {
"properties": {
"date": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"roomId": {
"minLength": 1,
"type": "string"
},
"slot": {
"enum": [
"VORMITTAG",
"NACHMITTAG",
"GANZTAGS",
"ZEITFENSTER"
],
"type": "string"
}
},
"required": [
"roomId",
"slot",
"date"
],
"type": "object"
},
"maxItems": 16,
"minItems": 1,
"type": "array"
},
"services": {
"default": [],
"description": "Optionale Zusatzservices (Service-IDs aus list_services)",
"items": {
"properties": {
"notes": {
"maxLength": 2000,
"type": "string"
},
"quantity": {
"default": 1,
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"serviceId": {
"minLength": 1,
"type": "string"
}
},
"required": [
"serviceId"
],
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"startTime": {
"anyOf": [
{
"pattern": "^(0[89]|1[0-7]):00$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Startzeit 'HH:00' (08–17) — Pflicht bei EIN_TAG, verboten bei Mehrtagen"
},
"title": {
"description": "Optionaler Titel des Anlasses",
"maxLength": 200,
"type": "string"
}
},
"required": [
"rooms",
"duration"
],
"type": "object"
},
"name": "quote_booking",
"outputSchema": null
},
{
"description": "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.",
"inputSchema": {
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"contactEmail": {
"description": "E-Mail der Kontaktperson — hierhin geht die Bestätigung",
"format": "email",
"maxLength": 254,
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"type": "string"
},
"contactName": {
"description": "Name der Kontaktperson",
"maxLength": 120,
"minLength": 2,
"type": "string"
},
"contactPhone": {
"description": "Optionale Telefonnummer",
"maxLength": 40,
"type": "string"
},
"duration": {
"description": "Buchungsdauer; bei Mehrtagen buchen alle Räume GANZTAGS",
"enum": [
"EIN_TAG",
"ZWEI_TAGE",
"DREI_TAGE",
"VIER_TAGE"
],
"type": "string"
},
"endTime": {
"anyOf": [
{
"pattern": "^(09|1[0-8]):00$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Endzeit 'HH:00' (09–18) — Pflicht bei EIN_TAG, verboten bei Mehrtagen"
},
"notes": {
"description": "Optionale Bemerkungen",
"maxLength": 2000,
"type": "string"
},
"participants": {
"anyOf": [
{
"maximum": 500,
"minimum": 1,
"type": "integer"
},
{
"type": "null"
}
],
"description": "Anzahl Personen — Pflicht, wenn Verpflegung pro Person verrechnet wird"
},
"rooms": {
"description": "Gewünschte Räume mit Slot und Datum (Raum-IDs aus list_rooms)",
"items": {
"properties": {
"date": {
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"type": "string"
},
"roomId": {
"minLength": 1,
"type": "string"
},
"slot": {
"enum": [
"VORMITTAG",
"NACHMITTAG",
"GANZTAGS",
"ZEITFENSTER"
],
"type": "string"
}
},
"required": [
"roomId",
"slot",
"date"
],
"type": "object"
},
"maxItems": 16,
"minItems": 1,
"type": "array"
},
"services": {
"default": [],
"description": "Optionale Zusatzservices (Service-IDs aus list_services)",
"items": {
"properties": {
"notes": {
"maxLength": 2000,
"type": "string"
},
"quantity": {
"default": 1,
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"serviceId": {
"minLength": 1,
"type": "string"
}
},
"required": [
"serviceId"
],
"type": "object"
},
"maxItems": 20,
"type": "array"
},
"startTime": {
"anyOf": [
{
"pattern": "^(0[89]|1[0-7]):00$",
"type": "string"
},
{
"type": "null"
}
],
"description": "Startzeit 'HH:00' (08–17) — Pflicht bei EIN_TAG, verboten bei Mehrtagen"
},
"title": {
"description": "Optionaler Titel des Anlasses",
"maxLength": 200,
"type": "string"
}
},
"required": [
"rooms",
"duration",
"contactName",
"contactEmail"
],
"type": "object"
},
"name": "request_booking",
"outputSchema": null
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:81d359ee85a4ca73255d91ca07c6ab31c3e2d012ef2eb6f7b274bb7b85f4c780 | sha256sum