Retirement Wealth Data
Server Details
Selected figures in Australian retirement rules, each checked against its official source.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool has a distinct role: search_figures finds ids, get_figure retrieves details, list_categories shows coverage, and list_changes reports updates. The search/get pair is intentionally coupled and clearly sequenced, though an agent might still occasionally confuse when to use search versus get.
All names follow a consistent snake_case verb_noun pattern: get_figure, list_categories, list_changes, search_figures. The conventions are predictable and easy to parse.
Four tools is well-scoped for a read-only retirement data lookup service. Each tool earns its place: discovery, retrieval, category overview, and change tracking.
The surface covers discovery, retrieval, category browsing, and change history for the domain. Minor gaps exist, such as no bulk export or direct comparison tool, but core read workflows are covered.
Available Tools
4 toolsget_figureGet a figureARead-onlyIdempotentInspect
Gets one Australian retirement figure by an id from search_figures. Returns the value recorded for a date (as_at, or today in Sydney), the date it applies from and what that date means, conditions, exceptions, the official source by name, the date last checked and a citation of the figure's Retirement Wealth page. Values set by law but not yet in force are listed under upcoming. No value is returned for a date before the earliest recorded value, after today, or from the start of a value set by law not yet confirmed in force.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The figure id, such as concessional_cap. search_figures returns ids. | |
| as_at | No | A date, as YYYY-MM-DD. Leave it out for today's date in Sydney. | |
| include_history | No | Also return the earlier recorded values, newest first. Default false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | Yes | |
| kind | Yes | |
| note | Yes | |
| page | Yes | The figure's Retirement Wealth page: its value, conditions, change history and a link to its official source. |
| unit | Yes | |
| as_at | Yes | The date the value was looked up for. |
| label | Yes | |
| notes | Yes | |
| ratio | Yes | For rates, the same value as a plain ratio: 3.75 per cent is 0.0375. Otherwise null. |
| scope | Yes | What this site does and does not provide. |
| today | Yes | Today's date in Sydney when the request was answered. |
| value | Yes | |
| resets | Yes | |
| source | Yes | The official source, by publisher and title. Its address is on the figure's Retirement Wealth page. |
| status | Yes | in_force: the registry's current value. superseded: an earlier value. |
| caveats | Yes | |
| cite_as | Yes | A citation line: the value, its date, the official source by name, the date it was last checked and the figure's Retirement Wealth page. |
| concept | Yes | |
| history | No | Recorded values, newest first. |
| category | Yes | |
| citation | Yes | The figure's Retirement Wealth page, as an address and a title. |
| recorded | Yes | True when a value is recorded for as_at. False when it is not: the value fields are then null and note says why. |
| upcoming | Yes | Values set by law that are not the current value here: for a later date, or not yet confirmed in force. |
| data_hash | Yes | |
| former_id | Yes | Set when the id asked for is an earlier id of this figure. |
| applies_by | Yes | |
| conditions | Yes | |
| derivation | Yes | The calculation that links this figure to the figures it is worked out from, or null. |
| dimensions | Yes | |
| exceptions | Yes | Exceptions. One marked modelled: false is not built into any calculation on this site. |
| review_due | Yes | due: true when the figure's first scheduled review day after it was last checked (from) is on or before as_at, today in Sydney: the figure has not been checked against its source since that review. note says so in words when due is true. from is null for a figure with no fixed review days. |
| value_notes | Yes | |
| data_release | Yes | The number of the data release these values come from. |
| effective_to | Yes | The last day the value applies: the day before the next recorded value starts. Null when no later value is recorded, or when the end is not recorded. |
| history_note | No | |
| review_dates | Yes | |
| verification | Yes | How the value was verified and the date it was last checked against its source. |
| display_value | Yes | |
| history_total | No | |
| category_label | Yes | |
| effective_from | Yes | The date the value applies from. effective_from_basis says what the date means. |
| earliest_recorded | Yes | The earliest date for which a value of this figure is held. |
| history_truncated | No | True when history was cut short to keep the response small. |
| effective_from_basis | Yes | value: the day this value started. provision: the day the current rule started; the number itself is older. as_at: a day the official source shows the value in force; the day it started is not recorded. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and non-destructive behaviour, so the bar is lower; the description still adds real behavioural detail by naming the three cases that yield no value (before the earliest recorded value, after today, and values set by law but not yet in force, surfaced under 'upcoming'). However, a large part of the text merely enumerates return fields that the output schema already carries.
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 first sentence is well front-loaded, but the rest is one long run-on sentence enumerating returned fields, much of which duplicates the output schema rather than earning its place. Size is defensible for a data-lookup tool but not tight.
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 an output schema present the return-value listing is not strictly needed, and annotations cover safety; the description's genuine contribution is the empty-result semantics and the source/citation context, which completes the picture for a three-parameter lookup tool.
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%: the id example (concessional_cap), the as_at YYYY-MM-DD format with Sydney default, and include_history's default are all documented in the schema. The description adds no syntax or format detail beyond it, so the baseline 3 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 opening sentence states a specific verb and resource ('Gets one Australian retirement figure') and pins the id's origin to the sibling tool search_figures, making it distinguishable from list_categories, list_changes and search_figures at a glance.
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?
It clearly routes the agent to search_figures as the way to obtain a valid id and explains the conditions under which no value comes back, which is effectively a when-not-to-expect-results rule. It does not explicitly contrast itself with list_changes or list_categories, so it falls short of full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_categoriesList categoriesARead-onlyIdempotentInspect
Shows which areas of Australian retirement rules the figures cover: the categories, such as Age Pension, super caps and aged care, with each one's id for search_figures and its number of figures. Also returns the data release, the newest and the oldest date on which a figure was last checked against its source, the scope statement, and links to the documentation and the JSON files.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| links | Yes | |
| scope | Yes | What this site does and does not provide. |
| data_hash | Yes | |
| categories | Yes | |
| data_release | Yes | The number of the data release these values come from. |
| data_updated | Yes | |
| figure_count | Yes | |
| last_verified | Yes | The newest date on which a figure was last checked against its source. |
| oldest_verified | Yes | The oldest such date. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds genuinely new context: that results include the data release, figure freshness dates (newest/oldest last-checked), a scope statement, and documentation/JSON links.
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?
Purpose is front-loaded in the first clause, which is good, but the second sentence enumerates return fields that the output schema already documents, making it longer than it needs to be. The enumeration is readable but partially redundant.
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 tool with an output schema present, the description supplies everything an agent needs: what the list contains, the key id it yields for downstream use, and a sense of the accompanying metadata. Nothing required to invoke it correctly 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 takes zero parameters, so per the baseline there is nothing for the description to disambiguate. It correctly implies a parameterless, whole-catalogue listing with no filtering options to explain.
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?
States a specific verb ("Shows") and resource (categories of Australian retirement rules), and concretely names example categories (Age Pension, super caps, aged care). It also distinguishes itself from the sibling search_figures by explaining that each category carries the id needed for that tool.
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 mention of "its id for search_figures" implies this is a discovery step before searching, but the description never states when to call it versus get_figure, list_changes, or search_figures, nor any ordering or prerequisite. Usage is inferable rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_changesList changesARead-onlyIdempotentInspect
Lists what this site has changed in its published Australian retirement figures since a date, such as new or corrected values, earlier values added and figures added or renamed. Newest first. since filters on recorded_on, the date this site recorded the change, in Sydney. effective_from is the date the changed value applies from, where the change has one. A value can be recorded long after it began to apply.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | The most changes to return. Default 25, maximum 100. | |
| since | Yes | Return changes recorded on or after this date, as YYYY-MM-DD. This is the date the change was recorded, not the date a value applies from. | |
| types | No | Only these kinds of change. | |
| figure_id | No | Only changes to this figure. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| count | Yes | |
| scope | Yes | What this site does and does not provide. |
| since | Yes | |
| total | Yes | How many items matched. |
| types | Yes | |
| events | Yes | |
| changes | Yes | |
| data_hash | Yes | |
| figure_id | Yes | |
| truncated | Yes | True when there are more items than this result holds. |
| data_release | Yes | The number of the data release these values come from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With readOnlyHint, idempotentHint, and destructiveHint already declaring the safety profile, the description still adds behavioral value: 'Newest first' ordering, the definition of 'since' as the recorded date in Sydney, and the caveat that a value can be recorded long after it began to apply. It does not mention pagination beyond the limit param, but the added ordering and time-semantics context go meaningfully beyond the 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?
The core purpose and ordering are front-loaded in the first two sentences, with the date semantics following. Most sentences earn their place, though the effective_from/applies-from discussion drifts into return-value territory and is slightly redundant for selecting and invoking the tool.
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?
An output schema exists, so return values need not be documented; the description nonetheless explains effective_from, which overlaps with the output contract. For a read-only list tool with a well-documented schema and annotations, the definition is essentially complete for correct invocation, with only minor redundancy.
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 baseline is 3, but the description adds real meaning the schema lacks: 'since' is clarified as the recorded date in Sydney (timezone absent from the schema), and the recorded_on vs applies-from distinction disambiguates the filter. The mention of effective_from is an output field rather than a parameter, which is a slight mismatch but it aids interpretation.
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 states a specific verb and resource ('lists what this site has changed in its published Australian retirement figures') with an explicit scope ('since a date') and enumerates the change kinds returned. This clearly separates it from siblings like get_figure and search_figures, which fetch current values rather than a change log.
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?
Usage is implied by the change-log framing and the 'since a date' constraint, but there is no explicit when-to-use vs when-to-use-alternatives guidance, no exclusions, and no routing to siblings. Minimum viable rather than helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_figuresSearch figuresARead-onlyIdempotentInspect
Start here, before get_figure, to find selected figures in Australian retirement rules: rates, amounts, caps, thresholds, ages, periods and dates for the Age Pension and its means tests, superannuation and the Division 293 and 296 taxes, deeming, the Commonwealth Seniors Health Card, aged care and the Home Equity Access Scheme. Searches by keyword, category or both, and returns each match's id and current value. Each current value has an official source, the date it applies from and the date it was last checked; get_figure returns them.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | The most results to return. Default 10, maximum 50. | |
| query | No | Words to look for, such as "concessional cap" or "deeming rate". Up to 100 characters. | |
| category | No | A category id from list_categories, such as aged_care. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | Yes | |
| count | Yes | |
| query | Yes | |
| scope | Yes | What this site does and does not provide. |
| total | Yes | How many items matched. |
| results | Yes | |
| category | Yes | |
| data_hash | Yes | |
| truncated | Yes | True when there are more items than this result holds. |
| data_release | Yes | The number of the data release these values come from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds genuine value beyond that: it states the return shape (each match's id and current value) and that values carry an official source, an applies-from date and a last-checked date. It stops short of describing result ordering or empty-result behavior.
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?
Front-loaded with the imperative "Start here, before get_figure," which is exactly the decision the agent needs to make first. The long enumeration of covered topics is dense but earns its place by defining scope; the trailing provenance sentence could be tightened slightly.
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 an output schema present, the description needn't explain return structure in full, yet it still summarizes what a match contains and where to get full details. Between annotations, full schema coverage and sibling routing, an agent has everything needed to call this correctly.
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 all three parameters including the category enum are already documented. The description adds only the combinatorial note that keyword and category can be used together or separately, which is mildly useful but not syntax or format detail beyond the schema. Baseline 3 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?
Names a specific verb and resource (search figures) and precisely scopes the domain: retirement-rule figures such as rates, caps, thresholds and ages across Age Pension, super, deeming, CSHC, aged care and HEAS. It also explicitly distinguishes itself from get_figure, which the agent can act on without opening either schema.
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?
Opens with an explicit ordering directive — "Start here, before get_figure" — and explains the division of labour: this tool finds matches and returns id plus current value, while get_figure returns the detail. It also routes the agent to list_categories for valid category ids, covering the alternatives named in the sibling list.
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
- Changed
get_figure12 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / applies_by / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "selector": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "selector", - "text" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "selector": { + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "selector", + "text" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / caveats / items / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / citation / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / conditions / items / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / exceptions / items / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / history / items / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / review_due / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / source / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "publisher": { - "type": "string" - }, - "title": { - "type": "string" - }, - "type": { - "type": "string" - } - }, - "required": [ - "title", - "publisher", - "type" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "publisher": { + "type": "string" + }, + "title": { + "type": "string" + }, + "type": { + "type": "string" + } + }, + "required": [ + "title", + "publisher", + "type" + ], + "type": "object" + }, + { + "type": "null" + } +] - changed
Output schema / properties / unit / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / upcoming / items / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / verification / anyOfPrevious value: -[ - { - "additionalProperties": false, - "properties": { - "checked_on": { - "type": "string" - }, - "status": { - "type": "string" - } - }, - "required": [ - "status", - "checked_on" - ], - "type": "object" - }, - { - "type": "null" - } -]New value: +[ + { + "additionalProperties": {}, + "properties": { + "checked_on": { + "type": "string" + }, + "status": { + "type": "string" + } + }, + "required": [ + "status", + "checked_on" + ], + "type": "object" + }, + { + "type": "null" + } +]
- Changed
list_categories2 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / categories / items / additionalPropertiesPrevious value: -falseNew value: +{}
- Changed
list_changes2 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / events / items / additionalPropertiesPrevious value: -falseNew value: +{}
- Changed
search_figures2 fields changed- changed
Output schema / additionalPropertiesPrevious value: -falseNew value: +{} - changed
Output schema / properties / results / items / additionalPropertiesPrevious value: -falseNew value: +{}
4 tool updates
- First observed
get_figure - First observed
list_categories - First observed
list_changes - First observed
search_figures
Related MCP Connectors
Cited Australian tax answers from 34,500+ ATO documents, legislation and public rulings.
Current UK tax-year rates and thresholds, verified against gov.uk with source URLs and dates.
Official thresholds, rates and fees by key, with source, verified date and signature.
Australian economic data from the ABS, RBA, and APRA: CPI, GDP, cash rate, labour, and more.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables users to look up and search Australian SMSF rules — contribution caps, total super balance and Division 296 thresholds, pension minimums and lodgment deadlines — and to compute contribution headroom, every answer carrying an ato.gov.au or legislation.gov.au citation. It is read-only and deterministic, with no model calls or network access at call time.6MIT
- FlicenseNot gradedqualityBmaintenanceQuery current and historical UK official figures (tax bands, minimum wage, benefits, energy price cap and 100+ more) with effective dates and links to official government sources. Data refreshed whenever the official sources change.-

WealthSchemaofficial
AlicenseAqualityCmaintenanceCited 2026 and 2027 U.S. financial-planning figures (IRS, SSA, CMS), synthetic household samples, and an AI financial-advice benchmark.8MIT- AlicenseNot gradedqualityBmaintenanceSourced, dated calculations for French income tax and pensions across 32 retirement schemes — every result carries its confidence level, its legal sources and the fiscal year, and returns non_calculable rather than a guess. Hosted remote MCP + REST, paid per call via x402 (USDC on Base); two discovery tools are free.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.