Treeple untuk agen AI
Treeple menjalankan tur berpemandu di Kazakhstan. Halaman ini menjelaskan bagaimana agen AI dapat membaca katalog dan menyerahkan permintaan pemesanan kepada manusia atas nama seorang wisatawan. Tanpa pendaftaran, tanpa kunci API, tanpa OAuth.
Server MCP
Server protokol konteks model jarak jauh melalui HTTP yang dapat dialirkan. Tunjukkan klien yang mampu MCP apa pun ke:
https://mcp.treeple.kz/mcpUntuk Claude Desktop, Claude Code, dan klien serupa:
{
"mcpServers": {
"treeple": {
"type": "http",
"url": "https://mcp.treeple.kz/mcp"
}
}
}search_tours— Cari katalog berdasarkan teks, jenis, atau durasi.get_tour— Rute perjalanan, inklusi, titik pertemuan, kebijakan pembatalan, dan tabel harga lengkap.get_availability— Tanggal keberangkatan, atau jujur « on_request » ketika tur tidak memiliki kalender tetap.get_quote— Harga pasti untuk grup dan tanggal tertentu, berlaku sampai timestamp yang dikembalikan.create_booking_session— Mengubah penawaran menjadi tautan checkout di treeple.kz, tempat wisatawan mengisi detail kontak mereka sendiri.get_booking_status— Status satu pemesanan, dilihat berdasarkan tokennya. Tidak ada pencarian lewat email atau telepon.submit_booking_request— Menyerahkan permintaan kepada manajer manusia. Bukan pemesanan dan tidak memproses pembayaran.search_content— Tempat wisata, restoran, artikel perjalanan, dan kategori тур — mesin pencari yang sama seperti yang dipakai situs.get_content— Satu tempat wisata, restoran, artikel, atau kategori secara lengkap. Sebuah tempat juga menampilkan tur yang benar-benar mengunjunginya.
API REST
Server MCP adalah pembungkus tipis di atas API ini — Anda dapat memanggilnya secara langsung. Spesifikasi OpenAPI 3.1:
https://backend.treeple.kz/api/v1/agent/openapi.jsonCari katalog:
curl "https://backend.treeple.kz/api/v1/agent/tours?lang=en&q=canyon&limit=5"Kirim permintaan pemesanan:
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"
}'Umpan produk datar dari seluruh katalog tersedia di:
https://backend.treeple.kz/api/v1/agent/feed.jsonDi luar tur
Tidak semua pertanyaan tentang pemesanan. Jumlah ini adalah isi katalog yang sebenarnya — agen yang menjanjikan lebih dari ini hanya mengada-ada.
locations— 116 tempat wisata, semuanya dengan koordinat. Masing-masing menampilkan tur yang mengunjunginya; daftar yang dikurasi, jadi jika kosong berarti Treeple tidak menjual tur di sana.tour_types— 16 kategori тур, masing-masing dengan jumlah тур yang dipublikasikan di dalamnya.restaurants— 5 restoran — empat di Almaty, satu di Astana. Masakan, kisaran harga, alamat, jam buka. Tanpa koordinat: katalog tidak menyimpannya, jadi tidak ada field yang dikembalikan.articles— 6 artikel perjalanan yang ditulis oleh 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"Seberapa terbaru ini
Situs ini dibangun ulang secara otomatis saat katalog berubah. Kapan snapshot di balik halaman ini diambil bersifat publik:
https://treeple.kz/catalogue-status.jsonBidang yang dikembalikan untuk tur
Ini adalah nama bidang yang persis dalam respons get_tour dan GET /tours/{slug} — bukan parafrasa. Versi yang menjadi acuan adalah spesifikasi OpenAPI yang ditautkan di atas.
{
"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"
}Bidang yang tidak ada dalam respons berarti Treeple tidak memiliki datanya. Itu tidak berarti nol, tidak ada, atau nilai default — sampaikan demikian alih-alih mengasumsikan. Inilah sebabnya minimum_pax hanya muncul untuk tur yang benar-benar memiliki aturan keberangkatan minimum, dan mengapa sama sekali tidak ada bidang payment_policy.
Ada dua bidang bahasa dan keduanya berarti berbeda. guide_languages adalah bahasa yang benar-benar dikuasai pemandu; content_languages hanya menunjukkan locale tempat halaman web ini diterbitkan. Jangan pernah menjawab “apakah ada pemandu yang bisa X” dari content_languages.
Hal-hal yang akan membuat Anda bingung jika tidak
- Harga per orang dan berubah sesuai ukuran grup. Setiap harga membawa tabel by_group_size — kutip baris yang cocok dengan grup sebenarnya, bukan angka « from ». Angka « from » hanya berlaku pada ukuran grup di min_group_size_for_from: pada wisata sehari Charyn itu $30 untuk lima belas orang, sedangkan berdua membayar $155 per orang.
- Slug tur berbeda per bahasa. canonical_slug adalah pengidentifikasi stabil; teruskan lang secara eksplisit.
- « on_request » berarti tanggal diatur secara individual, bukan tur terjual habis.
- Permintaan pemesanan tidak dapat dibaca ulang. Seorang manajer menghubungi wisatawan secara langsung; tidak ada status untuk disurvei. Ini disengaja — ini yang mencegah siapa pun menghitung ulang permintaan orang lain.
- Tepat satu saluran kontak per permintaan: email, telepon, atau Telegram. Tidak ada nama, dokumen, atau detail pembayaran yang dikumpulkan.
- Setiap permintaan pemesanan memerlukan kunci idempotency UUID. Mengulanginya dalam 24 jam mengembalikan permintaan asli alih-alih membuat prospek kedua, jadi mencoba lagi setelah timeout selalu aman.
Batas laju
- 60 permintaan baca per menit per IP.
- 5 permintaan pemesanan per menit dan 20 per hari per IP.
- Di atas batas Anda mendapatkan 429 dengan header Retry-After. Hormati itu.
- Kunci API tidak diperlukan. Mitra dapat meminta X-Agent-Key untuk batas yang lebih tinggi.
Privasi
Permintaan pemesanan membawa tepat satu saluran kontak dan tidak ada yang lain. Nilai kontak dan alamat IP tidak pernah ditulis dalam teks biasa ke log atau analitik — hanya hash yang diasinkan, digunakan untuk menggabungkan permintaan duplikat. Tidak ada titik akhir yang mengembalikan permintaan pemesanan, jadi tidak ada orang yang dapat menghitung ulang pertanyaan orang lain.
Penemuan
- https://treeple.kz/.well-known/mcp — Kartu server MCP
- https://treeple.kz/llms.txt — catatan untuk agen
- https://treeple.kz/llms-full.txt — snapshot katalog lengkap
Pertanyaan, atau membutuhkan batas laju yang lebih tinggi untuk integrasi mitra? Tulis ke support@treeple.kz.