Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,554Letters: 14Defects: 1,331counted just now
teppi

Server definition

Hash
sha256:23c8a1fa4e6eb50951e9e86e96d2c76cb080940ee5fcdf6adbdcd26d4450d6b4
What it is
What a remote MCP server returned when asked what it offers: 7 tools

The blob, as servednamed by its sha256

{ "instructions": "Date publice de inteligență de CARACTER pentru cazări din toată România (tria.ro), read-only. Diferențiatorul tria este caracterul locului, nu pozele: liniște, natură, munte, apă, gastro, vin, cultură, viață de seară și profilul concret al zonei. Un singur instrument de căutare: find_accommodations — TOȚI parametrii opționali. `where`=locație structurată; dacă locația nu se rezolvă, tool-ul întoarce eroare în loc să cadă pe top național; `nume`=DOAR nume de cazare/proprietate/brand. Fără `where` → TOP NAȚIONAL. Pentru agenți, folosește `tokeni` ca vocabular public pentru intenții, caracter, facilități, stil sau experiențe: 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 excluderi pe caracter, folosește minus doar pe tokenii negabili din capabilities(), ex. cultura- = absența tokenului cultural real al zonei; nu nega facilități/experiențe prin tokeni. `criterii` și `teme` sunt parametri avansați/backward-compatible, nu vocabularul normal pentru user intent. Pentru litoral folosește intenția `mare`; coasta este inclusă în catalogul național. Pentru „cea mai bună pentru mine\" folosește intenții clare; `potrivire` apare doar când există intenție. La căutări largi, find întoarce `restrange` (zone + teme pe piloni cadru/stil/atmosferă/facilități, cu count) — oferă-l ca CLARIFICARE opțională („în ce zonă? ce stil?\"), NU ești obligat să restrângi. Fiecare rezultat poartă `rezolutie` — CITEȘTE-O ca să știi cât de complet e profilul și să-ți calibrezi încrederea. Slug-urile de cazare sunt identități stabile cu sufix, ex. `hotel-nobillis-bde28b`; pentru get_accommodation/get_concierge_brief copiază exact `results[].slug` sau ultimul segment din URL, NU slugifica numele. Pentru „unde să merg\" (zone) folosește explore_areas; când alegi apoi cazări într-o zonă returnată, folosește exact `areas[].find_args` în find_accommodations, nu reconstrui manual `where`/`tokeni`. Pentru o cazare anume get_accommodation(slug), care include galerie foto limitată, camere/dotări și prețuri informative când există; pentru suport de AI concierge folosește get_concierge_brief(slug, intrebare, plan), un brief determinist cu fapte, guardrails și CTA-uri permise; pentru hartă interactivă cu rezultate folosește show_map; pentru itinerarii cu scene/zile/grupe folosește show_itinerary_map. Vocabularul valid + ce e rezervat: capabilities(). Expune numai prețurile orientative primite în câmpurile dedicate; nu inventa și nu garanta disponibilitatea sau prețul final. Nu expune contact direct. Atribuie sursa tria.ro.", "tools": [ { "description": "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.", "inputSchema": { "properties": {}, "type": "object" }, "name": "capabilities", "outputSchema": { "properties": { "resources": { "description": "Resurse dereferențiabile prin resources/read (template-uri), unde există. Hărțile statice generate nu sunt expuse.", "properties": { "templates": { "items": { "properties": { "mimeType": { "type": "string" }, "name": { "type": "string" }, "uriTemplate": { "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "rezervat": { "description": "Parametri planificați, încă inactivi", "items": { "type": "string" }, "type": "array" }, "rezolutie": { "description": "Cum se citește câmpul `rezolutie` din rezultate", "type": "string" }, "server": { "type": "string" }, "tools": { "items": { "type": "string" }, "type": "array" }, "updated_at": { "type": "string" }, "version": { "type": "string" }, "vocabular": { "properties": { "arhetipuri": { "description": "Cum se citesc arhetipurile/tokenii din rezultate", "type": "string" }, "criterii": { "description": "Vocabular de RANKING (param `criterii` = compozit, sau `sort` = o dimensiune).", "items": { "properties": { "label": { "type": "string" }, "slug": { "type": "string" } }, "type": "object" }, "type": "array" }, "functii": { "description": "teme = filtru · criterii/sort = ordine; se combină", "type": "string" }, "model": { "description": "Semantica vocabularului", "type": "string" }, "nume": { "description": "Ce acceptă `nume`", "type": "string" }, "teme": { "description": "FILTRU tematic (param `teme`), pe cei 4 piloni; aceleași filtre ca pe site. Multi-apartenență: o cazare ∈ mai multe teme.", "items": { "properties": { "optiuni": { "items": { "properties": { "label": { "type": "string" }, "slug": { "type": "string" } }, "type": "object" }, "type": "array" }, "pilon": { "type": "string" } }, "type": "object" }, "type": "array" }, "tokeni": { "description": "Vocabular public standard pentru agenți; tokenii interni ai catalogului nu sunt expuși.", "items": { "properties": { "input": { "description": "Poate fi trimis în find_accommodations(tokeni)", "type": "boolean" }, "label": { "type": "string" }, "negabil": { "description": "Poate fi trimis cu minus, ex. cultura-, pentru absența tokenului real de caracter", "type": "boolean" }, "slug": { "type": "string" } }, "type": "object" }, "type": "array" }, "where": { "description": "Ce acceptă `where`", "type": "string" } }, "type": "object" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "properties": { "criterii": { "description": "Ranking compozit (media) — doar pentru statiune.", "items": { "type": "string" }, "type": "array" }, "limit": { "description": "Top N (implicit 8, max 30)", "type": "integer" }, "scope": { "description": "Granularitatea ariei: judet (implicit) | localitate | statiune", "type": "string" }, "sort": { "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).", "type": "string" }, "where": { "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.", "type": "string" } }, "type": "object" }, "name": "explore_areas", "outputSchema": { "properties": { "areas": { "description": "Zonele clasate", "items": { "properties": { "count": { "description": "Câte cazări are zona", "type": "integer" }, "find_args": { "description": "Argumente replayabile pentru find_accommodations. Folosește-le ca atare pentru follow-up pe cazare.", "properties": { "criterii": { "items": { "type": "string" }, "type": "array" }, "where": { "type": "string" } }, "type": "object" }, "name": { "description": "Numele zonei (județ / localitate / stațiune)", "type": "string" }, "photo": { "type": "string" }, "score": { "description": "Scorul mediu pe dimensiunea cerută (unde se aplică)", "type": "number" }, "where": { "description": "Valoarea exactă de folosit în find_accommodations(where) pentru zona asta", "type": "string" } }, "type": "object" }, "type": "array" }, "judet": { "description": "Județul părinte (doar scope=localitate)", "type": "string" }, "scope": { "type": "string" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "properties": { "criterii": { "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.", "items": { "type": "string" }, "type": "array" }, "limit": { "description": "Câte pe pagină (implicit 10, max 30)", "type": "integer" }, "near": { "description": "„Lângă mine\" / în jurul unui punct. Alternativ cu where.", "properties": { "lat": { "type": "number" }, "lng": { "type": "number" }, "radius_km": { "description": "Rază (implicit 10)", "type": "number" } }, "required": [ "lat", "lng" ], "type": "object" }, "nume": { "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`.", "type": "string" }, "page": { "description": "Pagina (implicit 1) — total arată câte corespund", "type": "integer" }, "sort": { "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.", "type": "string" }, "teme": { "description": "AVANSAT/legacy: filtre UI/SEO interne. Pentru agenți AI, preferă `tokeni`; o temă este intern un set de tokeni.", "items": { "type": "string" }, "type": "array" }, "tokeni": { "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.", "items": { "type": "string" }, "type": "array" }, "where": { "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`.", "type": "string" } }, "type": "object" }, "name": "find_accommodations", "outputSchema": { "properties": { "page": { "type": "integer" }, "per_page": { "type": "integer" }, "results": { "description": "Cazările care corespund, clasate (eșantion — vezi total). Fiecare are `rezolutie`.", "items": { "properties": { "acces": { "description": "Distanța până la cel mai apropiat (km), unde există — național", "properties": { "aeroport_km": { "type": "number" }, "mare_km": { "type": "number" }, "tren_km": { "type": "number" } }, "type": "object" }, "amenities": { "description": "Facilități (doar la get_accommodation)", "items": { "type": "string" }, "type": "array" }, "arhetip": { "description": "Arhetipul zonei din tokenii de contrast ai catalogului; limbajul preferat pentru explicații și matching.", "items": { "properties": { "kind": { "description": "strong | soft — cât de tare e tokenul în profilul zonei", "type": "string" }, "label": { "description": "Etichetă citibilă: la mare, retras, urban, gastronomie…", "type": "string" }, "slug": { "description": "Slug de temă tria când eticheta are pagină/filtru corespondent", "type": "string" } }, "type": "object" }, "type": "array" }, "caracter": { "description": "Caracterul zonei pe intenții de ședere (0–100, doar cele cu semnal)", "properties": { "acces_auto": { "type": "number" }, "acces_localitate": { "type": "number" }, "apa": { "type": "number" }, "arii_protejate": { "type": "number" }, "business": { "type": "number" }, "cafea": { "type": "number" }, "cultura_istorie": { "type": "number" }, "dezirabilitate": { "description": "Cât de căutată e zona (0–100)", "type": "number" }, "family": { "type": "number" }, "farmec": { "description": "Farmecul zonei — calitatea spațiului public (0–100)", "type": "number" }, "gastro": { "type": "number" }, "izolare": { "type": "number" }, "liniste": { "type": "number" }, "munte": { "type": "number" }, "natura": { "type": "number" }, "nightlife": { "type": "number" }, "parcuri": { "type": "number" }, "plimbare": { "type": "number" }, "relaxare": { "type": "number" }, "schi": { "type": "number" }, "urbanitate": { "type": "number" }, "verde": { "type": "number" }, "vin_crame": { "type": "number" } }, "type": "object" }, "category": { "description": "Categorie normalizată: hotel/pensiune/vila/apartament/hostel/resort/camping", "type": "string" }, "description": { "description": "Descriere scurtă (doar la get_accommodation)", "type": "string" }, "etichete": { "description": "1–2 etichete în limbaj natural, derivate din caracter", "items": { "type": "string" }, "type": "array" }, "gallery": { "description": "Galerie foto limitată — doar la get_accommodation, cu URL-uri publice/proxied tria unde există.", "items": { "type": "string" }, "type": "array" }, "lat": { "type": "number" }, "license": { "description": "Licența datelor — atribuire necesară", "type": "string" }, "lng": { "type": "number" }, "name": { "description": "Numele cazării", "type": "string" }, "origins": { "description": "Originile vizitatorilor, pe județe", "items": { "properties": { "judet": { "type": "string" }, "share": { "type": "number" } }, "type": "object" }, "type": "array" }, "photo": { "description": "Poză de copertă — în liste poate lipsi; la get_accommodation este cover-ul disponibil.", "type": "string" }, "potrivire": { "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).", "type": "number" }, "pret": { "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.", "properties": { "de_la": { "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.", "type": "integer" }, "moneda": { "type": "string" }, "perioade": { "description": "3 perioade-eșantion (nu calendar complet).", "items": { "properties": { "de_la": { "description": "Preț orientativ pe această perioadă; absent = fără disponibilitate afișată (de verificat pe partener).", "type": "integer" }, "interval": { "type": "string" }, "perioada": { "description": "Weekendul următor / Peste o lună / Peste 2-3 luni", "type": "string" }, "rezervare_url": { "description": "Link către pagina de rezervare a partenerului.", "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "pret_de_la": { "description": "Etichetă publică de preț informativ în forma „de la X lei”, fără sufix. Nu este disponibilitate și nu este ofertă de rezervare.", "type": "string" }, "resort": { "description": "Stațiunea de pe litoral", "type": "string" }, "rezolutie": { "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.", "properties": { "adancime": { "description": "Profunzimea semnalelor: standard (național) | bazica; mai subțire la marginea litorală", "type": "string" }, "incredere": { "description": "0–1: cât de bine acoperit e semnalul aici (mic la marginea litorală a modelului național r7)", "type": "number" }, "nivel": { "description": "Granularitatea semnalului: identitate (loc anume) | local | ambient (zonă largă)", "type": "string" } }, "type": "object" }, "rezumat": { "description": "Rezumat de caracter, într-o frază (originile vizitatorilor)", "type": "string" }, "rooms": { "description": "Camere/unități, doar la get_accommodation, compactate și limitate ca să nu umfle contextul.", "items": { "properties": { "amenities": { "description": "Dotări pe cameră, limitate", "items": { "type": "string" }, "type": "array" }, "beds": { "description": "Paturi", "items": { "type": "string" }, "type": "array" }, "description": { "description": "Descriere scurtă a camerei", "type": "string" }, "max": { "description": "Capacitate maximă persoane", "type": "integer" }, "name": { "description": "Numele camerei/unității", "type": "string" }, "photos": { "description": "Fotografii cameră, limitate", "items": { "type": "string" }, "type": "array" }, "price": { "description": "Preț text pentru cameră, informativ", "type": "string" }, "price_from": { "description": "Preț numeric minim pentru cameră, informativ", "type": "number" }, "size": { "description": "Suprafață, unde există", "type": "number" }, "unit": { "description": "Unitate suprafață, de obicei mp", "type": "string" } }, "type": "object" }, "type": "array" }, "slug": { "description": "Slug exact al cazării — copiază această valoare în get_accommodation/get_concierge_brief; nu slugifica numele.", "type": "string" }, "source": { "description": "Mereu \"tria.ro\"", "type": "string" }, "stars": { "description": "Stele (din sursa de conținut)", "type": "integer" }, "teme": { "description": "Teme de descoperire tria (cabane, retras, cu-piscina…) — naționale", "items": { "type": "string" }, "type": "array" }, "type": { "description": "Categoria brută internă", "type": "string" }, "url": { "description": "Pagina tria.ro a cazării", "type": "string" } }, "type": "object" }, "type": "array" }, "returned": { "description": "Câte sunt în această pagină", "type": "integer" }, "total": { "description": "Total cazări care corespund (poți pagina pentru restul)", "type": "integer" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "properties": { "slug": { "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": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_accommodation", "outputSchema": { "properties": { "acces": { "description": "Distanța până la cel mai apropiat (km), unde există — național", "properties": { "aeroport_km": { "type": "number" }, "mare_km": { "type": "number" }, "tren_km": { "type": "number" } }, "type": "object" }, "amenities": { "description": "Facilități (doar la get_accommodation)", "items": { "type": "string" }, "type": "array" }, "arhetip": { "description": "Arhetipul zonei din tokenii de contrast ai catalogului; limbajul preferat pentru explicații și matching.", "items": { "properties": { "kind": { "description": "strong | soft — cât de tare e tokenul în profilul zonei", "type": "string" }, "label": { "description": "Etichetă citibilă: la mare, retras, urban, gastronomie…", "type": "string" }, "slug": { "description": "Slug de temă tria când eticheta are pagină/filtru corespondent", "type": "string" } }, "type": "object" }, "type": "array" }, "caracter": { "description": "Caracterul zonei pe intenții de ședere (0–100, doar cele cu semnal)", "properties": { "acces_auto": { "type": "number" }, "acces_localitate": { "type": "number" }, "apa": { "type": "number" }, "arii_protejate": { "type": "number" }, "business": { "type": "number" }, "cafea": { "type": "number" }, "cultura_istorie": { "type": "number" }, "dezirabilitate": { "description": "Cât de căutată e zona (0–100)", "type": "number" }, "family": { "type": "number" }, "farmec": { "description": "Farmecul zonei — calitatea spațiului public (0–100)", "type": "number" }, "gastro": { "type": "number" }, "izolare": { "type": "number" }, "liniste": { "type": "number" }, "munte": { "type": "number" }, "natura": { "type": "number" }, "nightlife": { "type": "number" }, "parcuri": { "type": "number" }, "plimbare": { "type": "number" }, "relaxare": { "type": "number" }, "schi": { "type": "number" }, "urbanitate": { "type": "number" }, "verde": { "type": "number" }, "vin_crame": { "type": "number" } }, "type": "object" }, "category": { "description": "Categorie normalizată: hotel/pensiune/vila/apartament/hostel/resort/camping", "type": "string" }, "description": { "description": "Descriere scurtă (doar la get_accommodation)", "type": "string" }, "etichete": { "description": "1–2 etichete în limbaj natural, derivate din caracter", "items": { "type": "string" }, "type": "array" }, "gallery": { "description": "Galerie foto limitată — doar la get_accommodation, cu URL-uri publice/proxied tria unde există.", "items": { "type": "string" }, "type": "array" }, "lat": { "type": "number" }, "license": { "description": "Licența datelor — atribuire necesară", "type": "string" }, "lng": { "type": "number" }, "name": { "description": "Numele cazării", "type": "string" }, "origins": { "description": "Originile vizitatorilor, pe județe", "items": { "properties": { "judet": { "type": "string" }, "share": { "type": "number" } }, "type": "object" }, "type": "array" }, "photo": { "description": "Poză de copertă — în liste poate lipsi; la get_accommodation este cover-ul disponibil.", "type": "string" }, "potrivire": { "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).", "type": "number" }, "pret": { "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.", "properties": { "de_la": { "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.", "type": "integer" }, "moneda": { "type": "string" }, "perioade": { "description": "3 perioade-eșantion (nu calendar complet).", "items": { "properties": { "de_la": { "description": "Preț orientativ pe această perioadă; absent = fără disponibilitate afișată (de verificat pe partener).", "type": "integer" }, "interval": { "type": "string" }, "perioada": { "description": "Weekendul următor / Peste o lună / Peste 2-3 luni", "type": "string" }, "rezervare_url": { "description": "Link către pagina de rezervare a partenerului.", "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "pret_de_la": { "description": "Etichetă publică de preț informativ în forma „de la X lei”, fără sufix. Nu este disponibilitate și nu este ofertă de rezervare.", "type": "string" }, "resort": { "description": "Stațiunea de pe litoral", "type": "string" }, "rezolutie": { "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.", "properties": { "adancime": { "description": "Profunzimea semnalelor: standard (național) | bazica; mai subțire la marginea litorală", "type": "string" }, "incredere": { "description": "0–1: cât de bine acoperit e semnalul aici (mic la marginea litorală a modelului național r7)", "type": "number" }, "nivel": { "description": "Granularitatea semnalului: identitate (loc anume) | local | ambient (zonă largă)", "type": "string" } }, "type": "object" }, "rezumat": { "description": "Rezumat de caracter, într-o frază (originile vizitatorilor)", "type": "string" }, "rooms": { "description": "Camere/unități, doar la get_accommodation, compactate și limitate ca să nu umfle contextul.", "items": { "properties": { "amenities": { "description": "Dotări pe cameră, limitate", "items": { "type": "string" }, "type": "array" }, "beds": { "description": "Paturi", "items": { "type": "string" }, "type": "array" }, "description": { "description": "Descriere scurtă a camerei", "type": "string" }, "max": { "description": "Capacitate maximă persoane", "type": "integer" }, "name": { "description": "Numele camerei/unității", "type": "string" }, "photos": { "description": "Fotografii cameră, limitate", "items": { "type": "string" }, "type": "array" }, "price": { "description": "Preț text pentru cameră, informativ", "type": "string" }, "price_from": { "description": "Preț numeric minim pentru cameră, informativ", "type": "number" }, "size": { "description": "Suprafață, unde există", "type": "number" }, "unit": { "description": "Unitate suprafață, de obicei mp", "type": "string" } }, "type": "object" }, "type": "array" }, "slug": { "description": "Slug exact al cazării — copiază această valoare în get_accommodation/get_concierge_brief; nu slugifica numele.", "type": "string" }, "source": { "description": "Mereu \"tria.ro\"", "type": "string" }, "stars": { "description": "Stele (din sursa de conținut)", "type": "integer" }, "teme": { "description": "Teme de descoperire tria (cabane, retras, cu-piscina…) — naționale", "items": { "type": "string" }, "type": "array" }, "type": { "description": "Categoria brută internă", "type": "string" }, "url": { "description": "Pagina tria.ro a cazării", "type": "string" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "properties": { "intrebare": { "description": "Întrebarea turistului; opțional. Tool-ul o clasifică simplu și întoarce un cadru de răspuns.", "type": "string" }, "plan": { "description": "free | pro. În local/prototip schimbă doar nivelul de detaliu și CTA-urile permise; nu activează billing.", "type": "string" }, "slug": { "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=...).", "type": "string" } }, "required": [ "slug" ], "type": "object" }, "name": "get_concierge_brief", "outputSchema": { "properties": { "concierge": { "properties": { "allowed_cta": { "items": { "type": "string" }, "type": "array" }, "owner_value": { "items": { "type": "string" }, "type": "array" }, "positioning": { "items": { "type": "string" }, "type": "array" }, "suggested_questions": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "facts": { "properties": { "amenities": { "items": { "type": "string" }, "type": "array" }, "archetypes": { "items": { "type": "string" }, "type": "array" }, "character": { "items": { "properties": { "label": { "type": "string" }, "value": { "type": "number" } }, "type": "object" }, "type": "array" }, "photos_available": { "type": "integer" }, "rooms": { "items": { "properties": { "amenities": { "items": { "type": "string" }, "type": "array" }, "capacity": { "type": "integer" }, "name": { "type": "string" }, "price": { "type": "string" } }, "type": "object" }, "type": "array" }, "summary": { "type": "string" } }, "type": "object" }, "guardrails": { "items": { "type": "string" }, "type": "array" }, "license": { "type": "string" }, "missing_profile_data": { "items": { "type": "string" }, "type": "array" }, "mode": { "description": "free | pro", "type": "string" }, "property": { "properties": { "category": { "type": "string" }, "location": { "type": "string" }, "name": { "type": "string" }, "slug": { "type": "string" }, "url": { "type": "string" }, "verified": { "properties": { "classification": { "type": "string" }, "situr": { "type": "boolean" } }, "type": "object" } }, "type": "object" }, "question": { "properties": { "answer_frame": { "items": { "type": "string" }, "type": "array" }, "intent": { "type": "string" }, "text": { "type": "string" } }, "type": "object" }, "source": { "type": "string" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "properties": { "autoplay": { "description": "Autoplay pe scene, nu pe puncte.", "properties": { "enabled": { "type": "boolean" }, "interval_ms": { "type": "integer" }, "loop": { "type": "boolean" } }, "type": "object" }, "path": { "description": "Linie schematică între puncte.", "properties": { "mode": { "description": "none|straight. Rutarea road este rezervată.", "type": "string" }, "ordered_point_ids": { "description": "Ordinea liniei schematice.", "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "points": { "description": "Punctele itinerariului. Max 40.", "items": { "properties": { "id": { "description": "ID stabil în această hartă, ex. \"zi1-start\".", "type": "string" }, "label": { "description": "Numele afișat pe card/chip.", "type": "string" }, "lat": { "description": "Latitudine. Poate lipsi dacă dai slug de cazare tria.", "type": "number" }, "lng": { "description": "Longitudine. Poate lipsi dacă dai slug de cazare tria.", "type": "number" }, "meta": { "description": "Metadate scurte pentru card.", "properties": { "day": { "type": "integer" }, "kind": { "type": "string" }, "nights": { "type": "integer" }, "note": { "type": "string" } }, "type": "object" }, "photo": { "description": "Poză opțională pentru card.", "type": "string" }, "role": { "description": "start|stay|stop|poi|end — doar pentru afișare.", "type": "string" }, "slug": { "description": "Slug cazare tria; dacă lipsesc coordonatele, serverul le rezolvă.", "type": "string" }, "url": { "description": "URL opțional. Pentru cazări tria poate fi rezolvat din slug.", "type": "string" } }, "required": [ "id", "label" ], "type": "object" }, "type": "array" }, "scenes": { "description": "Scene/grupe pentru chips și autoplay. Dacă lipsește, se creează o scenă cu toate punctele. Max 20.", "items": { "properties": { "active_point_id": { "description": "Punctul focal la activarea scenei.", "type": "string" }, "description": { "description": "Descriere scurtă a scenei.", "type": "string" }, "duration_ms": { "description": "Durata scenei în autoplay.", "type": "integer" }, "id": { "description": "ID scenă.", "type": "string" }, "label": { "description": "Textul chip-ului, ex. \"Plecare + Delta Dunării\".", "type": "string" }, "point_ids": { "description": "Punctele vizibile/highlight în scenă.", "items": { "type": "string" }, "type": "array" } }, "required": [ "id", "label", "point_ids" ], "type": "object" }, "type": "array" }, "subtitle": { "description": "Subtitlu scurt, ex. \"cazări retrase, natură, sate, apă\".", "type": "string" }, "title": { "description": "Titlul hărții, ex. \"Circuit 7 zile din Constanța\".", "type": "string" } }, "required": [ "points" ], "type": "object" }, "name": "show_itinerary_map", "outputSchema": { "properties": { "autoplay": { "properties": { "enabled": { "type": "boolean" }, "interval_ms": { "type": "integer" }, "loop": { "type": "boolean" } }, "type": "object" }, "mode": { "type": "string" }, "path": { "properties": { "mode": { "type": "string" }, "ordered_point_ids": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "points": { "items": { "properties": { "id": { "type": "string" }, "label": { "type": "string" }, "lat": { "type": "number" }, "lng": { "type": "number" }, "meta": { "type": "object" }, "name": { "type": "string" }, "photo": { "type": "string" }, "role": { "type": "string" }, "slug": { "type": "string" }, "url": { "type": "string" } }, "type": "object" }, "type": "array" }, "scenes": { "items": { "properties": { "active_point_id": { "type": "string" }, "description": { "type": "string" }, "duration_ms": { "type": "integer" }, "id": { "type": "string" }, "label": { "type": "string" }, "point_ids": { "items": { "type": "string" }, "type": "array" } }, "type": "object" }, "type": "array" }, "source": { "type": "string" }, "subtitle": { "type": "string" }, "title": { "type": "string" } }, "type": "object" } }, { "description": "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.", "inputSchema": { "properties": { "criterii": { "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", "items": { "type": "string" }, "type": "array" }, "limit": { "description": "Câte cazări/pini (implicit 12, max 30)", "type": "integer" }, "near": { "description": "„Lângă mine\" / în jurul unui punct.", "properties": { "lat": { "type": "number" }, "lng": { "type": "number" }, "radius_km": { "type": "number" } }, "required": [ "lat", "lng" ], "type": "object" }, "nume": { "description": "DOAR nume de cazare/proprietate/brand. Nu folosi pentru facilități, experiențe, stil sau caracter; acelea merg în `tokeni`.", "type": "string" }, "page": { "description": "Pagina", "type": "integer" }, "sort": { "description": "AVANSAT/legacy: o singură dimensiune de ranking. Pentru user intent folosește `tokeni`.", "type": "string" }, "teme": { "description": "AVANSAT/legacy: filtru pe categorie (național), ex. [\"cabane\",\"cu-piscina\"]. Pentru agenți AI preferă `tokeni`.", "items": { "type": "string" }, "type": "array" }, "tokeni": { "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-\"].", "items": { "type": "string" }, "type": "array" }, "where": { "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.", "type": "string" } }, "type": "object" }, "name": "show_map", "outputSchema": { "properties": { "page": { "type": "integer" }, "per_page": { "type": "integer" }, "results": { "description": "Cazări cu coordonate, pentru hartă (eșantion — vezi total). Fiecare are `rezolutie`.", "items": { "properties": { "acces": { "description": "Distanța până la cel mai apropiat (km), unde există — național", "properties": { "aeroport_km": { "type": "number" }, "mare_km": { "type": "number" }, "tren_km": { "type": "number" } }, "type": "object" }, "amenities": { "description": "Facilități (doar la get_accommodation)", "items": { "type": "string" }, "type": "array" }, "arhetip": { "description": "Arhetipul zonei din tokenii de contrast ai catalogului; limbajul preferat pentru explicații și matching.", "items": { "properties": { "kind": { "description": "strong | soft — cât de tare e tokenul în profilul zonei", "type": "string" }, "label": { "description": "Etichetă citibilă: la mare, retras, urban, gastronomie…", "type": "string" }, "slug": { "description": "Slug de temă tria când eticheta are pagină/filtru corespondent", "type": "string" } }, "type": "object" }, "type": "array" }, "caracter": { "description": "Caracterul zonei pe intenții de ședere (0–100, doar cele cu semnal)", "properties": { "acces_auto": { "type": "number" }, "acces_localitate": { "type": "number" }, "apa": { "type": "number" }, "arii_protejate": { "type": "number" }, "business": { "type": "number" }, "cafea": { "type": "number" }, "cultura_istorie": { "type": "number" }, "dezirabilitate": { "description": "Cât de căutată e zona (0–100)", "type": "number" }, "family": { "type": "number" }, "farmec": { "description": "Farmecul zonei — calitatea spațiului public (0–100)", "type": "number" }, "gastro": { "type": "number" }, "izolare": { "type": "number" }, "liniste": { "type": "number" }, "munte": { "type": "number" }, "natura": { "type": "number" }, "nightlife": { "type": "number" }, "parcuri": { "type": "number" }, "plimbare": { "type": "number" }, "relaxare": { "type": "number" }, "schi": { "type": "number" }, "urbanitate": { "type": "number" }, "verde": { "type": "number" }, "vin_crame": { "type": "number" } }, "type": "object" }, "category": { "description": "Categorie normalizată: hotel/pensiune/vila/apartament/hostel/resort/camping", "type": "string" }, "description": { "description": "Descriere scurtă (doar la get_accommodation)", "type": "string" }, "etichete": { "description": "1–2 etichete în limbaj natural, derivate din caracter", "items": { "type": "string" }, "type": "array" }, "gallery": { "description": "Galerie foto limitată — doar la get_accommodation, cu URL-uri publice/proxied tria unde există.", "items": { "type": "string" }, "type": "array" }, "lat": { "type": "number" }, "license": { "description": "Licența datelor — atribuire necesară", "type": "string" }, "lng": { "type": "number" }, "name": { "description": "Numele cazării", "type": "string" }, "origins": { "description": "Originile vizitatorilor, pe județe", "items": { "properties": { "judet": { "type": "string" }, "share": { "type": "number" } }, "type": "object" }, "type": "array" }, "photo": { "description": "Poză de copertă — în liste poate lipsi; la get_accommodation este cover-ul disponibil.", "type": "string" }, "potrivire": { "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).", "type": "number" }, "pret": { "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.", "properties": { "de_la": { "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.", "type": "integer" }, "moneda": { "type": "string" }, "perioade": { "description": "3 perioade-eșantion (nu calendar complet).", "items": { "properties": { "de_la": { "description": "Preț orientativ pe această perioadă; absent = fără disponibilitate afișată (de verificat pe partener).", "type": "integer" }, "interval": { "type": "string" }, "perioada": { "description": "Weekendul următor / Peste o lună / Peste 2-3 luni", "type": "string" }, "rezervare_url": { "description": "Link către pagina de rezervare a partenerului.", "type": "string" } }, "type": "object" }, "type": "array" } }, "type": "object" }, "pret_de_la": { "description": "Etichetă publică de preț informativ în forma „de la X lei”, fără sufix. Nu este disponibilitate și nu este ofertă de rezervare.", "type": "string" }, "resort": { "description": "Stațiunea de pe litoral", "type": "string" }, "rezolutie": { "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.", "properties": { "adancime": { "description": "Profunzimea semnalelor: standard (național) | bazica; mai subțire la marginea litorală", "type": "string" }, "incredere": { "description": "0–1: cât de bine acoperit e semnalul aici (mic la marginea litorală a modelului național r7)", "type": "number" }, "nivel": { "description": "Granularitatea semnalului: identitate (loc anume) | local | ambient (zonă largă)", "type": "string" } }, "type": "object" }, "rezumat": { "description": "Rezumat de caracter, într-o frază (originile vizitatorilor)", "type": "string" }, "rooms": { "description": "Camere/unități, doar la get_accommodation, compactate și limitate ca să nu umfle contextul.", "items": { "properties": { "amenities": { "description": "Dotări pe cameră, limitate", "items": { "type": "string" }, "type": "array" }, "beds": { "description": "Paturi", "items": { "type": "string" }, "type": "array" }, "description": { "description": "Descriere scurtă a camerei", "type": "string" }, "max": { "description": "Capacitate maximă persoane", "type": "integer" }, "name": { "description": "Numele camerei/unității", "type": "string" }, "photos": { "description": "Fotografii cameră, limitate", "items": { "type": "string" }, "type": "array" }, "price": { "description": "Preț text pentru cameră, informativ", "type": "string" }, "price_from": { "description": "Preț numeric minim pentru cameră, informativ", "type": "number" }, "size": { "description": "Suprafață, unde există", "type": "number" }, "unit": { "description": "Unitate suprafață, de obicei mp", "type": "string" } }, "type": "object" }, "type": "array" }, "slug": { "description": "Slug exact al cazării — copiază această valoare în get_accommodation/get_concierge_brief; nu slugifica numele.", "type": "string" }, "source": { "description": "Mereu \"tria.ro\"", "type": "string" }, "stars": { "description": "Stele (din sursa de conținut)", "type": "integer" }, "teme": { "description": "Teme de descoperire tria (cabane, retras, cu-piscina…) — naționale", "items": { "type": "string" }, "type": "array" }, "type": { "description": "Categoria brută internă", "type": "string" }, "url": { "description": "Pagina tria.ro a cazării", "type": "string" } }, "type": "object" }, "type": "array" }, "returned": { "description": "Câte sunt în această pagină", "type": "integer" }, "total": { "description": "Total cazări care corespund (poți pagina pentru restul)", "type": "integer" } }, "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:23c8a1fa4e6eb50951e9e86e96d2c76cb080940ee5fcdf6adbdcd26d4450d6b4 | sha256sum