# QuantCalc Retirement Engine (remote · mcp.quantcalc.app)

Retirement Monte Carlo with a tax-aware withdrawal-order and Roth-conversion recommendation.

- Trust score: 77/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-07

## Components

- remote · `mcp.quantcalc.app`: 77/100 (this document), [markdown](https://verifymcp.io/servers/app-quantcalc-retirement-engine/mcp.md), [page](https://verifymcp.io/servers/app-quantcalc-retirement-engine/mcp)

## Channel facts

- Endpoint: `https://mcp.quantcalc.app`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-07.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 62/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 1780 tokens (~356/item across 5 items; 5 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 73/100
  - Stability observed for 22 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 5 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 5 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 60/100
  - Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28.

## Install

### How do I install the QuantCalc Retirement Engine MCP server?

QuantCalc Retirement Engine is a hosted endpoint at https://mcp.quantcalc.app/, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http app-quantcalc-retirement-engine 'https://mcp.quantcalc.app/'
```

### Cursor

```json
{
  "mcpServers": {
    "app-quantcalc-retirement-engine": {
      "url": "https://mcp.quantcalc.app/"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "app-quantcalc-retirement-engine": {
      "type": "http",
      "url": "https://mcp.quantcalc.app/"
    }
  }
}
```

### Codex

```toml
[mcp_servers.app-quantcalc-retirement-engine]
url = "https://mcp.quantcalc.app/"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "app-quantcalc-retirement-engine": {
      "type": "remote",
      "url": "https://mcp.quantcalc.app/",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add app-quantcalc-retirement-engine --url 'https://mcp.quantcalc.app/' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  app-quantcalc-retirement-engine:
    url: "https://mcp.quantcalc.app/"
```

### Netclaw

```json
{
  "McpServers": {
    "app-quantcalc-retirement-engine": {
      "Transport": "http",
      "Url": "https://mcp.quantcalc.app/"
    }
  }
}
```

### Vellum

```bash
assistant mcp add app-quantcalc-retirement-engine -t streamable-http -u 'https://mcp.quantcalc.app/'
```

### Other

```json
{
  "mcpServers": {
    "app-quantcalc-retirement-engine": {
      "type": "http",
      "url": "https://mcp.quantcalc.app/"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-05 (score 77, +1)

No change was recorded against any check on this day. Stability & Change Management went from 63 to 67. That category is still filling its 30-day observation window: 19 days of observed history at the previous scan, 20 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-03 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 57 to 60. That category is still filling its 30-day observation window: 17 days of observed history at the previous scan, 18 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-10-01 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 50 to 53. That category is still filling its 30-day observation window: 15 days of observed history at the previous scan, 16 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-29 (score 74, +1)

- [functional regression] Schema quality: 321 → 356
- [cosmetic] “run_tax_aware_projection” added an optional parameter “birth_month”
- [cosmetic] “run_tax_aware_projection” added an optional parameter “birth_year”
- [cosmetic] “run_tax_aware_projection” reworded the description of “medicare_start_age”

### 2026-09-28 (score 73, +7)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-26 (score 66, +1)

No change was recorded against any check on this day. Stability & Change Management went from 33 to 37. That category is still filling its 30-day observation window: 10 days of observed history at the previous scan, 11 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-09-25 (score 65, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-09-24 (score 65, +1)

No change was recorded against any check on this day. Stability & Change Management went from 27 to 30. That category is still filling its 30-day observation window: 8 days of observed history at the previous scan, 9 at this one. The score rises as the window fills, whether or not the server changes.

## MCP tools (5)

### `run_retirement_projection` (~374 tokens)

Run a retirement projection

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. Income tax is not modelled by this tool; run_tax_aware_projection models it.

Input parameters:

- `allocations` (array): Percentages summing to 100: [US stocks, international stocks, bonds, real estate, cash]. Default [60,10,25,5,0].
- `annual_spending` (number, required): Planned yearly spending in today's dollars, before income tax (this tool runs the standard engine, which does not model tax).
- `current_age` (integer, required): Current age of the primary person.
- `current_savings` (number, required): Total invested portfolio today, in dollars.
- `inflation_rate` (number): Annual inflation as a percent, e.g. 2.5. Default 2.5.
- `life_expectancy` (integer): Age the plan must last until. Default 92.
- `monthly_contribution` (number): Monthly savings until retirement. Default 0.
- `pension` (number): Yearly pension income. Default 0.
- `pension_start_age` (integer): Age the pension starts. Default 65.
- `retirement_age` (integer): Age work income stops. Defaults to current age.
- `returns_source` (string): Which published return set to use (see list_return_assumption_sources). Default jpmorgan.
- `social_security` (number): Yearly Social Security in today's dollars. Default 0 — and 0 is reported as an explicit assumption, not hidden.
- `ss_start_age` (integer): Age Social Security starts. Default 67.

### `run_tax_aware_projection` (~981 tokens)

Tax-aware projection with the recommended withdrawal order

Runs the retirement projection with the household's accounts split by tax type and returns the withdrawal order and Roth-conversion programme the engine selected, its present-value advantage and range against drawing traditional first, and the after-tax success rate. Federal and state income tax (50 states and DC), Social Security taxability, required minimum distributions, Medicare IRMAA surcharges and the early-withdrawal penalty are paid from the portfolio year by year; spending is what the household keeps after tax. The result states every assumption it used, including the defaults for inputs that were not given, and what the engine does not model.

Input parameters:

- `allocations` (array): Percentages summing to 100: [US stocks, international stocks, bonds, real estate, cash]. Default [60,10,25,5,0].
- `annual_qcd` (number): Yearly qualified charitable distribution from the traditional account, in today's dollars, counted against required minimum distributions. Default 0.
- `annual_spending` (number, required): Planned yearly spending in today's dollars, after tax: what the household keeps. The engine withdraws enough each year to fund this plus that year's federal, state, Medicare-surcharge and penalty tax.
- `birth_month` (integer): Month of birth, 1-12, optional. Times the half-year rules: the early-withdrawal penalty ends at 59 and a half, charitable distributions start at 70 and a half, Medicare starts in the birthday month.…
- `birth_year` (integer): Year of birth, optional. Must match current_age: 2026 minus current_age, or 2025 minus current_age when this year's birthday is still to come (then every tax rule uses the age reached in each calenda…
- `cost_basis_ratio` (number): Percentage of the taxable account that is cost basis, 0-100. Default 40, and the result says so when it is assumed.
- `current_age` (integer, required): Current age of the primary person.
- `filing_status` (string, required): Federal filing status: single, married filing jointly (mfj), married filing separately (mfs) or head of household (hoh).
- `inflation_rate` (number): Annual inflation as a percent, e.g. 2.5. Default 2.5.
- `life_expectancy` (integer): Age the plan must last until. Default 92.
- `medicare_start_age` (integer): Age Medicare (and its IRMAA income surcharges) begins. Default 65. The year it begins is charged only for the months from the birthday month.
- `monthly_contribution` (number): Monthly savings until retirement. Default 0.
- `pension` (number): Yearly pension income. Default 0.
- `pension_start_age` (integer): Age the pension starts. Default 65.
- `retirement_age` (integer): Age work income stops. Defaults to current age.
- `returns_source` (string): Which published return set to use (see list_return_assumption_sources). Default jpmorgan.
- `roth_balance` (number, required): Roth IRA and Roth 401(k) balance today, in dollars. 0 if none.
- `roth_conversion` (object): The household's own Roth-conversion plan: a fixed amount per year between two ages. When given, the engine applies it on every path and searches withdrawal orders around it instead of searching its o…
- `social_security` (number): Yearly Social Security in today's dollars. Default 0 — and 0 is reported as an explicit assumption, not hidden.
- `spouse_age` (integer): Spouse's current age, for married filing jointly: sets the second aged deduction and Medicare surcharge. Default: the same as current_age, stated in the result.
- `ss_start_age` (integer): Age Social Security starts. Default 67.
- `state` (string): Two-letter state of residence (or DC) for state income tax with that state's retirement-income rules. When absent the result states that no state tax was modelled.
- `tax_exempt_interest` (number): Yearly municipal-bond interest, which counts toward Social Security taxability and IRMAA income but is not itself taxed. Default 0.
- `taxable_balance` (number, required): Taxable brokerage and savings today, in dollars. 0 if none. The three balances together are the portfolio.
- `traditional_balance` (number, required): Pre-tax retirement accounts today (traditional IRA, 401(k), 403(b)), in dollars. 0 if none.

### `compare_return_assumptions` (~349 tokens)

Compare published return assumptions

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.

Input parameters:

- `allocations` (array): Percentages summing to 100: [US stocks, international stocks, bonds, real estate, cash]. Default [60,10,25,5,0].
- `annual_spending` (number, required): Planned yearly spending in today's dollars, before income tax (this tool runs the standard engine, which does not model tax).
- `current_age` (integer, required): Current age of the primary person.
- `current_savings` (number, required): Total invested portfolio today, in dollars.
- `inflation_rate` (number): Annual inflation as a percent, e.g. 2.5. Default 2.5.
- `life_expectancy` (integer): Age the plan must last until. Default 92.
- `monthly_contribution` (number): Monthly savings until retirement. Default 0.
- `pension` (number): Yearly pension income. Default 0.
- `pension_start_age` (integer): Age the pension starts. Default 65.
- `retirement_age` (integer): Age work income stops. Defaults to current age.
- `returns_source` (string): Which published return set to use (see list_return_assumption_sources). Default jpmorgan.
- `social_security` (number): Yearly Social Security in today's dollars. Default 0 — and 0 is reported as an explicit assumption, not hidden.
- `sources` (array): Source ids to compare. Defaults to all.
- `ss_start_age` (integer): Age Social Security starts. Default 67.

### `list_return_assumption_sources` (~36 tokens)

List available return assumption sets

Returns the published capital market assumption sets the engine carries and which components each publisher provides (returns, volatilities, correlations).

### `explain_methodology` (~40 tokens)

What the engine models, and what it does not

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.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/app-quantcalc-retirement-engine/mcp#diagnostics

## Score history

- 2026-10-07: 77
- 2026-10-05: 77
- 2026-10-04: 76
- 2026-10-03: 76
- 2026-10-02: 75
- 2026-10-01: 75
- 2026-09-30: 74
- 2026-09-29: 74
- 2026-09-28: 73
- 2026-09-27: 66
- 2026-09-26: 66
- 2026-09-25: 65
- 2026-09-24: 65
- 2026-09-23: 64
- 2026-09-22: 65
- 2026-09-21: 65
- 2026-09-20: 64
- 2026-09-19: 64
- 2026-09-18: 63
- 2026-09-17: 63
- 2026-09-16: 62
- 2026-09-15: 62

## Common questions

### What is the QuantCalc Retirement Engine MCP server?

QuantCalc Retirement Engine is an MCP server listed in the public MCP registry as app.quantcalc/retirement-engine. Retirement Monte Carlo with a tax-aware withdrawal-order and Roth-conversion recommendation. This page covers its hosted endpoint (https://mcp.quantcalc.app).

### Is the QuantCalc Retirement Engine MCP server safe to use?

QuantCalc Retirement Engine scores 77 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the QuantCalc Retirement Engine MCP server expose?

QuantCalc Retirement Engine exposes 5 tools: run_retirement_projection, run_tax_aware_projection, compare_return_assumptions, list_return_assumption_sources, explain_methodology. Their descriptions and schemas cost roughly 1,780 tokens of context every time the server is loaded.

### Does the QuantCalc Retirement Engine MCP server require authentication?

No. We connected to QuantCalc Retirement Engine without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the QuantCalc Retirement Engine MCP server still maintained?

QuantCalc Retirement Engine is still listed as active in the MCP registry. We last reached this channel on 7 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://mcp.quantcalc.app/
- Repository: https://github.com/quantcalc-app/quantcalc-mcp-plugin
- Website: https://quantcalc.app/advisors/mcp/
- Changelog RSS feed: https://verifymcp.io/servers/app-quantcalc-retirement-engine/mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/app-quantcalc-retirement-engine/mcp.json
- HTML version of this page: https://verifymcp.io/servers/app-quantcalc-retirement-engine/mcp
