Skip to main content
Glama

Foresight Planner

Get a plan result

get_plan_result
Read-only

Gets the result of a Foresight Planner plan that run_plan started but that was still running when run_plan answered. Pass the run_id run_plan gave. Free: it uses no plan run. If the plan is still running, it says so; call it again a little later.

Input Schema

NameRequiredDescriptionDefault
run_idYesThe run_id run_plan gave.

Output Schema

NameRequiredDescriptionDefault
summaryYes
benefitsYes
end_agesYesFixed horizon: each person's age at the end of their own horizon, by person label. Null under life expectancy.
plan_urlYesLink to the saved plan on the site, with the year-by-year detail: give it to the person.
runs_leftYes
runs_usedYes
start_ageYes
not_adviceYes
runs_limitYes
assumptionsYes
plan_to_ageYesFixed horizon, one person: their age at plan end. Null for a couple, whose partners plan to their own ages (see end_ages), and under life expectancy, where each path ends at its own sampled death.
runs_windowYesThe period runs_used and runs_limit count over: a year on the Free plan, a calendar month on Pro.
horizon_modeYes
horizon_statsYesLife expectancy: the spread of simulated lifetimes. Null on a fixed horizon.
horizon_yearsYesFixed horizon: the plan's length in years (a couple's longer horizon). Null under life expectancy; see horizon_stats.
n_simulationsYes
plan_end_yearYesFixed horizon: the calendar year the plan ends, at the end of the longest horizon. Null under life expectancy.
lifetime_taxesYesIncome tax over the whole plan: each path's total, as a mean over the paths (not a median), in today's dollars, the OAS clawback included as its own line.
taxes_modelledYes
wealth_at_agesYesFixed horizon: portfolio value at retirement, each year the first person's age is a multiple of 10, and plan end. Null under life expectancy; see wealth_at_end_of_life.
data_attributionYes
household_totalsYesTrue for a couple: benefit and pension amounts cover both partners together.
median_failure_ageYesThe first person's age in the median year money ran out; null when no path ran out.
success_probabilityYes
first_retirement_yearYes
reused_run_started_atYesSet when this answer reused an identical run of the same inputs from this assistant in the last 15 minutes: when that run started. Nothing was charged for this call, so runs_used is unchanged by it. Null for a run of its own.
wealth_at_end_of_lifeYesLife expectancy: portfolio value when each path ends (the last person's death, or a fixed-horizon partner's plan end if later). Null on a fixed horizon.
benefits_after_plan_endYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Beyond the provided readOnlyHint/destructiveHint annotations, it discloses two non-obvious behaviors: the call consumes no plan run ("Free: it uses no plan run") and it is a polling-style async retrieval that may return an in-progress status. Neither fact is derivable from structured fields, so this is genuine added context.

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 the purpose, then provenance, then cost, then polling behavior — a sensible order with almost no waste. The "Free: it uses no plan run" phrasing is slightly terse but carries real 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?

For a single-parameter async poller with an output schema, the description covers the essential gaps: where the run_id comes from, cost, and in-progress behavior. It stops short of stating what happens with an invalid or expired run_id, but return-value shape is covered by the output schema.

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?

With one parameter at 100% schema coverage, the schema already documents run_id and its UUID pattern. The description's "Pass the run_id run_plan gave" restates the schema's provenance note rather than adding format or error semantics, so the baseline 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 ("Gets the result of a Foresight Planner plan") and immediately scopes it to plans that run_plan started but were still running, which cleanly separates it from run_plan. The purpose is unambiguous without opening the schema.

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

Usage Guidelines5/5

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

Explicitly says when to use it (only for plans that were still running when run_plan answered) and how to trigger it ("Pass the run_id run_plan gave"). It also prescribes the follow-up behavior for the still-running case ("call it again a little later"), leaving no inference to the agent.

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