Skip to main content
Glama

Get a what-to-say guide

get_what_to_say
Read-onlyIdempotent

Finds the published Life Scenario page for parents that best matches a topic (for example: "nobody will play with me", "being teased", "a friend wants to copy my child's homework"): a "What to say" guide or a scenario page (one situation, with example replies by age), whichever is closer. Returns its short answer, the key lines a child can say, its URL and, when it has one, a practice_url: a practice scenario on a similar situation that the adult can open with the child without signing up. If no guide or scenario page on that topic is published, returns status "no_article_yet" and, when a public practice scenario is about the same situation, that scenario. Topics involving risk of harm, or medical or legal questions, return status "not_covered" with no guide or practice link.

Input Schema

NameRequiredDescriptionDefault
topicYesThe topic or the words the child used, e.g. "left out at recess".

Output Schema

NameRequiredDescriptionDefault
urlNo
noteNo
titleNo
statusNoAbsent when a guide or scenario page is returned.
more_atNoThe page, which has all of its lines. Present only when it has more than 8.
updatedNo
for_agesNo
page_typeNoPresent with an answer: a /what-to-say guide, or a /scenarios page about one situation (its short answer is the page's introduction and advice for parents, its key_scripts the page's example replies by age).
guides_hubNoThe list of all published what-to-say guides. Present with status no_article_yet.
topic_areaNoWith status not_covered: the kind of topic that was recognised.
key_scriptsNoLines a child can say, at most 8.
reviewed_byNoName and credentials of the page's reviewer. Present only when the page has a named reviewer.
urgent_helpNoWhere to get urgent help: the wording of the guide's own section of that name, or, with status not_covered, the same published wording for topics involving risk of harm.
how_it_worksNo
practice_urlNoA practice scenario on a similar situation; opens without an account. Present only when the guide or page has one.
short_answerNo
match_qualityNoPresent with a guide or scenario page, and with nearest_practice_situation.
practice_noteNoWhat the practice link is, and the ages the scenario is written for when narrower than the guide's or page's.
nearest_practice_situationNoA public practice scenario about the same situation. Present only with status no_article_yet, and only when one fits closely.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed12 schema fields changed
    • changedOutput schema / description
      Previous value: -"One of three shapes. A published guide: title, url, short_answer, key_scripts and, when available, practice_url (no status field). No guide on the topic: status \"no_article_yet\" with guides_hub and, when a public practice scenario is about the same situation, nearest_practice_situation. Topic not covered: status \"not_covered\" with topic_area and note, and no link."New value: +"One of three shapes. A published guide or scenario page: page_type, title, url, short_answer, key_scripts and, when available, practice_url (no status field). Nothing published on the topic: status \"no_article_yet\" with guides_hub and, when a public practice scenario is about the same situation, nearest_practice_situation. Topic not covered: status \"not_covered\" with topic_area and note, and no link."
    • changedOutput schema / properties / guides_hub / description
      Previous value: -"The list of all published guides. Present with status no_article_yet."New value: +"The list of all published what-to-say guides. Present with status no_article_yet."
    • addedOutput schema / properties / key_scripts / items / properties / by_age
      Added value: +{
      +  "description": "Scenario pages only: the same reply worded for each age band the page shows.",
      +  "items": {
      +    "properties": {
      +      "ages": {
      +        "description": "e.g. \"6–8\".",
      +        "type": "string"
      +      },
      +      "say": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "ages",
      +      "say"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / key_scripts / items / properties / say / description
      Added value: +"The line. On a scenario page: the reply for the middle age band."
    • addedOutput schema / properties / key_scripts / items / properties / when / description
      Added value: +"When the line fits, or why it works."
    • changedOutput schema / properties / match_quality / description
      Previous value: -"Present with a guide, and with nearest_practice_situation."New value: +"Present with a guide or scenario page, and with nearest_practice_situation."
    • changedOutput schema / properties / more_at / description
      Previous value: -"The guide's page, which has all of its lines. Present only when the guide has more than 8."New value: +"The page, which has all of its lines. Present only when it has more than 8."
    • addedOutput schema / properties / page_type
      Added value: +{
      +  "description": "Present with an answer: a /what-to-say guide, or a /scenarios page about one situation (its short answer is the page's introduction and advice for parents, its key_scripts the page's example replies by age).",
      +  "enum": [
      +    "what_to_say_guide",
      +    "scenario_page"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / practice_note / description
      Previous value: -"What the practice link is, and the ages the scenario is written for when narrower than the guide's."New value: +"What the practice link is, and the ages the scenario is written for when narrower than the guide's or page's."
    • changedOutput schema / properties / practice_url / description
      Previous value: -"A practice scenario on a similar situation; opens without an account. Present only when the guide has one."New value: +"A practice scenario on a similar situation; opens without an account. Present only when the guide or page has one."
    • changedOutput schema / properties / reviewed_by / description
      Previous value: -"Name and credentials of the guide's reviewer. Present only when the guide has a named reviewer."New value: +"Name and credentials of the page's reviewer. Present only when the page has a named reviewer."
    • changedOutput schema / properties / status / description
      Previous value: -"Absent when a guide is returned."New value: +"Absent when a guide or scenario page is returned."
  2. Changed19 schema fields changed
    • changedOutput schema / description
      Previous value: -"Either a published guide (title, url, short_answer, key_scripts and, when available, practice_url) or status \"no_article_yet\" with the list of published guides and the nearest public practice scenario."New value: +"One of three shapes. A published guide: title, url, short_answer, key_scripts and, when available, practice_url (no status field). No guide on the topic: status \"no_article_yet\" with guides_hub and, when a public practice scenario is about the same situation, nearest_practice_situation. Topic not covered: status \"not_covered\" with topic_area and note, and no link."
    • addedOutput schema / properties / guides_hub / description
      Added value: +"The list of all published guides. Present with status no_article_yet."
    • addedOutput schema / properties / key_scripts / description
      Added value: +"Lines a child can say, at most 8."
    • addedOutput schema / properties / key_scripts / items / properties
      Added value: +{
      +  "say": {
      +    "type": "string"
      +  },
      +  "when": {
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / key_scripts / items / required
      Added value: +[
      +  "say"
      +]
    • changedOutput schema / properties / match_quality / description
      Previous value: -"For a guide: \"close\". With status no_article_yet: how well nearest_practice_situation fits, \"close\" or \"loose\"."New value: +"Present with a guide, and with nearest_practice_situation."
    • addedOutput schema / properties / match_quality / enum
      Added value: +[
      +  "close"
      +]
    • addedOutput schema / properties / more_at
      Added value: +{
      +  "description": "The guide's page, which has all of its lines. Present only when the guide has more than 8.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / nearest_practice_situation / description
      Added value: +"A public practice scenario about the same situation. Present only with status no_article_yet, and only when one fits closely."
    • addedOutput schema / properties / nearest_practice_situation / properties
      Added value: +{
      +  "age_note": {
      +    "description": "Present when the scenario is not written for the age that was asked about.",
      +    "type": "string"
      +  },
      +  "ages": {
      +    "description": "Ages the scenario is written for, e.g. \"8–14\".",
      +    "type": "string"
      +  },
      +  "play_url": {
      +    "description": "Opens the scenario without an account.",
      +    "type": "string"
      +  },
      +  "scenario_page_url": {
      +    "description": "Published page for parents about this situation, when there is one.",
      +    "type": "string"
      +  },
      +  "situation": {
      +    "description": "Short excerpt of the scenario text.",
      +    "type": "string"
      +  },
      +  "title": {
      +    "type": "string"
      +  },
      +  "traits_practised": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "what_to_say_guide_url": {
      +    "description": "Published what-to-say guide that uses this scenario, when there is one.",
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / nearest_practice_situation / required
      Added value: +[
      +  "title",
      +  "situation",
      +  "ages",
      +  "play_url"
      +]
    • changedOutput schema / properties / nearest_practice_situation / type
      Previous value: -[
      -  "object",
      -  "null"
      -]New value: +"object"
    • addedOutput schema / properties / note
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / published_guides
      Removed value: -{
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / reviewed_by
      Added value: +{
      +  "description": "Name and credentials of the guide's reviewer. Present only when the guide has a named reviewer.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / status / description
      Added value: +"Absent when a guide is returned."
    • addedOutput schema / properties / status / enum
      Added value: +[
      +  "no_article_yet",
      +  "not_covered"
      +]
    • addedOutput schema / properties / topic_area
      Added value: +{
      +  "description": "With status not_covered: the kind of topic that was recognised.",
      +  "enum": [
      +    "self_harm_or_suicide",
      +    "abuse_or_sexual_harm",
      +    "violence_or_weapons",
      +    "eating_or_body",
      +    "medical_or_diagnostic",
      +    "legal",
      +    "bereavement_or_serious_illness"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / urgent_help
      Added value: +{
      +  "description": "Where to get urgent help: the wording of the guide's own section of that name, or, with status not_covered, the same published wording for topics involving risk of harm.",
      +  "type": "string"
      +}
  3. First observed

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, and the description adds real value beyond them: the two status sentinels, the practice_url fallback that requires no signup, and that the topic is matched against published content only. The return-shape detail partly overlaps the output schema, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first clause, and the parenthetical examples are useful. It is a dense single paragraph that runs long, with some sentences restating what the output schema already covers, but each clause still carries meaning.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return values need not be explained, yet the description still clarifies the status semantics and the practice_url fallback. For a single-parameter read-only lookup, nothing an agent needs to invoke it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single 'topic' parameter is fully documented with an example in the schema itself. The description restates example topics but adds no parsing, format, or length guidance beyond what the schema already provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: finds the published Life Scenario page / 'What to say' guide best matching a topic. It explicitly distinguishes the two content kinds it may return (guide vs. single-situation scenario page), so an agent can tell it apart from find_practice_situation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives clear conditional outcomes: normal match, status 'no_article_yet' when nothing is published, and status 'not_covered' for risk-of-harm, medical, or legal topics — an effective when-not rule. It does not explicitly route the agent to find_practice_situation versus using this tool, but the boundary is implied by the topic-matching framing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources