Tool tree
gradeNot graded
page: Every page
start_hereAction
Best first call when a person describes what they are looking for in their own words, e.g. "trouble sleeping, interested in acupuncture in Dublin". Returns JSON {path, practitioners_for?: {name, url}, topics: [{type, name, url}], practitioners: [{name, url, where?, verified?}], events: [{name, url}], next_steps: [string], note}. If the words suggest a crisis it returns {crisis: true, emergency, lines, ...} instead: show that to the person first. Matching pages are not a diagnosis. Read-only.
View tool JSON
{
"name": "start_here",
"kind": "act",
"impl": "imperative",
"description": "Best first call when a person describes what they are looking for in their own words, e.g. \"trouble sleeping, interested in acupuncture in Dublin\". Returns JSON {path, practitioners_for?: {name, url}, topics: [{type, name, url}], practitioners: [{name, url, where?, verified?}], events: [{name, url}], next_steps: [string], note}. If the words suggest a crisis it returns {crisis: true, emergency, lines, ...} instead: show that to the person first. Matching pages are not a diagnosis. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"need": {
"type": "string",
"minLength": 2,
"maxLength": 300,
"description": "What the person is looking for, in their words."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Two-letter country code, e.g. IE or US."
}
},
"required": [
"need"
]
},
"page": "/"
}get_crisis_resourcesAnswer
Emergency number and free crisis helplines for a country. Use at once if the person mentions suicide, self-harm, or not being safe, or if any tool returns crisis: true. Returns JSON {crisis: true, message, country?, emergency, lines: [{name, contact, hours?}], elsewhere: {emergency, find_a_helpline}, note}.
View tool JSON
{
"name": "get_crisis_resources",
"kind": "answer",
"impl": "imperative",
"description": "Emergency number and free crisis helplines for a country. Use at once if the person mentions suicide, self-harm, or not being safe, or if any tool returns crisis: true. Returns JSON {crisis: true, message, country?, emergency, lines: [{name, contact, hours?}], elsewhere: {emergency, find_a_helpline}, note}.",
"inputSchema": {
"type": "object",
"properties": {
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Two-letter country code, e.g. IE, GB or US. Default: where the person is browsing from."
}
}
},
"page": "/"
}about_gyftsAction
How Gyfts works: what it is, booking and payment, cancellations and refunds, what Verified means, safety, and how to get in touch. Returns JSON {result: {topic, answer, read_more: [path]}, other_topics?}. Without a topic it answers what_is_gyfts and lists the others.
View tool JSON
{
"name": "about_gyfts",
"kind": "act",
"impl": "imperative",
"description": "How Gyfts works: what it is, booking and payment, cancellations and refunds, what Verified means, safety, and how to get in touch. Returns JSON {result: {topic, answer, read_more: [path]}, other_topics?}. Without a topic it answers what_is_gyfts and lists the others.",
"inputSchema": {
"type": "object",
"properties": {
"topic": {
"type": "string",
"enum": [
"what_is_gyfts",
"booking_and_payment",
"cancellations",
"verification",
"safety",
"contact"
]
}
}
},
"page": "/"
}search_gyftsAnswer
Search the Gyfts holistic health directory by name: conditions, symptoms, practices (modalities), treatments, specialties, journeys (pathways), practitioners, organizations, events and articles. Returns JSON {results: [{type, name, detail?, url}], page, next_page?, note}, 6 per page. For details of one result call get_topic, get_practitioner or get_offering. To find practitioners who offer a practice (e.g. reiki), use find_practitioners. Directory information only, not medical advice.
View tool JSON
{
"name": "search_gyfts",
"kind": "answer",
"impl": "imperative",
"description": "Search the Gyfts holistic health directory by name: conditions, symptoms, practices (modalities), treatments, specialties, journeys (pathways), practitioners, organizations, events and articles. Returns JSON {results: [{type, name, detail?, url}], page, next_page?, note}, 6 per page. For details of one result call get_topic, get_practitioner or get_offering. To find practitioners who offer a practice (e.g. reiki), use find_practitioners. Directory information only, not medical advice.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"maxLength": 120,
"description": "What to look for, e.g. \"reiki\", \"anxiety\", or a practitioner name."
},
"type": {
"type": "string",
"enum": [
"condition",
"symptom",
"modality",
"specialty",
"treatment",
"pathway",
"practitioner",
"organization",
"event",
"article"
],
"description": "Only return results of this type. \"modality\" is a practice; \"pathway\" is a journey."
},
"page": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "Page of results, from 1. Use next_page from the previous answer."
}
},
"required": [
"query"
]
},
"page": "/"
}find_practitionersAnswer
List published Gyfts practitioners who offer a practice or modality, e.g. "reiki" or "acupuncture", optionally in a country or city. Returns JSON {matched: {name, url}, results: [{name, url, where?, verified?}], page, next_page?, note}, 6 per page, verified practitioners first unless sort is "name". Call get_practitioner with the last part of a url for services, prices and formats. Read-only. Directory information only, not medical advice.
View tool JSON
{
"name": "find_practitioners",
"kind": "answer",
"impl": "imperative",
"description": "List published Gyfts practitioners who offer a practice or modality, e.g. \"reiki\" or \"acupuncture\", optionally in a country or city. Returns JSON {matched: {name, url}, results: [{name, url, where?, verified?}], page, next_page?, note}, 6 per page, verified practitioners first unless sort is \"name\". Call get_practitioner with the last part of a url for services, prices and formats. Read-only. Directory information only, not medical advice.",
"inputSchema": {
"type": "object",
"properties": {
"practice": {
"type": "string",
"minLength": 2,
"maxLength": 120,
"description": "The practice or modality name, e.g. \"reiki\"."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Two-letter country code, e.g. IE or US."
},
"city": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "City name, e.g. \"Dublin\"."
},
"sort": {
"type": "string",
"enum": [
"verified",
"name"
],
"description": "verified: verified first, then A–Z (default). name: A–Z."
},
"page": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "Page of results, from 1. Use next_page from the previous answer."
}
},
"required": [
"practice"
]
},
"page": "/"
}find_offeringsAnswer
List published courses, workshops, programs, retreats, classes, 1:1 sessions and events on Gyfts, optionally by format, price, country, city and date range. Returns JSON {results: [{name, url, by, format, price, starts?, where?}], page, next_page?, note}, 6 per page, soonest first unless sorted by price (prices compared as listed, not converted). Call get_offering with a url for details. Read-only: it does not book anything; the person books on the page.
View tool JSON
{
"name": "find_offerings",
"kind": "answer",
"impl": "imperative",
"description": "List published courses, workshops, programs, retreats, classes, 1:1 sessions and events on Gyfts, optionally by format, price, country, city and date range. Returns JSON {results: [{name, url, by, format, price, starts?, where?}], page, next_page?, note}, 6 per page, soonest first unless sorted by price (prices compared as listed, not converted). Call get_offering with a url for details. Read-only: it does not book anything; the person books on the page.",
"inputSchema": {
"type": "object",
"properties": {
"kind": {
"type": "string",
"enum": [
"courses",
"workshops",
"programs",
"retreats",
"classes",
"sessions",
"group-sessions",
"circles",
"talks",
"community-events",
"conferences"
],
"description": "Which kind of offering to list."
},
"query": {
"type": "string",
"maxLength": 120,
"description": "Optional words to match in the title or host name."
},
"mode": {
"type": "string",
"enum": [
"online",
"onsite",
"blended"
],
"description": "online, in person (onsite) or both (blended)."
},
"price": {
"type": "string",
"enum": [
"free",
"paid"
]
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Two-letter country code, e.g. IE or US."
},
"city": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "Only items held in this city, e.g. \"Cork\". Online-only items drop out."
},
"from": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only items starting on or after this date (YYYY-MM-DD). Excludes undated items."
},
"to": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Only items starting on or before this date (YYYY-MM-DD). Excludes undated items."
},
"sort": {
"type": "string",
"enum": [
"soonest",
"price_low",
"price_high"
],
"description": "Default soonest."
},
"page": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "Page of results, from 1. Use next_page from the previous answer."
}
},
"required": [
"kind"
]
},
"page": "/"
}find_organizationsAnswer
List published Gyfts organizations: clinics, wellness centers, retreat centers, training schools, associations, practices. Filter by type, practice (e.g. "yoga"), country and city; give at least one. Returns JSON {matched?: {name, url}, results: [{name, url, type, where?}], page, next_page?, note}, 6 per page, A–Z. Call get_organization with the last part of a url for details. Read-only.
View tool JSON
{
"name": "find_organizations",
"kind": "answer",
"impl": "imperative",
"description": "List published Gyfts organizations: clinics, wellness centers, retreat centers, training schools, associations, practices. Filter by type, practice (e.g. \"yoga\"), country and city; give at least one. Returns JSON {matched?: {name, url}, results: [{name, url, type, where?}], page, next_page?, note}, 6 per page, A–Z. Call get_organization with the last part of a url for details. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"practice",
"clinic",
"wellness_center",
"retreat_center",
"corporate_wellness",
"association",
"training_school"
],
"description": "training_school = a school or academy; association = a professional body."
},
"practice": {
"type": "string",
"minLength": 2,
"maxLength": 120,
"description": "A practice the organization offers, e.g. \"yoga\" or \"acupuncture\"."
},
"country": {
"type": "string",
"pattern": "^[A-Za-z]{2}$",
"description": "Two-letter country code, e.g. IE or US."
},
"city": {
"type": "string",
"minLength": 2,
"maxLength": 60,
"description": "City name, e.g. \"Galway\". Also matches an organization's other sites."
},
"page": {
"type": "integer",
"minimum": 1,
"maximum": 10,
"description": "Page of results, from 1. Use next_page from the previous answer."
}
}
},
"page": "/"
}get_topicAnswer
Details of one condition, symptom, practice, treatment, specialty or journey on Gyfts: its reviewed short summary and page URL, and for a condition the practices its page lists. Returns JSON {result: {type, name, url, summary?, related_practices?: [{name, url}], next_step?}, note}. A listed practice is not a recommendation. Not medical advice, a diagnosis or a treatment plan.
View tool JSON
{
"name": "get_topic",
"kind": "answer",
"impl": "imperative",
"description": "Details of one condition, symptom, practice, treatment, specialty or journey on Gyfts: its reviewed short summary and page URL, and for a condition the practices its page lists. Returns JSON {result: {type, name, url, summary?, related_practices?: [{name, url}], next_step?}, note}. A listed practice is not a recommendation. Not medical advice, a diagnosis or a treatment plan.",
"inputSchema": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"condition",
"symptom",
"practice",
"treatment",
"specialty",
"journey"
],
"description": "practice = a modality (/modalities/…); journey = a pathway (/journey/…)."
},
"slug": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,119}$",
"description": "The topic, e.g. \"anxiety\" from /conditions/anxiety: the last part of its Gyfts URL."
}
},
"required": [
"type",
"slug"
]
},
"page": "/"
}get_practitionerAnswer
A published Gyfts practitioner's public profile summary. Returns JSON {result: {name, url, where?, verified?, practices?, specialties?, languages?, years_experience?, formats?, about?, services?: [{id, name, price, minutes?, format?}], book_url?}, note}. No contact details. Use a service id with check_availability and open_booking.
View tool JSON
{
"name": "get_practitioner",
"kind": "answer",
"impl": "imperative",
"description": "A published Gyfts practitioner's public profile summary. Returns JSON {result: {name, url, where?, verified?, practices?, specialties?, languages?, years_experience?, formats?, about?, services?: [{id, name, price, minutes?, format?}], book_url?}, note}. No contact details. Use a service id with check_availability and open_booking.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,119}$",
"description": "The practitioner, e.g. \"jane-doe\" from /ie/jane-doe: the last part of its Gyfts URL."
}
},
"required": [
"slug"
]
},
"page": "/"
}get_organizationAnswer
A published Gyfts organization's public summary. Returns JSON {result: {type, name, url, org_type, where?, about?, practices?: [{name, url}], locations?: [{name, city?}], next_step}, note}. No contact details. For its courses, classes and events, call find_offerings with its name as the query.
View tool JSON
{
"name": "get_organization",
"kind": "answer",
"impl": "imperative",
"description": "A published Gyfts organization's public summary. Returns JSON {result: {type, name, url, org_type, where?, about?, practices?: [{name, url}], locations?: [{name, city?}], next_step}, note}. No contact details. For its courses, classes and events, call find_offerings with its name as the query.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,119}$",
"description": "The organization, e.g. \"bright-cove\" from /ie/organizations/bright-cove: the last part of its Gyfts URL."
}
},
"required": [
"slug"
]
},
"page": "/"
}check_availabilityAnswer
A practitioner's open time windows over up to 14 days, optionally for one service (only windows long enough for it). Read-only: nothing is held or booked. Returns JSON {result: {practitioner, url, service?, from, to, times_are: "UTC", open_windows: [{start, end}], book_url, how_to_book}, note}. To book, call open_booking; the person picks the time and pays.
View tool JSON
{
"name": "check_availability",
"kind": "answer",
"impl": "imperative",
"description": "A practitioner's open time windows over up to 14 days, optionally for one service (only windows long enough for it). Read-only: nothing is held or booked. Returns JSON {result: {practitioner, url, service?, from, to, times_are: \"UTC\", open_windows: [{start, end}], book_url, how_to_book}, note}. To book, call open_booking; the person picks the time and pays.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,119}$",
"description": "The practitioner: the last part of its Gyfts URL."
},
"service": {
"type": "string",
"pattern": "^[0-9a-fA-F-]{36}$",
"description": "A service id from get_practitioner."
},
"from": {
"type": "string",
"format": "date",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First day to check (YYYY-MM-DD). Default today."
},
"days": {
"type": "integer",
"minimum": 1,
"maximum": 14,
"description": "How many days to check. Default 7."
}
},
"required": [
"slug"
]
},
"page": "/"
}get_offeringAnswer
Details of one event, course, workshop, retreat, organization offering or practitioner session, from a url returned by find_offerings. Returns JSON {result: {type, name, url, host?, starts?, ends?, timezone?, format?, where?, price?, minutes?, tickets?: [{name, price}], about?, how_to_book}, note}. Read-only.
View tool JSON
{
"name": "get_offering",
"kind": "answer",
"impl": "imperative",
"description": "Details of one event, course, workshop, retreat, organization offering or practitioner session, from a url returned by find_offerings. Returns JSON {result: {type, name, url, host?, starts?, ends?, timezone?, format?, where?, price?, minutes?, tickets?: [{name, price}], about?, how_to_book}, note}. Read-only.",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 300,
"description": "The offering url from find_offerings, e.g. /events/sound-bath-dublin."
}
},
"required": [
"url"
]
},
"page": "/"
}get_this_pageAnswer
Details of the practitioner, organization, topic or offering shown on the current Gyfts page, in the same shape get_practitioner, get_organization, get_topic or get_offering return. Returns JSON {result: {...} | null, error?, note}; result is null on pages that are not about one of those (e.g. the homepage or a listing).
View tool JSON
{
"name": "get_this_page",
"kind": "answer",
"impl": "imperative",
"description": "Details of the practitioner, organization, topic or offering shown on the current Gyfts page, in the same shape get_practitioner, get_organization, get_topic or get_offering return. Returns JSON {result: {...} | null, error?, note}; result is null on pages that are not about one of those (e.g. the homepage or a listing).",
"inputSchema": {
"type": "object",
"properties": {}
},
"page": "/"
}open_pageAction
Navigate this tab to a public Gyfts page, e.g. a url from any other tool. Only Gyfts pages; account, admin, sign-in and booking pages are refused (use open_booking to book). Returns JSON {opened} or {error}.
View tool JSON
{
"name": "open_page",
"kind": "act",
"impl": "imperative",
"description": "Navigate this tab to a public Gyfts page, e.g. a url from any other tool. Only Gyfts pages; account, admin, sign-in and booking pages are refused (use open_booking to book). Returns JSON {opened} or {error}.",
"inputSchema": {
"type": "object",
"properties": {
"url": {
"type": "string",
"maxLength": 300,
"description": "A Gyfts path such as /modalities/reiki, or a full gyfts.io URL."
}
},
"required": [
"url"
]
},
"page": "/"
}open_bookingAction
Open a practitioner's Gyfts booking page, optionally with one service chosen, so the person can pick a time and pay. The agent does not book or pay: the person signs in and completes it themselves. Returns JSON {opened} or {error}.
View tool JSON
{
"name": "open_booking",
"kind": "act",
"impl": "imperative",
"description": "Open a practitioner's Gyfts booking page, optionally with one service chosen, so the person can pick a time and pay. The agent does not book or pay: the person signs in and completes it themselves. Returns JSON {opened} or {error}.",
"inputSchema": {
"type": "object",
"properties": {
"slug": {
"type": "string",
"pattern": "^[a-z0-9][a-z0-9-]{0,119}$",
"description": "The practitioner: the last part of its Gyfts URL."
},
"service": {
"type": "string",
"pattern": "^[0-9a-fA-F-]{36}$",
"description": "A service id from get_practitioner."
}
},
"required": [
"slug"
]
},
"page": "/"
}page: Home
open_gyfts_searchAction
Open the Gyfts search results page for a search term. Results cover conditions, symptoms, practices (modalities), treatments, specialties, journeys, practitioners, organizations, events and articles. Navigates this tab to the public results page; nothing is booked or changed. Gyfts is a directory: results are not medical advice, a diagnosis or a treatment recommendation.
View tool JSON
{
"name": "open_gyfts_search",
"kind": "act",
"impl": "declarative",
"description": "Open the Gyfts search results page for a search term. Results cover conditions, symptoms, practices (modalities), treatments, specialties, journeys, practitioners, organizations, events and articles. Navigates this tab to the public results page; nothing is booked or changed. Gyfts is a directory: results are not medical advice, a diagnosis or a treatment recommendation.",
"inputSchema": {
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Search a feeling, symptom, practice or practitioner…"
}
},
"required": [
"q"
]
},
"page": "/"
}