QuantCalc Retirement Engine
Server Details
Monte Carlo retirement projections on a real engine, with assumptions attached.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
TDQS
Scored across 4 tools
Each tool addresses a distinct concern: running a projection, comparing assumption sets, listing available sources, and explaining methodology. The two assumption-related tools are clearly separated by purpose—cataloging sources versus running sensitivity comparisons.
All tool names follow a consistent verb_noun pattern: run_, compare_, list_, and explain_. The naming clearly signals each tool's action with no mixed conventions or vague verbs.
Four tools is well-scoped for a focused retirement calculation engine. Each tool earns its place and there is no redundancy or padding.
The core projection workflow, sensitivity comparison, and methodology documentation are all covered. Minor gaps exist around editing plan inputs or assumption sets, but agents can work around them via the main run and compare tools.
Available Tools
4 toolscompare_return_assumptionsCompare published return assumptionsARead-onlyInspect
Runs the same plan against several published capital market assumption sets and returns the success rate and median outcome under each, showing how far the answer moves with the return forecast used.
| Name | Required | Description | Default |
|---|---|---|---|
| pension | No | Yearly pension income. Default 0. | |
| sources | No | Source ids to compare. Defaults to all. | |
| allocations | No | Percentages summing to 100: [US stocks, international stocks, bonds, real estate, cash]. Default [60,10,25,5,0]. | |
| current_age | Yes | Current age of the primary person. | |
| ss_start_age | No | Age Social Security starts. Default 67. | |
| inflation_rate | No | Annual inflation as a percent, e.g. 2.5. Default 2.5. | |
| retirement_age | No | Age work income stops. Defaults to current age. | |
| returns_source | No | Which published return set to use (see list_return_assumption_sources). Default jpmorgan. | |
| annual_spending | Yes | Planned yearly spending in today's dollars. | |
| current_savings | Yes | Total invested portfolio today, in dollars. | |
| life_expectancy | No | Age the plan must last until. Default 92. | |
| social_security | No | Yearly Social Security in today's dollars. Default 0 — and 0 is reported as an explicit assumption, not hidden. | |
| pension_start_age | No | Age the pension starts. Default 65. | |
| monthly_contribution | No | Monthly savings until retirement. Default 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and openWorldHint=true. The description adds valuable behavioral context beyond annotations by specifying that the tool returns multiple results (success rate and median outcome per assumption set), which is not apparent from the schema or annotations. It does not contradict the read-only or open-world hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, well-structured sentence that front-loads the action and output, with zero filler. Every word contributes to the agent's understanding of what the tool does.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Since there is no output schema, the description correctly explains what the tool returns (success rate and median outcome for each source). For a 14-parameter tool with full schema coverage, the description need not enumerate parameters. It is complete enough for an agent to call the tool correctly, though it could have mentioned the default source behavior or the nature of 'success rate'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description does not reference any specific parameters or add meaning beyond what the schema already documents. It does not need to compensate for gaps, so the baseline applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Runs the same plan'), the resource ('several published capital market assumption sets'), and the output ('success rate and median outcome under each'). It distinguishes itself from siblings: run_retirement_projection presumably runs a single plan with one return assumption, while list_return_assumption_sources only lists sources. The comparative focus is explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description conveys clear context: use this tool to see how outcomes vary across different return forecast sets ('showing how far the answer moves with the return forecast used'). However, it does not explicitly name alternatives or state when not to use it, so it falls short of the top tier of explicit when/when-not guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_methodologyWhat the engine models, and what it does notARead-onlyInspect
Returns what the QuantCalc engine models and what it deliberately leaves out, including the tax provisions that are out of scope, and links to the published methodology.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description is not required to restate safety. It adds value by disclosing the tool returns both included and excluded items, specifically tax provisions, and provides links. This goes beyond the annotations and gives clear behavioral context about the output content.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that packs essential information: what is returned, what is excluded, and that links are provided. There is no filler, and the core purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a no-parameter informational tool with no output schema, the description fully covers what the agent needs to know to call it correctly: the nature of the returned information and the presence of links. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema is empty with 100% coverage. Per the baseline for no parameters, a score of 4 is appropriate; the description does not need to explain parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a summary of what the QuantCalc engine models and excludes, including tax provisions out of scope, and links to methodology. This is a specific verb ('Returns') and resource (engine scope), and it differentiates from sibling tools that focus on assumptions, sources, or projections.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to understand modeling scope, but it does not explicitly state when to use it versus alternatives, nor does it provide any exclusion criteria. An agent can infer the purpose, but there is no direct guidance on selecting this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_return_assumption_sourcesList available return assumption setsARead-onlyInspect
Returns the published capital market assumption sets the engine carries and which components each publisher provides (returns, volatilities, correlations).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, covering safety and scope. The description adds specific behavioral context by specifying what the return includes (which components each publisher provides), going slightly beyond the annotations. It does not contradict annotations and provides useful detail about the operation's output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the main action ('Returns the published capital market assumption sets') and then adds the key detail about components. Every word contributes to clarity, with no wasted phrasing or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only listing tool with annotations covering safety and open-world behavior, the description provides all necessary context. It tells the agent what the tool returns and what information is included, which is sufficient for correct invocation. No output schema exists, so the description adequately explains the return value.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema trivially covers 100% of parameters. Per rubric, a baseline of 4 is given for 0 parameters. The description does not need to add parameter meaning since there are none, and it correctly focuses on the output semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Returns') and a specific resource ('the published capital market assumption sets the engine carries'), and adds detail about the returned components (returns, volatilities, correlations). This distinguishes it from siblings like compare_return_assumptions (which compares) and run_retirement_projection (which runs projections).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use the tool: to retrieve the list of available assumption sets and their components. However, it does not explicitly mention alternatives or exclusions relative to sibling tools. The purpose is obvious enough that an agent can infer when to call it, but there is no explicit 'use this when' or 'not for comparing' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_retirement_projectionRun a retirement projectionARead-onlyInspect
Runs a Monte Carlo retirement projection on the QuantCalc engine and returns the success rate, the ending-portfolio distribution, and the assumptions that produced them. The result states the return model that ran, the number of paths, and the income assumptions it used, including when there are none.
| Name | Required | Description | Default |
|---|---|---|---|
| pension | No | Yearly pension income. Default 0. | |
| allocations | No | Percentages summing to 100: [US stocks, international stocks, bonds, real estate, cash]. Default [60,10,25,5,0]. | |
| current_age | Yes | Current age of the primary person. | |
| ss_start_age | No | Age Social Security starts. Default 67. | |
| inflation_rate | No | Annual inflation as a percent, e.g. 2.5. Default 2.5. | |
| retirement_age | No | Age work income stops. Defaults to current age. | |
| returns_source | No | Which published return set to use (see list_return_assumption_sources). Default jpmorgan. | |
| annual_spending | Yes | Planned yearly spending in today's dollars. | |
| current_savings | Yes | Total invested portfolio today, in dollars. | |
| life_expectancy | No | Age the plan must last until. Default 92. | |
| social_security | No | Yearly Social Security in today's dollars. Default 0 — and 0 is reported as an explicit assumption, not hidden. | |
| pension_start_age | No | Age the pension starts. Default 65. | |
| monthly_contribution | No | Monthly savings until retirement. Default 0. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint and openWorldHint, lowering the burden. The description adds useful behavior beyond those annotations by specifying exactly what outputs are returned, including the notable detail that income assumptions are reported even when there are none. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The purpose and the most decision-relevant output facts are front-loaded, and every clause contributes information about what the call does or returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing return fields and even an edge case (zero income assumptions). Required parameters and defaults are covered by the schema. It could add validation context such as age ordering or allocation-sum enforcement, but those are not required for a basic correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already explains each of the 13 parameters and defaults. The description adds no parameter-level meaning except implying that income assumptions (pension, social_security, monthly_contribution) are reflected in the returned result. This meets the baseline but does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb ('Runs'), names the resource ('Monte Carlo retirement projection on the QuantCalc engine'), and lists concrete return artifacts (success rate, ending-portfolio distribution, assumptions). This makes the tool's function unmistakable and separates it from the sibling comparison and inspection tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear this is the tool for running a projection, so its primary use case is implied. However, it never says when to prefer a sibling like compare_return_assumptions or list_return_assumption_sources, or when not to use this tool. Guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
4 tool updates
- First observed
compare_return_assumptions - First observed
explain_methodology - First observed
list_return_assumption_sources - First observed
run_retirement_projection
Related MCP Connectors
Monte Carlo tools: three-point cost estimation and an educational retirement drawdown simulator.
Deterministic US financial planning: retirement Monte Carlo, Roth conversion, RMD, tax, IRMAA, SS
Savvly MCP: query fund data, model projections, and compare against alternative retirement products.
Retirement planning for Canada & US. CPP/OAS, Social Security, RRSP/TFSA, 401k/IRA, Monte Carlo.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA simulation engine for retirement planning, accessible via an MCP server that allows AI agents to create financial plans, manage income, expenses, loans, taxes, and portfolios, and run Monte Carlo simulations.MIT

cinderfi-mcpofficial
FlicenseNot gradedqualityCmaintenanceTax-aware retirement planning for Canada and the US. CPP/OAS and Social Security timing, RRSP/TFSA/401k/IRA projections, Monte Carlo simulation, withdrawal order optimization, and historical backtesting against 150 years of market data.2-- AlicenseNot gradedqualityAmaintenanceMCP server for cove-fi, a deterministic retirement and financial-independence projection engine. It lets users run plans, create scenarios, and explore year-by-year net-worth projections through natural language.MIT
- FlicenseNot gradedqualityDmaintenanceEnables institutional-grade Monte Carlo risk analysis for portfolios, startups, real estate, and betting strategies using fat-tail distributions and proprietary algorithms. Provides comprehensive risk metrics including CVaR, VaR, ruin probability, and survival probability across multiple asset classes.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.