Skip to main content
Glama

Save the family's SAT context in SATCoach

save_family_context

Saves what the parent shares about the child's SAT plans: target score and reason, past PSAT, SAT, or ACT scores, upcoming test dates, weekly practice time, other help, and a short note. SATCoach shows the newest values in the app to the parent and to the child's tutor, labeled as shared by the parent through their assistant. For when the parent gives this context, or answers a contextWeNeed question. Requires the parent's yes after they've seen exactly what will be saved. Takes at least one of goal, pastTests, upcomingTests, weeklyMinutes, otherHelp, and note, and requires agent, the calling assistant's identity. Only about the child that child refers to, never another child's information. No name or email address: child identifies the child. Last names, school names, phone numbers, and health, disability, or accommodation details must not be included, in note either. It records what the parent said; it doesn't change the child's target score, test date, or plan in SATCoach. Not for sending the tutor a message or reporting a problem with SATCoach. Returns what was saved and the updated contextWeNeed. SATCoach accepts up to 20 of these calls a day per connection (key or sign-in). Requires a connected SATCoach parent account.

Example tool call

This call uses example arguments supplied in the tool’s input schema.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "goal": {
        "reason": "college_admission",
        "targetScore": 1450
      },
      "note": "Math is the harder section for now. Weekday evenings are easiest for practice.",
      "agent": {
        "name": "Claude",
        "surface": "web",
        "provider": "Anthropic",
        "discoveredVia": "user_gave_link"
      },
      "child": "c_Q3m9xT2bLk7vN0pRw4sY1A",
      "otherHelp": "private_tutor",
      "pastTests": [
        {
          "math": 590,
          "test": "PSAT_NMSQT",
          "month": "2026-10",
          "total": 1210,
          "readingWriting": 620
        }
      ],
      "upcomingTests": [
        {
          "date": "2027-03-13",
          "test": "SAT",
          "registered": true
        }
      ],
      "weeklyMinutes": 150
    },
    "name": "save_family_context"
  }
}

Input Schema

NameRequiredDescriptionDefault
goalNoOptional. The parent's goal for the child: {targetScore?: 400 to 1600 in steps of 10, reason?: college_admission | scholarship | school_requirement | personal | other}, with at least one of the two. It's saved as the parent's goal and doesn't change the child's target score in SATCoach.
noteNoOptional, at most 500 characters. Anything else the parent wants SATCoach and the child's tutor to know. Must not include last names, school names, phone numbers, or health, disability, or accommodation details.
agentYesRequired. The calling assistant's identity: {name, e.g. "Claude"; provider, e.g. "Anthropic"; model?; surface: web (a browser chat site) | desktop_app (a computer app) | mobile_app (a phone or tablet app) | messaging_app (in a messaging app) | voice (spoken, not typed) | api_or_agent (called from code or an agent framework, not a chat app) | other (none of these); discoveredVia, how it found SATCoach; discoveredDetail?}. Plain text about the assistant, never the family: no links, markup, emails, phone numbers or web addresses. People see only a fixed name, as in "Shared by parent via Claude".
childNoThe child's reference, from the list of the parent's children. Optional when the parent has one child on SATCoach. Never a name.
otherHelpNoOptional. Other SAT help the child has: none | private_tutor | class | other_app.
pastTestsNoOptional. Up to 10 of {test: SAT | BLUEBOOK_PRACTICE | PSAT_NMSQT | PSAT_10 | PSAT_8_9 | ACT, month (YYYY-MM, not in the future), total, readingWriting?, math?}. Ranges: SAT and Bluebook practice tests 400 to 1600 (sections 200 to 800); PSAT/NMSQT and PSAT 10 320 to 1520 (sections 160 to 760); PSAT 8/9 240 to 1440 (sections 120 to 720); ACT composite 1 to 36, no sections.
upcomingTestsNoOptional. Up to 3 of {test: SAT | PSAT_NMSQT | ACT, date (YYYY-MM-DD, or YYYY-MM when only the month is known; not in the past), registered: true or false}.
weeklyMinutesNoOptional. Minutes a week the child can practice, 0 to 1200.

Output Schema

NameRequiredDescriptionDefault
asOfYes
childYes
labelYes
savedYes
sourceYes
summaryYes
parentUrlYes
contextWeNeedYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.3/5.0
Behavior5/5

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

Well beyond the annotations, it discloses that the values become visible to the parent and the child's tutor labeled as shared by the parent, that it records rather than changes the child's target score, test date, or plan, that a connected parent account is required, and that there is a 20-calls-per-day limit per connection. It also states the return payload and the privacy prohibitions on note contents.

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?

Front-loaded with what is saved and where it surfaces, then when to use it, then constraints and limits. It is dense and long, but for a consent-gated write with privacy rules nearly every sentence carries operative information; a small amount of list-style packing reduces scanability.

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?

With an output schema, full schema description coverage, and annotations in place, the remaining burden is behavioral and procedural, and the description covers consent, privacy redlines, scope limits on whose child the data concerns, rate limits, and account prerequisites. Nothing material for correct invocation is missing.

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

Parameters4/5

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

Schema coverage is 100%, so baseline would be 3, but the description adds a constraint the schema does not encode: at least one of goal, pastTests, upcomingTests, weeklyMinutes, otherHelp, or note must be supplied even though only agent is required. It also explains that agent is the calling assistant's identity and that child is a reference, never a name.

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

Purpose4/5

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

The first sentence names a specific verb and resource and enumerates exactly what is captured (target score and reason, past PSAT/SAT/ACT scores, upcoming dates, weekly minutes, other help, note), plus where it appears. It does not, however, distinguish itself from the near-twin sibling share_family_context, which an agent must choose between.

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?

Explicit trigger conditions are given -- the parent volunteers this context, or answers a contextWeNeed question -- along with exclusions (not for messaging the tutor, not for reporting a problem with SATCoach) and the consent precondition that the parent must approve exactly what will be saved. The missing piece is guidance on save_family_context versus share_family_context.

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