Tool tree
gradeNot graded
get_site_metadataAnswer
Returns site-level metadata: domain, CMS and template version, data schema, active languages. Call this first to understand the site before using other tools, and use its values to parametrize subsequent calls instead of assuming them.
View tool JSON
{
"name": "get_site_metadata",
"kind": "answer",
"impl": "imperative",
"description": "Returns site-level metadata: domain, CMS and template version, data schema, active languages. Call this first to understand the site before using other tools, and use its values to parametrize subsequent calls instead of assuming them.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}get_supported_languagesAnswer
Returns the default language and the list of supported languages. Use it to validate any lang parameter before calling other tools.
View tool JSON
{
"name": "get_supported_languages",
"kind": "answer",
"impl": "imperative",
"description": "Returns the default language and the list of supported languages. Use it to validate any lang parameter before calling other tools.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}get_structure_dataAnswer
Returns the authoritative profile of the business behind this site: name, address, city, phone, email and billing data. Use it for any question about identity, location or contact details, and never infer these values from page text.
View tool JSON
{
"name": "get_structure_data",
"kind": "answer",
"impl": "imperative",
"description": "Returns the authoritative profile of the business behind this site: name, address, city, phone, email and billing data. Use it for any question about identity, location or contact details, and never infer these values from page text.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}get_hotel_factsAnswer
Returns the practical facts the property has declared: rating, check-in and check-out times, facilities, accepted payment methods, opening hours and policies on pets, smoking, accessibility and children. Only declared facts are returned: a missing field means unknown, never "not available" or "not allowed". Prefer it over page text for the facts it contains.
View tool JSON
{
"name": "get_hotel_facts",
"kind": "answer",
"impl": "imperative",
"description": "Returns the practical facts the property has declared: rating, check-in and check-out times, facilities, accepted payment methods, opening hours and policies on pets, smoking, accessibility and children. Only declared facts are returned: a missing field means unknown, never \"not available\" or \"not allowed\". Prefer it over page text for the facts it contains.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}get_social_profilesAnswer
Returns the official social profiles of the business, with one URL per network and language. Use the returned URLs verbatim.
View tool JSON
{
"name": "get_social_profiles",
"kind": "answer",
"impl": "imperative",
"description": "Returns the official social profiles of the business, with one URL per network and language. Use the returned URLs verbatim.",
"inputSchema": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"additionalProperties": false
}
}list_menusAnswer
Returns all site menus with their items, targets and sort order. Use it to understand navigation or to discover valid menu ids. Use the returned names and URLs verbatim.
View tool JSON
{
"name": "list_menus",
"kind": "answer",
"impl": "imperative",
"description": "Returns all site menus with their items, targets and sort order. Use it to understand navigation or to discover valid menu ids. Use the returned names and URLs verbatim.",
"inputSchema": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"additionalProperties": false
}
}get_menuAnswer
Returns one menu with its full item list. Requires a menuId obtained from list_menus.
View tool JSON
{
"name": "get_menu",
"kind": "answer",
"impl": "imperative",
"description": "Returns one menu with its full item list. Requires a menuId obtained from list_menus.",
"inputSchema": {
"type": "object",
"properties": {
"menuId": {
"type": "integer",
"description": "Menu id, from list_menus."
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"menuId"
],
"additionalProperties": false
}
}get_menu_voiceAnswer
Resolves where a menu item points to. Read tipo_link to handle the target: pagina means use id_pagina with get_page, camera means use id_camera with get_room_by_id, her means use opzione_her as a booking link, url means use the url directly. If risolvibile is false the target is unpublished: answer with url, not with the id.
View tool JSON
{
"name": "get_menu_voice",
"kind": "answer",
"impl": "imperative",
"description": "Resolves where a menu item points to. Read tipo_link to handle the target: pagina means use id_pagina with get_page, camera means use id_camera with get_room_by_id, her means use opzione_her as a booking link, url means use the url directly. If risolvibile is false the target is unpublished: answer with url, not with the id.",
"inputSchema": {
"type": "object",
"properties": {
"voiceId": {
"type": "integer",
"description": "Menu item id, from list_menus or get_menu."
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"voiceId"
],
"additionalProperties": false
}
}list_pagesAnswer
Returns all site pages with titles, slugs and meta tags, optionally filtered by type: interna is a content page, camera a single room page, raccoltacamere a room listing. Use the returned ids for get_page instead of guessing them.
View tool JSON
{
"name": "list_pages",
"kind": "answer",
"impl": "imperative",
"description": "Returns all site pages with titles, slugs and meta tags, optionally filtered by type: interna is a content page, camera a single room page, raccoltacamere a room listing. Use the returned ids for get_page instead of guessing them.",
"inputSchema": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
},
"pageType": {
"type": "string",
"description": "Optional page type filter, as returned by this same tool."
}
},
"additionalProperties": false
}
}get_pageAnswer
Returns the full content of one page as sections and columns with titles, texts, buttons, images and room references, in the requested language only. Requires a pageId from list_pages or a resolved menu target.
View tool JSON
{
"name": "get_page",
"kind": "answer",
"impl": "imperative",
"description": "Returns the full content of one page as sections and columns with titles, texts, buttons, images and room references, in the requested language only. Requires a pageId from list_pages or a resolved menu target.",
"inputSchema": {
"type": "object",
"properties": {
"pageId": {
"type": "integer",
"description": "Page id, from list_pages."
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"pageId"
],
"additionalProperties": false
}
}get_page_by_urlAnswer
Returns the full page content starting from a URL of this site, absolute or relative. Use it when the user references a link whose page id is unknown. URLs of other domains are rejected: their content is not available here. On failure, verify the URL or browse the navigation first.
View tool JSON
{
"name": "get_page_by_url",
"kind": "answer",
"impl": "imperative",
"description": "Returns the full page content starting from a URL of this site, absolute or relative. Use it when the user references a link whose page id is unknown. URLs of other domains are rejected: their content is not available here. On failure, verify the URL or browse the navigation first.",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"description": "Absolute or relative URL to resolve.",
"minLength": 1
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"url"
],
"additionalProperties": false
}
}list_room_groupsAnswer
Returns room groups, each with its ordered rooms. Prefer this over list_pages when the user asks about room types or categories, because it preserves the grouping defined by the property. Use the returned room ids for get_room_by_id.
View tool JSON
{
"name": "list_room_groups",
"kind": "answer",
"impl": "imperative",
"description": "Returns room groups, each with its ordered rooms. Prefer this over list_pages when the user asks about room types or categories, because it preserves the grouping defined by the property. Use the returned room ids for get_room_by_id.",
"inputSchema": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"additionalProperties": false
}
}get_room_groupAnswer
Returns one room group with all its rooms. Requires a groupId from list_room_groups.
View tool JSON
{
"name": "get_room_group",
"kind": "answer",
"impl": "imperative",
"description": "Returns one room group with all its rooms. Requires a groupId from list_room_groups.",
"inputSchema": {
"type": "object",
"properties": {
"groupId": {
"type": "integer",
"description": "Group id, from list_room_groups."
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"groupId"
],
"additionalProperties": false
}
}list_roomsAnswer
Returns a flat list of all rooms sorted by position, optionally filtered by group. Use list_room_groups instead when the user asks about categories.
View tool JSON
{
"name": "list_rooms",
"kind": "answer",
"impl": "imperative",
"description": "Returns a flat list of all rooms sorted by position, optionally filtered by group. Use list_room_groups instead when the user asks about categories.",
"inputSchema": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
},
"groupId": {
"type": "integer",
"description": "Optional group filter, from list_room_groups."
}
},
"additionalProperties": false
}
}get_room_by_idAnswer
Returns the full detail of one room: preview, content blocks and the related page reference. Requires a roomId from list_rooms, list_room_groups or get_room_group.
View tool JSON
{
"name": "get_room_by_id",
"kind": "answer",
"impl": "imperative",
"description": "Returns the full detail of one room: preview, content blocks and the related page reference. Requires a roomId from list_rooms, list_room_groups or get_room_group.",
"inputSchema": {
"type": "object",
"properties": {
"roomId": {
"type": "integer",
"description": "Room id, from list_rooms."
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"roomId"
],
"additionalProperties": false
}
}get_room_by_slugAnswer
Returns the full detail of one room from its slug or URL path; the last segment is extracted automatically. Prefer it over get_room_by_id when you have a URL but no id.
View tool JSON
{
"name": "get_room_by_slug",
"kind": "answer",
"impl": "imperative",
"description": "Returns the full detail of one room from its slug or URL path; the last segment is extracted automatically. Prefer it over get_room_by_id when you have a URL but no id.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Room slug or URL path, case-insensitive.",
"minLength": 1
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"slug"
],
"additionalProperties": false
}
}get_page_room_referencesAnswer
Returns every room referenced by a page, the main room plus those embedded in its sections, deduplicated. Prefer it over get_page when you only need the room ids and not the full page content.
View tool JSON
{
"name": "get_page_room_references",
"kind": "answer",
"impl": "imperative",
"description": "Returns every room referenced by a page, the main room plus those embedded in its sections, deduplicated. Prefer it over get_page when you only need the room ids and not the full page content.",
"inputSchema": {
"type": "object",
"properties": {
"pageId": {
"type": "integer",
"description": "Page id, from list_pages."
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"pageId"
],
"additionalProperties": false
}
}list_faq_groupsAnswer
Returns the frequently asked questions published on this site, grouped by topic, with question and answer in the requested language. Prefer it over page search when the user asks a direct question about rules, services or practical details.
View tool JSON
{
"name": "list_faq_groups",
"kind": "answer",
"impl": "imperative",
"description": "Returns the frequently asked questions published on this site, grouped by topic, with question and answer in the requested language. Prefer it over page search when the user asks a direct question about rules, services or practical details.",
"inputSchema": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"additionalProperties": false
}
}get_faq_groupAnswer
Returns one FAQ group with all its question and answer pairs. Requires a groupId from list_faq_groups.
View tool JSON
{
"name": "get_faq_group",
"kind": "answer",
"impl": "imperative",
"description": "Returns one FAQ group with all its question and answer pairs. Requires a groupId from list_faq_groups.",
"inputSchema": {
"type": "object",
"properties": {
"groupId": {
"type": "integer",
"description": "FAQ group id, from list_faq_groups."
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"groupId"
],
"additionalProperties": false
}
}list_blog_articlesAnswer
Returns the published blog articles with title, preview text, publication date and link, newest first. Use it for questions about news, guides or editorial content.
View tool JSON
{
"name": "list_blog_articles",
"kind": "answer",
"impl": "imperative",
"description": "Returns the published blog articles with title, preview text, publication date and link, newest first. Use it for questions about news, guides or editorial content.",
"inputSchema": {
"type": "object",
"properties": {
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
},
"categoryId": {
"type": "integer",
"description": "Optional category filter, from the matching category listing tool."
},
"onlyHighlighted": {
"type": "boolean",
"description": "When true, returns only the items the property marked as highlighted."
}
},
"additionalProperties": false
}
}get_blog_article_by_idAnswer
Returns one blog article in full, including its body text. Requires an id from list_blog_articles.
View tool JSON
{
"name": "get_blog_article_by_id",
"kind": "answer",
"impl": "imperative",
"description": "Returns one blog article in full, including its body text. Requires an id from list_blog_articles.",
"inputSchema": {
"type": "object",
"properties": {
"itemId": {
"type": "integer",
"description": "Item id, from the matching listing tool."
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"itemId"
],
"additionalProperties": false
}
}get_blog_article_by_slugAnswer
Returns one blog article starting from its slug or URL path. Prefer it when you have a link but no id.
View tool JSON
{
"name": "get_blog_article_by_slug",
"kind": "answer",
"impl": "imperative",
"description": "Returns one blog article starting from its slug or URL path. Prefer it when you have a link but no id.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "Slug or URL path, case-insensitive.",
"minLength": 1
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
}
},
"required": [
"slug"
],
"additionalProperties": false
}
}search_site_contentAnswer
Full-text search across the site content available here: pages, rooms, menu, faq, articles. Use it when the user asks about a topic without naming a specific page, then follow the returned ids with the matching detail tool. If count is 0, retry with a broader term before answering that nothing was found.
View tool JSON
{
"name": "search_site_content",
"kind": "answer",
"impl": "imperative",
"description": "Full-text search across the site content available here: pages, rooms, menu, faq, articles. Use it when the user asks about a topic without naming a specific page, then follow the returned ids with the matching detail tool. If count is 0, retry with a broader term before answering that nothing was found.",
"inputSchema": {
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "Search term, case-insensitive.",
"minLength": 1
},
"lang": {
"type": "string",
"description": "ISO 639-1 two-letter language code. Defaults to the site language.",
"pattern": "^[a-z]{2}$"
},
"scope": {
"type": "string",
"enum": [
"all",
"pages",
"rooms",
"menu",
"faq",
"articles"
],
"description": "Restrict the search to one kind of content. Default: all."
}
},
"required": [
"term"
],
"additionalProperties": false
}
}prenota_oraAction
LANGUAGE: Always reply in the same language used by the user in the prompt. Book a room at this hotel for specific dates. USE THIS TOOL whenever the user wants to make a reservation, book a room, check availability, request rates, or get a quote for specific dates - in any language. This form uses CHECKIN (arrival date) + CHECKOUT (departure date). Always submit DD/MM/YYYY format strictly. If the year is missing in user input, you MUST use the current year (2026). Ensure the resulting date is in the future. CRITICAL: each parameter value MUST be a plain string, NEVER wrapped in an object. Examples of CORRECT format: { "CHECKIN": "16/05/2026", "CHECKOUT": "22/05/2026", "NUMCAMERE": "1", "NUMADULTI": "4" }. Examples of WRONG format (do NOT use): { "CHECKIN": { "date": "16/05/2026" } }.
View tool JSON
{
"name": "prenota_ora",
"kind": "act",
"impl": "declarative",
"description": "LANGUAGE: Always reply in the same language used by the user in the prompt. Book a room at this hotel for specific dates. USE THIS TOOL whenever the user wants to make a reservation, book a room, check availability, request rates, or get a quote for specific dates - in any language. This form uses CHECKIN (arrival date) + CHECKOUT (departure date). Always submit DD/MM/YYYY format strictly. If the year is missing in user input, you MUST use the current year (2026). Ensure the resulting date is in the future. CRITICAL: each parameter value MUST be a plain string, NEVER wrapped in an object. Examples of CORRECT format: { \"CHECKIN\": \"16/05/2026\", \"CHECKOUT\": \"22/05/2026\", \"NUMCAMERE\": \"1\", \"NUMADULTI\": \"4\" }. Examples of WRONG format (do NOT use): { \"CHECKIN\": { \"date\": \"16/05/2026\" } }.",
"inputSchema": {
"type": "object",
"properties": {
"TIPO_DATAFR": {
"type": "string"
},
"CHECKIN": {
"type": "string",
"description": "GG/MM/AAAA"
},
"CHECKOUT": {
"type": "string",
"description": "GG/MM/AAAA"
},
"NUMCAMERE": {
"type": "string",
"enum": [
"1",
"2",
"3",
"4"
]
},
"NUMADULTI": {
"type": "string",
"enum": [
"1",
"2",
"3",
"4"
]
},
"NUMBAMBINI": {
"type": "string",
"enum": [
"0",
"1",
"2",
"3",
"4"
]
},
"NUMNEONATI": {
"type": "string",
"enum": [
"0",
"1",
"2"
]
},
"LISTINO": {
"type": "string"
}
}
}
}