MCPサーバー

lodging-intelligence

ro.tria/lodging-intelligence

このMCPでできること

Finds and profiles Romanian accommodations and areas by location and character, with map and itinerary visualizations.

capabilities
Capabilities
Versiunea serverului MCP tria.ro, tool-urile publicate și VOCABULARUL complet, structurat: `tokeni` (interfața standard pentru intenții/facilități/experiențe/stil), `teme` (filtre avansate pe 4 piloni) și `criterii` (semnale avansate de ranking). Toate cu slug+etichetă, ca să ceri exact fără să ghicești și fără să confunzi axele. Plus ce e rezervat.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {}}
出力スキーマ
{'type': 'object', 'properties': {'tools': {'type': 'array', 'items': {'type': 'string'}}, 'server': {'type': 'string'}, 'version': {'type': 'string'}, 'rezervat': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Parametri planificați, încă inactivi'}, 'resources': {'type': 'object', 'properties': {'templates': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'mimeType': {'type': 'string'}, 'uriTemplate': {'type': 'string'}}}}}, 'description': 'Resurse dereferențiabile prin resources/read (template-uri), unde există. Hărțile statice generate nu sunt expuse.'}, 'rezolutie': {'type': 'string', 'description': 'Cum se citește câmpul `rezolutie` din rezultate'}, 'vocabular': {'type': 'object', 'properties': {'nume': {'type': 'string', 'description': 'Ce acceptă `nume`'}, 'teme': {'type': 'array', 'items': {'type': 'object', 'properties': {'pilon': {'type': 'string'}, 'optiuni': {'type': 'array', 'items': {'type': 'object', 'properties': {'slug': {'type': 'string'}, 'label': {'type': 'string'}}}}}}, 'description': 'FILTRU tematic (param `teme`), pe cei 4 piloni; aceleași filtre ca pe site. Multi-apartenență: o cazare ∈ mai multe teme.'}, 'model': {'type': 'string', 'description': 'Semantica vocabularului'}, 'where': {'type': 'string', 'description': 'Ce acceptă `where`'}, 'tokeni': {'type': 'array', 'items': {'type': 'object', 'properties': {'slug': {'type': 'string'}, 'input': {'type': 'boolean', 'description': 'Poate fi trimis în find_accommodations(tokeni)'}, 'label': {'type': 'string'}, 'negabil': {'type': 'boolean', 'description': 'Poate fi trimis cu minus, ex. cultura-, pentru absența tokenului real de caracter'}}}, 'description': 'Vocabular public standard pentru agenți; tokenii interni ai catalogului nu sunt expuși.'}, 'functii': {'type': 'string', 'description': 'teme = filtru · criterii/sort = ordine; se combină'}, 'criterii': {'type': 'array', 'items': {'type': 'object', 'properties': {'slug': {'type': 'string'}, 'label': {'type': 'string'}}}, 'description': 'Vocabular de RANKING (param `criterii` = compozit, sau `sort` = o dimensiune).'}, 'arhetipuri': {'type': 'string', 'description': 'Cum se citesc arhetipurile/tokenii din rezultate'}}}, 'updated_at': {'type': 'string'}}}
explore_areas
Explore Areas
Clasează ZONE (nu cazări) după caracter, ca să răspunzi „unde să merg". scope: "judet" (implicit), "localitate" (în interiorul unui județ — dă `where`), "statiune" (litoral). Ranking după un semnal (`sort`) sau compozit (`criterii`). Dacă dai `where`, tool-ul rămâne în zona părinte rezolvată și nu întoarce județe naționale. Ex.: județele cele mai montane, localitățile cele mai verzi din Cluj, stațiunile cele mai potrivite pentru familie. Sursă: tria.ro.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'sort': {'type': 'string', 'description': 'O dimensiune de ranking: liniste, natura, verde, parcuri, arii_protejate, munte, schi, apa, family, gastro, vin_crame, crame, cultura_istorie, cultura, nightlife, business, relaxare, magnetism, turism, urbanitate, viata-de-seara, viata_de_seara (pentru statiune și plaja/farmec/anvergura/afluenta).'}, 'limit': {'type': 'integer', 'description': 'Top N (implicit 8, max 30)'}, 'scope': {'type': 'string', 'description': 'Granularitatea ariei: judet (implicit) | localitate | statiune'}, 'where': {'type': 'string', 'description': 'Județul părinte pentru scope=localitate, ex. "Brașov"; acceptă și o localitate/stațiune, caz în care se folosește județul ei. Dacă `scope=judet` și dai `where`, tool-ul auto-corectează la localitățile din județul/locul rezolvat.'}, 'criterii': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Ranking compozit (media) — doar pentru statiune.'}}}
出力スキーマ
{'type': 'object', 'properties': {'areas': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string', 'description': 'Numele zonei (județ / localitate / stațiune)'}, 'count': {'type': 'integer', 'description': 'Câte cazări are zona'}, 'photo': {'type': 'string'}, 'score': {'type': 'number', 'description': 'Scorul mediu pe dimensiunea cerută (unde se aplică)'}, 'where': {'type': 'string', 'description': 'Valoarea exactă de folosit în find_accommodations(where) pentru zona asta'}, 'find_args': {'type': 'object', 'properties': {'where': {'type': 'string'}, 'criterii': {'type': 'array', 'items': {'type': 'string'}}}, 'description': 'Argumente replayabile pentru find_accommodations. Folosește-le ca atare pentru follow-up pe cazare.'}}}, 'description': 'Zonele clasate'}, 'judet': {'type': 'string', 'description': 'Județul părinte (doar scope=localitate)'}, 'scope': {'type': 'string'}}}
find_accommodations
Find Accommodations
Găsește cazări ORIUNDE în România (tria.ro), pe litoral sau în țară, după LOC, CARACTER și (în viitor) PERIOADĂ. TOȚI parametrii sunt OPȚIONALI — fără niciunul întoarce TOPUL NAȚIONAL (toate cazările, clasate ca recomandate). `where` = locație structurată (rezolvată server-side); dacă locația nu se rezolvă, tool-ul întoarce eroare în loc de top național. `nume` = doar nume de cazare/proprietate/brand, nu facilități sau experiențe. Pentru agenți AI, folosește `tokeni` pentru orice intenție de caracter, experiență, facilitate sau stil ("liniste", "animat", "retras", "accesibil", "munte", "mare", "apa", "natura", "verde", "parcuri", "arii-protejate", "podgorie", "gastronomie", "viata-de-seara", "liniste-seara", "cultura", "urban", "balnear", "vibrant", "sezon-vara", "sezon-iarna", "activ-noaptea", "sezonier", "activ-tot-anul", "weekend", "cu-piscina", "cu-spa", "cu-restaurant", "cabane", "lux", "spa", "ciubar", "drumetii", "ciclism", "atv", "delta", "echitatie", "schi", "degustari-vin", "foc-tabara", "piscina", "copii", "evenimente"). Pentru negații pe tokenii reali de caracter, adaugă minus la tokenul public, ex. ["urban","animat","cultura-"] pentru urban și animat, dar fără tokenul cultural din profilul zonei. Serverul mapează intern tokenii la filtre/ranking/experiențe. Întoarce o listă clasată cu semnalele de caracter tria; fiecare rezultat poartă `rezolutie` (adâncimea semnalului per rând, național=ambient). NB: lista implicită este recomandate/încredere; pentru „cea mai bună pentru mine" se exprimă tot prin `tokeni`; `criterii`/`teme` sunt parametri avansați/legacy. Fiecare card poate purta `pret_de_la` = preț ORIENTATIV „de la X" (actualizat pentru weekendul următor, unde e disponibil — NU e disponibilitate garantată; rezervarea/verificarea finală pe get_accommodation → site-ul partener). La căutări largi (doar temă fără loc, sau loc fără temă) răspunsul include `restrange` — zone (cu count) + teme pe piloni (cadru/stil/atmosferă/facilități, cu count): OFERĂ-l ca CLARIFICARE („în ce zonă? ce stil/atmosferă?"), dar NU ești obligat să restrângi — rezultatele vin oricum. Pe hartă: show_map cu aceiași parametri. Atribuie sursa tria.ro.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'near': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}, 'radius_km': {'type': 'number', 'description': 'Rază (implicit 10)'}}, 'description': '„Lângă mine" / în jurul unui punct. Alternativ cu where.'}, 'nume': {'type': 'string', 'description': 'DOAR nume de cazare/proprietate/brand, ex. "Hotel Studis", "Vila Maria". Nu folosi pentru facilități, experiențe, stil sau caracter; acelea merg în `tokeni`.'}, 'page': {'type': 'integer', 'description': 'Pagina (implicit 1) — total arată câte corespund'}, 'sort': {'type': 'string', 'description': 'AVANSAT/legacy: o singură dimensiune de ranking când nu dai tokeni/criterii: popularitate | liniste | natura | … (vezi criterii). Pentru user intent folosește `tokeni`; pentru potrivire personală, serverul calculează dinamic `potrivire` când există intenție.'}, 'teme': {'type': 'array', 'items': {'type': 'string'}, 'description': 'AVANSAT/legacy: filtre UI/SEO interne. Pentru agenți AI, preferă `tokeni`; o temă este intern un set de tokeni.'}, 'limit': {'type': 'integer', 'description': 'Câte pe pagină (implicit 10, max 30)'}, 'where': {'type': 'string', 'description': 'UNDE — LOCAȚIE structurată: județ / oraș / localitate / stațiune; acceptă și forma calificată "localitate, județ" (ex. "Filiași, Dolj"). Ex. "Brașov", "Bran", "Mamaia". Reperele cunoscute (sat/lac/pârtie pe care harta nu le are ca unitate: Colibița, Bâlea, Rânca, Cheia) se rezolvă la COMUNA care le conține. OPȚIONAL. Dacă locația nu se rezolvă, primești eroare; pentru top național omite `where`. Nu pune aici facilități/experiențe sau nume de cazare; facilitățile/experiențele merg în `tokeni`, numele cazării merge în `nume`.'}, 'tokeni': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Interfața standard pentru agenți: tokeni publici într-o singură listă. Ex. ["ciubar"], ["lux"], ["spa"], ["piscina"], ["drumetii"], ["mare","retras"], ["munte","liniste"], ["urban","gastronomie"]. Acceptă semn pe tokenii reali de caracter: `cultura+` = cere tokenul, `cultura-`/`-cultura`/`fara cultura` = exclude cazările care poartă tokenul intern de caracter. Negația nu se aplică facilităților/experiențelor. Pentru orice user intent/facilitate/experiență/stil folosește acest parametru, nu `nume`, `teme` sau `criterii`. Vezi capabilities().vocabular.tokeni.'}, 'criterii': {'type': 'array', 'items': {'type': 'string'}, 'description': 'AVANSAT/legacy: ranking pe semnale interne. Pentru agenți AI, preferă `tokeni`. Vocabular: liniste,natura,munte,arii_protejate,schi,apa,family,gastro,vin_crame,crame,cultura_istorie,cultura,nightlife,business,relaxare,urbanitate,izolare,magnetism,turism,afluenta_turistica,farmec,dezirabilitate,aproape_de_mare,aproape_de_aeroport,aproape_de_tren.'}}}
出力スキーマ
{'type': 'object', 'properties': {'page': {'type': 'integer'}, 'total': {'type': 'integer', 'description': 'Total cazări care corespund (poți pagina pentru restul)'}, 'results': {'type': 'array', 'items': {'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}, 'url': {'type': 'string', 'description': 'Pagina tria.ro a cazării'}, 'name': {'type': 'string', 'description': 'Numele cazării'}, 'pret': {'type': 'object', 'properties': {'de_la': {'type': 'integer', 'description': 'Cel mai mic preț orientativ peste perioadele de mai jos (fără taxe). În interfață se redă „de la X lei”, fără sufix.'}, 'moneda': {'type': 'string'}, 'perioade': {'type': 'array', 'items': {'type': 'object', 'properties': {'de_la': {'type': 'integer', 'description': 'Preț orientativ pe această perioadă; absent = fără disponibilitate afișată (de verificat pe partener).'}, 'interval': {'type': 'string'}, 'perioada': {'type': 'string', 'description': 'Weekendul următor / Peste o lună / Peste 2-3 luni'}, 'rezervare_url': {'type': 'string', 'description': 'Link către pagina de rezervare a partenerului.'}}}, 'description': '3 perioade-eșantion (nu calendar complet).'}}, 'description': 'Preț ORIENTATIV live pe 3 perioade — doar la get_accommodation. Nu e disponibilitate garantată; verificarea finală + rezervarea se fac pe site-ul partener. Fără taxe/comisioane.'}, 'slug': {'type': 'string', 'description': 'Slug exact al cazării — copiază această valoare în get_accommodation/get_concierge_brief; nu slugifica numele.'}, 'teme': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Teme de descoperire tria (cabane, retras, cu-piscina…) — naționale'}, 'type': {'type': 'string', 'description': 'Categoria brută internă'}, 'acces': {'type': 'object', 'properties': {'mare_km': {'type': 'number'}, 'tren_km': {'type': 'number'}, 'aeroport_km': {'type': 'number'}}, 'description': 'Distanța până la cel mai apropiat (km), unde există — național'}, 'photo': {'type': 'string', 'description': 'Poză de copertă — în liste poate lipsi; la get_accommodation este cover-ul disponibil.'}, 'rooms': {'type': 'array', 'items': {'type': 'object', 'properties': {'max': {'type': 'integer', 'description': 'Capacitate maximă persoane'}, 'beds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Paturi'}, 'name': {'type': 'string', 'description': 'Numele camerei/unității'}, 'size': {'type': 'number', 'description': 'Suprafață, unde există'}, 'unit': {'type': 'string', 'description': 'Unitate suprafață, de obicei mp'}, 'price': {'type': 'string', 'description': 'Preț text pentru cameră, informativ'}, 'photos': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Fotografii cameră, limitate'}, 'amenities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dotări pe cameră, limitate'}, 'price_from': {'type': 'number', 'description': 'Preț numeric minim pentru cameră, informativ'}, 'description': {'type': 'string', 'description': 'Descriere scurtă a camerei'}}}, 'description': 'Camere/unități, doar la get_accommodation, compactate și limitate ca să nu umfle contextul.'}, 'stars': {'type': 'integer', 'description': 'Stele (din sursa de conținut)'}, 'resort': {'type': 'string', 'description': 'Stațiunea de pe litoral'}, 'source': {'type': 'string', 'description': 'Mereu "tria.ro"'}, 'arhetip': {'type': 'array', 'items': {'type': 'object', 'properties': {'kind': {'type': 'string', 'description': 'strong | soft — cât de tare e tokenul în profilul zonei'}, 'slug': {'type': 'string', 'description': 'Slug de temă tria când eticheta are pagină/filtru corespondent'}, 'label': {'type': 'string', 'description': 'Etichetă citibilă: la mare, retras, urban, gastronomie…'}}}, 'description': 'Arhetipul zonei din tokenii de contrast ai catalogului; limbajul preferat pentru explicații și matching.'}, 'gallery': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Galerie foto limitată — doar la get_accommodation, cu URL-uri publice/proxied tria unde există.'}, 'license': {'type': 'string', 'description': 'Licența datelor — atribuire necesară'}, 'origins': {'type': 'array', 'items': {'type': 'object', 'properties': {'judet': {'type': 'string'}, 'share': {'type': 'number'}}}, 'description': 'Originile vizitatorilor, pe județe'}, 'rezumat': {'type': 'string', 'description': 'Rezumat de caracter, într-o frază (originile vizitatorilor)'}, 'caracter': {'type': 'object', 'properties': {'apa': {'type': 'number'}, 'schi': {'type': 'number'}, 'cafea': {'type': 'number'}, 'munte': {'type': 'number'}, 'verde': {'type': 'number'}, 'family': {'type': 'number'}, 'farmec': {'type': 'number', 'description': 'Farmecul zonei — calitatea spațiului public (0–100)'}, 'gastro': {'type': 'number'}, 'natura': {'type': 'number'}, 'izolare': {'type': 'number'}, 'liniste': {'type': 'number'}, 'parcuri': {'type': 'number'}, 'business': {'type': 'number'}, 'plimbare': {'type': 'number'}, 'relaxare': {'type': 'number'}, 'nightlife': {'type': 'number'}, 'vin_crame': {'type': 'number'}, 'acces_auto': {'type': 'number'}, 'urbanitate': {'type': 'number'}, 'arii_protejate': {'type': 'number'}, 'dezirabilitate': {'type': 'number', 'description': 'Cât de căutată e zona (0–100)'}, 'cultura_istorie': {'type': 'number'}, 'acces_localitate': {'type': 'number'}}, 'description': 'Caracterul zonei pe intenții de ședere (0–100, doar cele cu semnal)'}, 'category': {'type': 'string', 'description': 'Categorie normalizată: hotel/pensiune/vila/apartament/hostel/resort/camping'}, 'etichete': {'type': 'array', 'items': {'type': 'string'}, 'description': '1–2 etichete în limbaj natural, derivate din caracter'}, 'amenities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Facilități (doar la get_accommodation)'}, 'potrivire': {'type': 'number', 'description': 'Potrivire cu INTENȚIA ta (0–100) — cât de bine se aliniază cazarea cu tokenii/criteriile cerute. Apare DOAR când ai dat o intenție. NU e un scor/rating absolut al cazării (nu notăm cazări).'}, 'rezolutie': {'type': 'object', 'properties': {'nivel': {'type': 'string', 'description': 'Granularitatea semnalului: identitate (loc anume) | local | ambient (zonă largă)'}, 'adancime': {'type': 'string', 'description': 'Profunzimea semnalelor: standard (național) | bazica; mai subțire la marginea litorală'}, 'incredere': {'type': 'number', 'description': '0–1: cât de bine acoperit e semnalul aici (mic la marginea litorală a modelului național r7)'}}, 'description': 'Provenance + încredere a semnalelor (mai bogat unde semnalul e fin, mai subțire la marginea litorală). Agentul îl CITEȘTE ca să calibreze încrederea; nu e parametru de request.'}, 'pret_de_la': {'type': 'string', 'description': 'Etichetă publică de preț informativ în forma „de la X lei”, fără sufix. Nu este disponibilitate și nu este ofertă de rezervare.'}, 'description': {'type': 'string', 'description': 'Descriere scurtă (doar la get_accommodation)'}}}, 'description': 'Cazările care corespund, clasate (eșantion — vezi total). Fiecare are `rezolutie`.'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer', 'description': 'Câte sunt în această pagină'}}}
get_accommodation
Get Accommodation
Profilul complet al unei cazări de pe tria.ro (după slug), litoral sau național: semnale de caracter, împrejurimi, acces, arhetipuri, descriere/facilități, camere/dotări pe cameră, preț ORIENTATIV live pe 3 perioade-eșantion (`pret`, unde e disponibil — nu e disponibilitate garantată; rezervarea/verificarea finală pe site-ul partener), galerie foto limitată și `rezolutie` (cât de bogat e semnalul). Copiază slug-ul exact din `results[].slug` sau din URL; nu slugifica numele. Fără contact.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['slug'], 'properties': {'slug': {'type': 'string', 'description': 'Slug exact din `find_accommodations.results[].slug` sau ultimul segment din URL, ex. "casa-anda-2e3cfc". Nu inventa/slugifica numele; dacă ai doar numele, caută întâi cu find_accommodations(nume=...).'}}}
出力スキーマ
{'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}, 'url': {'type': 'string', 'description': 'Pagina tria.ro a cazării'}, 'name': {'type': 'string', 'description': 'Numele cazării'}, 'pret': {'type': 'object', 'properties': {'de_la': {'type': 'integer', 'description': 'Cel mai mic preț orientativ peste perioadele de mai jos (fără taxe). În interfață se redă „de la X lei”, fără sufix.'}, 'moneda': {'type': 'string'}, 'perioade': {'type': 'array', 'items': {'type': 'object', 'properties': {'de_la': {'type': 'integer', 'description': 'Preț orientativ pe această perioadă; absent = fără disponibilitate afișată (de verificat pe partener).'}, 'interval': {'type': 'string'}, 'perioada': {'type': 'string', 'description': 'Weekendul următor / Peste o lună / Peste 2-3 luni'}, 'rezervare_url': {'type': 'string', 'description': 'Link către pagina de rezervare a partenerului.'}}}, 'description': '3 perioade-eșantion (nu calendar complet).'}}, 'description': 'Preț ORIENTATIV live pe 3 perioade — doar la get_accommodation. Nu e disponibilitate garantată; verificarea finală + rezervarea se fac pe site-ul partener. Fără taxe/comisioane.'}, 'slug': {'type': 'string', 'description': 'Slug exact al cazării — copiază această valoare în get_accommodation/get_concierge_brief; nu slugifica numele.'}, 'teme': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Teme de descoperire tria (cabane, retras, cu-piscina…) — naționale'}, 'type': {'type': 'string', 'description': 'Categoria brută internă'}, 'acces': {'type': 'object', 'properties': {'mare_km': {'type': 'number'}, 'tren_km': {'type': 'number'}, 'aeroport_km': {'type': 'number'}}, 'description': 'Distanța până la cel mai apropiat (km), unde există — național'}, 'photo': {'type': 'string', 'description': 'Poză de copertă — în liste poate lipsi; la get_accommodation este cover-ul disponibil.'}, 'rooms': {'type': 'array', 'items': {'type': 'object', 'properties': {'max': {'type': 'integer', 'description': 'Capacitate maximă persoane'}, 'beds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Paturi'}, 'name': {'type': 'string', 'description': 'Numele camerei/unității'}, 'size': {'type': 'number', 'description': 'Suprafață, unde există'}, 'unit': {'type': 'string', 'description': 'Unitate suprafață, de obicei mp'}, 'price': {'type': 'string', 'description': 'Preț text pentru cameră, informativ'}, 'photos': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Fotografii cameră, limitate'}, 'amenities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dotări pe cameră, limitate'}, 'price_from': {'type': 'number', 'description': 'Preț numeric minim pentru cameră, informativ'}, 'description': {'type': 'string', 'description': 'Descriere scurtă a camerei'}}}, 'description': 'Camere/unități, doar la get_accommodation, compactate și limitate ca să nu umfle contextul.'}, 'stars': {'type': 'integer', 'description': 'Stele (din sursa de conținut)'}, 'resort': {'type': 'string', 'description': 'Stațiunea de pe litoral'}, 'source': {'type': 'string', 'description': 'Mereu "tria.ro"'}, 'arhetip': {'type': 'array', 'items': {'type': 'object', 'properties': {'kind': {'type': 'string', 'description': 'strong | soft — cât de tare e tokenul în profilul zonei'}, 'slug': {'type': 'string', 'description': 'Slug de temă tria când eticheta are pagină/filtru corespondent'}, 'label': {'type': 'string', 'description': 'Etichetă citibilă: la mare, retras, urban, gastronomie…'}}}, 'description': 'Arhetipul zonei din tokenii de contrast ai catalogului; limbajul preferat pentru explicații și matching.'}, 'gallery': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Galerie foto limitată — doar la get_accommodation, cu URL-uri publice/proxied tria unde există.'}, 'license': {'type': 'string', 'description': 'Licența datelor — atribuire necesară'}, 'origins': {'type': 'array', 'items': {'type': 'object', 'properties': {'judet': {'type': 'string'}, 'share': {'type': 'number'}}}, 'description': 'Originile vizitatorilor, pe județe'}, 'rezumat': {'type': 'string', 'description': 'Rezumat de caracter, într-o frază (originile vizitatorilor)'}, 'caracter': {'type': 'object', 'properties': {'apa': {'type': 'number'}, 'schi': {'type': 'number'}, 'cafea': {'type': 'number'}, 'munte': {'type': 'number'}, 'verde': {'type': 'number'}, 'family': {'type': 'number'}, 'farmec': {'type': 'number', 'description': 'Farmecul zonei — calitatea spațiului public (0–100)'}, 'gastro': {'type': 'number'}, 'natura': {'type': 'number'}, 'izolare': {'type': 'number'}, 'liniste': {'type': 'number'}, 'parcuri': {'type': 'number'}, 'business': {'type': 'number'}, 'plimbare': {'type': 'number'}, 'relaxare': {'type': 'number'}, 'nightlife': {'type': 'number'}, 'vin_crame': {'type': 'number'}, 'acces_auto': {'type': 'number'}, 'urbanitate': {'type': 'number'}, 'arii_protejate': {'type': 'number'}, 'dezirabilitate': {'type': 'number', 'description': 'Cât de căutată e zona (0–100)'}, 'cultura_istorie': {'type': 'number'}, 'acces_localitate': {'type': 'number'}}, 'description': 'Caracterul zonei pe intenții de ședere (0–100, doar cele cu semnal)'}, 'category': {'type': 'string', 'description': 'Categorie normalizată: hotel/pensiune/vila/apartament/hostel/resort/camping'}, 'etichete': {'type': 'array', 'items': {'type': 'string'}, 'description': '1–2 etichete în limbaj natural, derivate din caracter'}, 'amenities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Facilități (doar la get_accommodation)'}, 'potrivire': {'type': 'number', 'description': 'Potrivire cu INTENȚIA ta (0–100) — cât de bine se aliniază cazarea cu tokenii/criteriile cerute. Apare DOAR când ai dat o intenție. NU e un scor/rating absolut al cazării (nu notăm cazări).'}, 'rezolutie': {'type': 'object', 'properties': {'nivel': {'type': 'string', 'description': 'Granularitatea semnalului: identitate (loc anume) | local | ambient (zonă largă)'}, 'adancime': {'type': 'string', 'description': 'Profunzimea semnalelor: standard (național) | bazica; mai subțire la marginea litorală'}, 'incredere': {'type': 'number', 'description': '0–1: cât de bine acoperit e semnalul aici (mic la marginea litorală a modelului național r7)'}}, 'description': 'Provenance + încredere a semnalelor (mai bogat unde semnalul e fin, mai subțire la marginea litorală). Agentul îl CITEȘTE ca să calibreze încrederea; nu e parametru de request.'}, 'pret_de_la': {'type': 'string', 'description': 'Etichetă publică de preț informativ în forma „de la X lei”, fără sufix. Nu este disponibilitate și nu este ofertă de rezervare.'}, 'description': {'type': 'string', 'description': 'Descriere scurtă (doar la get_accommodation)'}}}
get_concierge_brief
Get Concierge Brief
Brief deterministic pentru AI concierge al unei cazări: fapte publice, diferențiatori, întrebări sugerate, guardrails și CTA-uri permise. Nu consumă LLM, nu confirmă disponibilitate/preț final și nu expune contact direct; agentul folosește brief-ul ca să răspundă despre proprietate și zonă fără să inventeze. `slug` se copiază exact din `results[].slug` sau din ultimul segment al URL-ului; nu slugifica numele proprietății.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['slug'], 'properties': {'plan': {'type': 'string', 'description': 'free | pro. În local/prototip schimbă doar nivelul de detaliu și CTA-urile permise; nu activează billing.'}, 'slug': {'type': 'string', 'description': 'Slug exact din `find_accommodations.results[].slug` sau ultimul segment din URL, ex. "gramofon-inn-f28a36". Nu inventa/slugifica numele; dacă ai doar numele, caută întâi cu find_accommodations(nume=...).'}, 'intrebare': {'type': 'string', 'description': 'Întrebarea turistului; opțional. Tool-ul o clasifică simplu și întoarce un cadru de răspuns.'}}}
出力スキーマ
{'type': 'object', 'properties': {'mode': {'type': 'string', 'description': 'free | pro'}, 'facts': {'type': 'object', 'properties': {'rooms': {'type': 'array', 'items': {'type': 'object', 'properties': {'name': {'type': 'string'}, 'price': {'type': 'string'}, 'capacity': {'type': 'integer'}, 'amenities': {'type': 'array', 'items': {'type': 'string'}}}}}, 'summary': {'type': 'string'}, 'amenities': {'type': 'array', 'items': {'type': 'string'}}, 'character': {'type': 'array', 'items': {'type': 'object', 'properties': {'label': {'type': 'string'}, 'value': {'type': 'number'}}}}, 'archetypes': {'type': 'array', 'items': {'type': 'string'}}, 'photos_available': {'type': 'integer'}}}, 'source': {'type': 'string'}, 'license': {'type': 'string'}, 'property': {'type': 'object', 'properties': {'url': {'type': 'string'}, 'name': {'type': 'string'}, 'slug': {'type': 'string'}, 'category': {'type': 'string'}, 'location': {'type': 'string'}, 'verified': {'type': 'object', 'properties': {'situr': {'type': 'boolean'}, 'classification': {'type': 'string'}}}}}, 'question': {'type': 'object', 'properties': {'text': {'type': 'string'}, 'intent': {'type': 'string'}, 'answer_frame': {'type': 'array', 'items': {'type': 'string'}}}}, 'concierge': {'type': 'object', 'properties': {'allowed_cta': {'type': 'array', 'items': {'type': 'string'}}, 'owner_value': {'type': 'array', 'items': {'type': 'string'}}, 'positioning': {'type': 'array', 'items': {'type': 'string'}}, 'suggested_questions': {'type': 'array', 'items': {'type': 'string'}}}}, 'guardrails': {'type': 'array', 'items': {'type': 'string'}}, 'missing_profile_data': {'type': 'array', 'items': {'type': 'string'}}}}
show_itinerary_map
Show Itinerary Map
Afișează o hartă interactivă de itinerariu, cu puncte fixe, scene/grupe (ex. zile/etape/zone), chips pentru scene, carousel și autoplay opțional. Refolosește harta tria; traseul este schematic (linie dreaptă între puncte), nu rutare pe drumuri. Sursă: tria.ro.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'required': ['points'], 'properties': {'path': {'type': 'object', 'properties': {'mode': {'type': 'string', 'description': 'none|straight. Rutarea road este rezervată.'}, 'ordered_point_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Ordinea liniei schematice.'}}, 'description': 'Linie schematică între puncte.'}, 'title': {'type': 'string', 'description': 'Titlul hărții, ex. "Circuit 7 zile din Constanța".'}, 'points': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label'], 'properties': {'id': {'type': 'string', 'description': 'ID stabil în această hartă, ex. "zi1-start".'}, 'lat': {'type': 'number', 'description': 'Latitudine. Poate lipsi dacă dai slug de cazare tria.'}, 'lng': {'type': 'number', 'description': 'Longitudine. Poate lipsi dacă dai slug de cazare tria.'}, 'url': {'type': 'string', 'description': 'URL opțional. Pentru cazări tria poate fi rezolvat din slug.'}, 'meta': {'type': 'object', 'properties': {'day': {'type': 'integer'}, 'kind': {'type': 'string'}, 'note': {'type': 'string'}, 'nights': {'type': 'integer'}}, 'description': 'Metadate scurte pentru card.'}, 'role': {'type': 'string', 'description': 'start|stay|stop|poi|end — doar pentru afișare.'}, 'slug': {'type': 'string', 'description': 'Slug cazare tria; dacă lipsesc coordonatele, serverul le rezolvă.'}, 'label': {'type': 'string', 'description': 'Numele afișat pe card/chip.'}, 'photo': {'type': 'string', 'description': 'Poză opțională pentru card.'}}}, 'description': 'Punctele itinerariului. Max 40.'}, 'scenes': {'type': 'array', 'items': {'type': 'object', 'required': ['id', 'label', 'point_ids'], 'properties': {'id': {'type': 'string', 'description': 'ID scenă.'}, 'label': {'type': 'string', 'description': 'Textul chip-ului, ex. "Plecare + Delta Dunării".'}, 'point_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Punctele vizibile/highlight în scenă.'}, 'description': {'type': 'string', 'description': 'Descriere scurtă a scenei.'}, 'duration_ms': {'type': 'integer', 'description': 'Durata scenei în autoplay.'}, 'active_point_id': {'type': 'string', 'description': 'Punctul focal la activarea scenei.'}}}, 'description': 'Scene/grupe pentru chips și autoplay. Dacă lipsește, se creează o scenă cu toate punctele. Max 20.'}, 'autoplay': {'type': 'object', 'properties': {'loop': {'type': 'boolean'}, 'enabled': {'type': 'boolean'}, 'interval_ms': {'type': 'integer'}}, 'description': 'Autoplay pe scene, nu pe puncte.'}, 'subtitle': {'type': 'string', 'description': 'Subtitlu scurt, ex. "cazări retrase, natură, sate, apă".'}}}
出力スキーマ
{'type': 'object', 'properties': {'mode': {'type': 'string'}, 'path': {'type': 'object', 'properties': {'mode': {'type': 'string'}, 'ordered_point_ids': {'type': 'array', 'items': {'type': 'string'}}}}, 'title': {'type': 'string'}, 'points': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'lat': {'type': 'number'}, 'lng': {'type': 'number'}, 'url': {'type': 'string'}, 'meta': {'type': 'object'}, 'name': {'type': 'string'}, 'role': {'type': 'string'}, 'slug': {'type': 'string'}, 'label': {'type': 'string'}, 'photo': {'type': 'string'}}}}, 'scenes': {'type': 'array', 'items': {'type': 'object', 'properties': {'id': {'type': 'string'}, 'label': {'type': 'string'}, 'point_ids': {'type': 'array', 'items': {'type': 'string'}}, 'description': {'type': 'string'}, 'duration_ms': {'type': 'integer'}, 'active_point_id': {'type': 'string'}}}}, 'source': {'type': 'string'}, 'autoplay': {'type': 'object', 'properties': {'loop': {'type': 'boolean'}, 'enabled': {'type': 'boolean'}, 'interval_ms': {'type': 'integer'}}}, 'subtitle': {'type': 'string'}}}
show_map
Show Map
Afișează cazări pe o hartă INTERACTIVĂ — aceiași parametri de localizare/filtrare ca find_accommodations (where/near/nume/tokeni/criterii/teme/sort), region-routed. Widget MCP Apps când clientul suportă; altfel listă cu coordonate. Folosește-l când utilizatorul cere „pe hartă". Sursă: tria.ro.
読み取り専用 冪等
入力スキーマ
{'type': 'object', 'properties': {'near': {'type': 'object', 'required': ['lat', 'lng'], 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}, 'radius_km': {'type': 'number'}}, 'description': '„Lângă mine" / în jurul unui punct.'}, 'nume': {'type': 'string', 'description': 'DOAR nume de cazare/proprietate/brand. Nu folosi pentru facilități, experiențe, stil sau caracter; acelea merg în `tokeni`.'}, 'page': {'type': 'integer', 'description': 'Pagina'}, 'sort': {'type': 'string', 'description': 'AVANSAT/legacy: o singură dimensiune de ranking. Pentru user intent folosește `tokeni`.'}, 'teme': {'type': 'array', 'items': {'type': 'string'}, 'description': 'AVANSAT/legacy: filtru pe categorie (național), ex. ["cabane","cu-piscina"]. Pentru agenți AI preferă `tokeni`.'}, 'limit': {'type': 'integer', 'description': 'Câte cazări/pini (implicit 12, max 30)'}, 'where': {'type': 'string', 'description': 'UNDE — locație structurată (județ/oraș/localitate/stațiune), acceptă și "localitate, județ" (ex. "Filiași, Dolj"), OPȚIONAL. Reperele cunoscute (Colibița, Bâlea, Rânca…) se rezolvă la comuna care le conține. NU căutare după nume (aia e `nume`). Fără ea → național; nerecunoscut → eroare.'}, 'tokeni': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Tokeni publici de intenție/facilitate/experiență/stil, ex. ["ciubar"], ["lux"], ["spa"], ["piscina"], ["munte","liniste"]. Pe tokenii reali de caracter cu negabil=true în capabilities(), acceptă minus: ["urban","animat","cultura-"].'}, 'criterii': {'type': 'array', 'items': {'type': 'string'}, 'description': 'AVANSAT/legacy: ranking pe caracter (media). Vocabular: liniste,natura,munte,arii_protejate,schi,apa,family,gastro,vin_crame,crame,cultura_istorie,cultura,nightlife,business,relaxare,urbanitate,izolare,magnetism,turism,afluenta_turistica,farmec,dezirabilitate,aproape_de_mare,aproape_de_aeroport,aproape_de_tren'}}}
出力スキーマ
{'type': 'object', 'properties': {'page': {'type': 'integer'}, 'total': {'type': 'integer', 'description': 'Total cazări care corespund (poți pagina pentru restul)'}, 'results': {'type': 'array', 'items': {'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lng': {'type': 'number'}, 'url': {'type': 'string', 'description': 'Pagina tria.ro a cazării'}, 'name': {'type': 'string', 'description': 'Numele cazării'}, 'pret': {'type': 'object', 'properties': {'de_la': {'type': 'integer', 'description': 'Cel mai mic preț orientativ peste perioadele de mai jos (fără taxe). În interfață se redă „de la X lei”, fără sufix.'}, 'moneda': {'type': 'string'}, 'perioade': {'type': 'array', 'items': {'type': 'object', 'properties': {'de_la': {'type': 'integer', 'description': 'Preț orientativ pe această perioadă; absent = fără disponibilitate afișată (de verificat pe partener).'}, 'interval': {'type': 'string'}, 'perioada': {'type': 'string', 'description': 'Weekendul următor / Peste o lună / Peste 2-3 luni'}, 'rezervare_url': {'type': 'string', 'description': 'Link către pagina de rezervare a partenerului.'}}}, 'description': '3 perioade-eșantion (nu calendar complet).'}}, 'description': 'Preț ORIENTATIV live pe 3 perioade — doar la get_accommodation. Nu e disponibilitate garantată; verificarea finală + rezervarea se fac pe site-ul partener. Fără taxe/comisioane.'}, 'slug': {'type': 'string', 'description': 'Slug exact al cazării — copiază această valoare în get_accommodation/get_concierge_brief; nu slugifica numele.'}, 'teme': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Teme de descoperire tria (cabane, retras, cu-piscina…) — naționale'}, 'type': {'type': 'string', 'description': 'Categoria brută internă'}, 'acces': {'type': 'object', 'properties': {'mare_km': {'type': 'number'}, 'tren_km': {'type': 'number'}, 'aeroport_km': {'type': 'number'}}, 'description': 'Distanța până la cel mai apropiat (km), unde există — național'}, 'photo': {'type': 'string', 'description': 'Poză de copertă — în liste poate lipsi; la get_accommodation este cover-ul disponibil.'}, 'rooms': {'type': 'array', 'items': {'type': 'object', 'properties': {'max': {'type': 'integer', 'description': 'Capacitate maximă persoane'}, 'beds': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Paturi'}, 'name': {'type': 'string', 'description': 'Numele camerei/unității'}, 'size': {'type': 'number', 'description': 'Suprafață, unde există'}, 'unit': {'type': 'string', 'description': 'Unitate suprafață, de obicei mp'}, 'price': {'type': 'string', 'description': 'Preț text pentru cameră, informativ'}, 'photos': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Fotografii cameră, limitate'}, 'amenities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Dotări pe cameră, limitate'}, 'price_from': {'type': 'number', 'description': 'Preț numeric minim pentru cameră, informativ'}, 'description': {'type': 'string', 'description': 'Descriere scurtă a camerei'}}}, 'description': 'Camere/unități, doar la get_accommodation, compactate și limitate ca să nu umfle contextul.'}, 'stars': {'type': 'integer', 'description': 'Stele (din sursa de conținut)'}, 'resort': {'type': 'string', 'description': 'Stațiunea de pe litoral'}, 'source': {'type': 'string', 'description': 'Mereu "tria.ro"'}, 'arhetip': {'type': 'array', 'items': {'type': 'object', 'properties': {'kind': {'type': 'string', 'description': 'strong | soft — cât de tare e tokenul în profilul zonei'}, 'slug': {'type': 'string', 'description': 'Slug de temă tria când eticheta are pagină/filtru corespondent'}, 'label': {'type': 'string', 'description': 'Etichetă citibilă: la mare, retras, urban, gastronomie…'}}}, 'description': 'Arhetipul zonei din tokenii de contrast ai catalogului; limbajul preferat pentru explicații și matching.'}, 'gallery': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Galerie foto limitată — doar la get_accommodation, cu URL-uri publice/proxied tria unde există.'}, 'license': {'type': 'string', 'description': 'Licența datelor — atribuire necesară'}, 'origins': {'type': 'array', 'items': {'type': 'object', 'properties': {'judet': {'type': 'string'}, 'share': {'type': 'number'}}}, 'description': 'Originile vizitatorilor, pe județe'}, 'rezumat': {'type': 'string', 'description': 'Rezumat de caracter, într-o frază (originile vizitatorilor)'}, 'caracter': {'type': 'object', 'properties': {'apa': {'type': 'number'}, 'schi': {'type': 'number'}, 'cafea': {'type': 'number'}, 'munte': {'type': 'number'}, 'verde': {'type': 'number'}, 'family': {'type': 'number'}, 'farmec': {'type': 'number', 'description': 'Farmecul zonei — calitatea spațiului public (0–100)'}, 'gastro': {'type': 'number'}, 'natura': {'type': 'number'}, 'izolare': {'type': 'number'}, 'liniste': {'type': 'number'}, 'parcuri': {'type': 'number'}, 'business': {'type': 'number'}, 'plimbare': {'type': 'number'}, 'relaxare': {'type': 'number'}, 'nightlife': {'type': 'number'}, 'vin_crame': {'type': 'number'}, 'acces_auto': {'type': 'number'}, 'urbanitate': {'type': 'number'}, 'arii_protejate': {'type': 'number'}, 'dezirabilitate': {'type': 'number', 'description': 'Cât de căutată e zona (0–100)'}, 'cultura_istorie': {'type': 'number'}, 'acces_localitate': {'type': 'number'}}, 'description': 'Caracterul zonei pe intenții de ședere (0–100, doar cele cu semnal)'}, 'category': {'type': 'string', 'description': 'Categorie normalizată: hotel/pensiune/vila/apartament/hostel/resort/camping'}, 'etichete': {'type': 'array', 'items': {'type': 'string'}, 'description': '1–2 etichete în limbaj natural, derivate din caracter'}, 'amenities': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Facilități (doar la get_accommodation)'}, 'potrivire': {'type': 'number', 'description': 'Potrivire cu INTENȚIA ta (0–100) — cât de bine se aliniază cazarea cu tokenii/criteriile cerute. Apare DOAR când ai dat o intenție. NU e un scor/rating absolut al cazării (nu notăm cazări).'}, 'rezolutie': {'type': 'object', 'properties': {'nivel': {'type': 'string', 'description': 'Granularitatea semnalului: identitate (loc anume) | local | ambient (zonă largă)'}, 'adancime': {'type': 'string', 'description': 'Profunzimea semnalelor: standard (național) | bazica; mai subțire la marginea litorală'}, 'incredere': {'type': 'number', 'description': '0–1: cât de bine acoperit e semnalul aici (mic la marginea litorală a modelului național r7)'}}, 'description': 'Provenance + încredere a semnalelor (mai bogat unde semnalul e fin, mai subțire la marginea litorală). Agentul îl CITEȘTE ca să calibreze încrederea; nu e parametru de request.'}, 'pret_de_la': {'type': 'string', 'description': 'Etichetă publică de preț informativ în forma „de la X lei”, fără sufix. Nu este disponibilitate și nu este ofertă de rezervare.'}, 'description': {'type': 'string', 'description': 'Descriere scurtă (doar la get_accommodation)'}}}, 'description': 'Cazări cu coordonate, pentru hartă (eșantion — vezi total). Fiecare are `rezolutie`.'}, 'per_page': {'type': 'integer'}, 'returned': {'type': 'integer', 'description': 'Câte sunt în această pagină'}}}
追加
capabilities
2026年9月17日12:54
追加
get_concierge_brief
2026年9月17日12:54
追加
get_accommodation
2026年9月17日12:54
追加
explore_areas
2026年9月17日12:54
追加
show_itinerary_map
2026年9月17日12:54
追加
show_map
2026年9月17日12:54
追加
find_accommodations
2026年9月17日12:54