Skip to main content
Glama

Write a coaching narrative

generate_narrative
Read-only

Premium: write a plain-language coaching narrative for one person, or for a pair when compare_with is given, synthesized from all 21 frameworks. Business context stays on working behavior only. Slower than other tools. Costs 5 units.

Input Schema

NameRequiredDescriptionDefault
focusNoOptional topic to emphasize, e.g. 'giving feedback'.
lengthNoApproximate length of the narrative.standard
personYesWho the narrative is about. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing.
contextNoRelationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them.business
audienceNoWho will read it. Hiring or candidate-screening audiences are intentionally not supported.manager
compare_withNoOptional second person for a pair narrative. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing.
confirm_costNoSet true only after the user explicitly approves the five-unit cost. False returns a no-charge confirmation prompt.

Output Schema

NameRequiredDescriptionDefault
unitsNoTool-call units this narrative costs.
billingNoUnits billed.
contextNoRelationship context for pair narratives.
scoringNoScores the narrative is based on.
subjectNoPerson the narrative is about.
audienceNoWho the narrative is written for.
sectionsNoNarrative split into sections.
narrativeNoThe written coaching narrative.
disclaimerNoDecision-support disclaimer.
guardrailsNoSafety check results.
action_itemsNoAction items pulled from the narrative.
compared_withNoSecond person, for pair narratives.
requires_confirmationNoTrue when the price must be confirmed before running.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / confirm_cost
      Added value: +{
      +  "default": false,
      +  "description": "Set true only after the user explicitly approves the five-unit cost. False returns a no-charge confirmation prompt.",
      +  "type": "boolean"
      +}
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": false,
      +  "properties": {
      +    "action_items": {
      +      "description": "Action items pulled from the narrative."
      +    },
      +    "audience": {
      +      "description": "Who the narrative is written for.",
      +      "type": "string"
      +    },
      +    "billing": {
      +      "additionalProperties": {
      +        "$ref": "#/properties/guardrails/additionalProperties"
      +      },
      +      "description": "Units billed.",
      +      "type": "object"
      +    },
      +    "compared_with": {
      +      "description": "Second person, for pair narratives.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "context": {
      +      "description": "Relationship context for pair narratives.",
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "disclaimer": {
      +      "description": "Decision-support disclaimer.",
      +      "type": "string"
      +    },
      +    "guardrails": {
      +      "additionalProperties": {},
      +      "description": "Safety check results.",
      +      "type": "object"
      +    },
      +    "narrative": {
      +      "description": "The written coaching narrative.",
      +      "type": "string"
      +    },
      +    "requires_confirmation": {
      +      "description": "True when the price must be confirmed before running.",
      +      "type": "boolean"
      +    },
      +    "scoring": {
      +      "description": "Scores the narrative is based on."
      +    },
      +    "sections": {
      +      "description": "Narrative split into sections."
      +    },
      +    "subject": {
      +      "description": "Person the narrative is about.",
      +      "type": "string"
      +    },
      +    "units": {
      +      "description": "Tool-call units this narrative costs.",
      +      "type": "number"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed12 schema fields changed
    • addedInput schema / properties / audience / default
      Added value: +"manager"
    • changedInput schema / properties / audience / description
      Previous value: -"Who the narrative is for. Hiring or candidate-screening audiences are intentionally not supported."New value: +"Who will read it. Hiring or candidate-screening audiences are intentionally not supported."
    • addedInput schema / properties / compare_with / description
      Added value: +"Optional second person for a pair narrative. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing."
    • addedInput schema / properties / context / default
      Added value: +"business"
    • addedInput schema / properties / context / description
      Added value: +"Relationship context that sets framework weighting. 'business' (default) is work-safe and withholds personal-life signals (love language, attachment style, date of birth); the other contexts include them."
    • addedInput schema / properties / context / enum
      Added value: +[
      +  "business",
      +  "romantic",
      +  "friendship",
      +  "coparenting"
      +]
    • addedInput schema / properties / focus / description
      Added value: +"Optional topic to emphasize, e.g. 'giving feedback'."
    • addedInput schema / properties / focus / maxLength
      Added value: +200
    • addedInput schema / properties / length / default
      Added value: +"standard"
    • addedInput schema / properties / length / description
      Added value: +"Approximate length of the narrative."
    • addedInput schema / properties / length / enum
      Added value: +[
      +  "short",
      +  "standard",
      +  "deep"
      +]
    • addedInput schema / properties / person / description
      Added value: +"Who the narrative is about. Accepts a profile id, an exact email, or a full name. If a name matches more than one person the tool asks which one instead of guessing."
  4. Changed2 schema fields changed
    • addedInput schema / properties / audience / description
      Added value: +"Who the narrative is for. Hiring or candidate-screening audiences are intentionally not supported."
    • addedInput schema / properties / audience / enum
      Added value: +[
      +  "manager",
      +  "self",
      +  "partner"
      +]
  5. First observed

TDQS

A4.2/5.0
Behavior4/5

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

Beyond the readOnly/destructive/idempotent annotations, the description discloses pricing, latency relative to siblings, and a privacy behavior ('withholds personal-life signals' under business context). It does not explain the non-idempotent behavior hinted at by idempotentHint=false, leaving a small gap.

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

Conciseness5/5

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

Four short sentences, front-loaded with the premium label and the core action, then the pair condition, then the privacy constraint, then the cost/latency caveat. No filler; every sentence carries information.

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

Completeness4/5

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

With an output schema present, return values need not be described, and the description covers cost, latency, privacy scope, and ambiguity handling. It is nearly complete, though it leaves the audience restriction's rationale to the schema rather than stating it for the agent's decision-making.

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%, so the schema already documents focus, length, person, context, audience, compare_with, and confirm_cost in detail. The description only adds the pair-mode framing for compare_with, which is largely duplicative, 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 artifact ('write a plain-language coaching narrative'), the scope ('for one person, or for a pair when compare_with is given'), and the synthesis basis ('all 21 frameworks'). This is clearly distinct from siblings like get_profile, prep_meeting, or score_compatibility.

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 selection context: single vs pair mode via compare_with, context gating ('Business context stays on working behavior only'), and a trade-off warning ('Slower than other tools. Costs 5 units'). It does not explicitly name a cheaper alternative tool to use instead when speed or cost matters, so it stops short of 5.

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