orbit

Orbit Zürich: Workshop-Räume, Preise und freie Slots abfragen, Buchungsanfragen stellen.

Should I use this

Quality & Safety

A
Description quality
92%
Schema completeness
84%
Naming quality
93%
Poisoning risk
80%
Permission match
100%
Protocol compliance
100%

Findings (3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains URL to non-standard domainin create_booking
  • LOWTool 'check_availability' description lacks action verbin check_availability

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~2,601Tokens (tool definitions)
~3.3 KBTypical response size
Significant attention impact (2.03% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "orbit": {
      "url": "https://www.the-orbit.ch/api/mcp"
    }
  }
}

Remote endpoints

https://www.the-orbit.ch/api/mcpstreamable-http
https://the-orbit.ch/api/mcpstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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.

Input Schema

{
  "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#"
}

Recommended Prompts

browse_collection
Show me the [collection] from orbit
Expected tools: list_rooms
list_items
List all [items] available in orbit
Expected tools: list_rooms

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools