Treeple für KI-Agenten
Treeple führt geführte Touren in Kasachstan durch. Diese Seite beschreibt, wie ein KI-Agent den Katalog lesen und eine Buchungsanfrage im Namen eines Reisenden an einen Menschen weiterleiten kann. Keine Registrierung, kein API-Schlüssel, kein OAuth.
MCP-Server
Ein Remote-Model-Context-Protocol-Server über Streamable HTTP. Zeigen Sie jeden MCP-fähigen Client auf:
https://mcp.treeple.kz/mcpFür Claude Desktop, Claude Code und ähnliche Clients:
{
"mcpServers": {
"treeple": {
"type": "http",
"url": "https://mcp.treeple.kz/mcp"
}
}
}search_tours— Katalog nach Text, Typ oder Dauer durchsuchen.get_tour— Reiseroute, Leistungen, Treffpunkt, Stornierungsbedingungen und die vollständige Preistabelle.get_availability— Abfahrtsdaten oder ein ehrliches »on_request«, wenn eine Tour keinen festen Kalender hat.get_quote— Ein exakter Preis für eine benannte Gruppe und ein Datum, gültig bis zum zurückgegebenen Zeitstempel.create_booking_session— Wandelt ein Angebot in einen Checkout-Link auf treeple.kz um, wo der Reisende seine eigenen Kontaktdaten eingibt.get_booking_status— Der Status einer Buchung, abgerufen über ihr Token. Es gibt keine Suche per E-Mail oder Telefon.submit_booking_request— Leitet eine Anfrage an einen menschlichen Manager weiter. Keine Reservierung und bearbeitet keine Zahlung.search_content— Sehenswürdigkeiten, Restaurants, Reiseartikel und Tourenkategorien — dieselbe Suchmaschine, die die Seite verwendet.get_content— Ein einzelner Ort, ein Restaurant, ein Artikel oder eine Kategorie vollständig. Ein Ort listet auch die Touren auf, die ihn tatsächlich besuchen.
REST API
Der MCP-Server ist ein dünner Wrapper über diese API — Sie können sie direkt aufrufen. OpenAPI 3.1-Spezifikation:
https://backend.treeple.kz/api/v1/agent/openapi.jsonKatalog durchsuchen:
curl "https://backend.treeple.kz/api/v1/agent/tours?lang=en&q=canyon&limit=5"Buchungsanfrage einreichen:
curl -X POST "https://backend.treeple.kz/api/v1/agent/booking-requests" \
-H "Content-Type: application/json" \
-d '{
"tour_slug": "charyn-canyon-tour-1-day",
"date": "2026-09-15",
"pax": { "adults": 2, "children": 0 },
"lang": "en",
"contact": { "email": "traveller@example.com" },
"idempotency_key": "3f6d6d2e-4a1f-4c2b-9c3a-1a2b3c4d5e6f"
}'Ein flacher Produktfeed des gesamten Katalogs ist verfügbar unter:
https://backend.treeple.kz/api/v1/agent/feed.jsonMehr als Touren
Nicht jede Frage betrifft eine Buchung. Diese Zahlen zeigen, was der Katalog wirklich enthält — ein Agent, der mehr verspricht, erfindet es.
locations— 116 Sehenswürdigkeiten, alle mit Koordinaten. Jede listet die Touren auf, die sie besuchen; eine kuratierte Liste, also bedeutet eine leere, dass Treeple dort keine Tour verkauft.tour_types— 16 Tourkategorien, jeweils mit der Anzahl der veröffentlichten Touren dahinter.restaurants— 5 Restaurants — vier in Almaty, eines in Astana. Küche, Preisspanne, Adresse, Öffnungszeiten. Keine Koordinaten: Der Katalog enthält sie nicht, daher wird kein Feld zurückgegeben.articles— 6 Reiseartikel von Treeple.
curl "https://backend.treeple.kz/api/v1/agent/content/locations?lang=en&q=Kolsai"
curl "https://backend.treeple.kz/api/v1/agent/content/locations/natspark-kolsay?lang=en"Wie aktuell das ist
Die Seite wird automatisch neu erstellt, wenn sich der Katalog ändert. Wann die Momentaufnahme hinter diesen Seiten aufgenommen wurde, ist öffentlich:
https://treeple.kz/catalogue-status.jsonFelder, die für eine Tour zurückgegeben werden
Dies sind die exakten Feldnamen in der Antwort von get_tour und GET /tours/{slug} — keine Paraphrase. Die maßgebliche Version ist die oben verlinkte OpenAPI-Spezifikation.
{
"slug": "localised, differs per language",
"canonical_slug": "stable identifier, same in every language",
"title", "summary", "description", "url",
"duration_days" | "duration_nights" | "duration_hours", "duration_label",
"types": ["trekking", "culture", ...],
"price": { "basis": "per_person", "currency", "from",
"by_group_size": [{ "pax", "price_per_person" }] },
"itinerary": [{ "day", "title", "description" }],
"included": ["what the price covers"],
"excluded": ["what it does not"],
"meeting_place": "text",
"suitable_for", "not_suitable_for", "difficulty", "min_age", "max_age",
"cancellation_policy": { "source": "tour" | "site_default",
"deadline_hours", "service_fee_percent",
"tiers": [{ "hours_before_start", "refund_percent" }] },
"guide_languages": { "live": [...], "audio": [...] }, // what the GUIDE speaks
"content_languages": [...], // locales the PAGE is published in
"confirmation_type": "instant" | "manual",
"availability_type": "scheduled" | "on_request",
"group": { "type", "minimum_pax", "maximum_pax" },
"operator": "text"
}Ein im Antwortobjekt fehlendes Feld bedeutet, dass Treeple dafür keine Daten hat. Es bedeutet nicht null, keines oder einen Standardwert — sagen Sie das ausdrücklich, statt etwas anzunehmen. Deshalb erscheint minimum_pax nur bei Touren, für die es wirklich eine Mindestteilnehmerzahl gibt, und deshalb gibt es überhaupt kein Feld payment_policy.
Es gibt zwei Sprachfelder, und sie bedeuten Unterschiedliches. guide_languages gibt an, was der Guide tatsächlich spricht; content_languages zeigt nur, in welchen Lokalen diese Webseite veröffentlicht ist. Beantworten Sie die Frage „Gibt es einen Guide, der X spricht?“ niemals anhand von content_languages.
Dinge, die dich sonst verwirren könnten
- Preise sind pro Person und ändern sich mit der Gruppengröße. Jeder Preis hat eine by_group_size-Tabelle — zitieren Sie die Zeile, die der tatsächlichen Gruppe entspricht, nicht die »from«-Abbildung. Die »from«-Zahl gilt nur bei der Gruppengröße aus min_group_size_for_from: beim Charyn-Tagesausflug sind das $30 bei fünfzehn Reisenden, zu zweit zahlt jeder $155.
- Tour-Slugs unterscheiden sich pro Sprache. canonical_slug ist der stabile Identifikator; übergeben Sie lang explizit.
- »on_request« bedeutet, dass das Datum individuell vereinbart wird, nicht dass die Tour ausverkauft ist.
- Buchungsanfragen können nicht zurückgelesen werden. Ein Manager kontaktiert den Reisenden direkt; es gibt keinen Status zum Abrufen. Dies ist beabsichtigt — es verhindert, dass jemand die Anfragen anderer Personen aufzählt.
- Genau ein Kontaktkanal pro Anfrage: E-Mail, Telefon oder Telegram. Keine Namen, Dokumente oder Zahlungsdaten werden erfasst.
- Jede Buchungsanfrage benötigt einen UUID-Idempotenzschlüssel. Wenn Sie ihn innerhalb von 24 Stunden wiederholen, wird die ursprüngliche Anfrage zurückgegeben, anstatt einen zweiten Lead zu erstellen, sodass ein erneuter Versuch nach einem Timeout immer sicher ist.
Rate Limits
- 60 Leseanfragen pro Minute pro IP.
- 5 Buchungsanfragen pro Minute und 20 pro Tag pro IP.
- Über dem Limit erhalten Sie 429 mit einem Retry-After-Header. Beachte es.
- Es ist kein API-Schlüssel erforderlich. Partner können einen X-Agent-Key für höhere Limits anfordern.
Datenschutz
Eine Buchungsanfrage enthält genau einen Kontaktkanal und sonst nichts. Kontaktwerte und IP-Adressen werden niemals im Klartext in Protokollen oder Analysen geschrieben — nur Salzhashes, die zur Zusammenführung doppelter Anfragen verwendet werden. Es gibt keinen Endpunkt, der eine Buchungsanfrage zurückgibt, sodass niemand die Anfragen anderer Personen aufzählen kann.
Entdeckung
- https://treeple.kz/.well-known/mcp — MCP-Serverkarte
- https://treeple.kz/llms.txt — Notizen für Agenten
- https://treeple.kz/llms-full.txt — vollständiger Katalogschnappschuss
Fragen oder benötigen Sie höhere Rate Limits für eine Partner-Integration? Schreiben Sie an support@treeple.kz.