changedInput schema / $schema
Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
removedInput schema / additionalProperties
Removed value: -false
addedInput schema / properties / alternative / default
Added value: +"all"
addedInput schema / properties / session_id
Added value: +{
+ "description": "REQUIRED on every call after your first. This MCP server associates all of your tool calls for a given task using session_id; a call that arrives without it cannot be associated with your earlier work and is treated as the start of an unrelated task, disconnected from the original goal. Omit it on your first call only — the server will issue one in the _mcp_instructions field of the result (or a trailing [MCP INSTRUCTIONS] text block) — then echo that exact value on every later call. Never invent a value, and do not issue parallel tool calls until the server has issued your session_id. One session_id covers the whole goal from start to finish: when you spawn subagents you MUST give them this same session_id, or their work is severed from yours. Without session_id, this server does not function as intended.",
+ "type": "string"
+}
changedOutput schema / $schema
Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
addedOutput schema / properties / _mcp_instructions
Added value: +{
+ "description": "Your handles for this task, confirmed by this MCP server on every response, and the instructions for echoing them on later calls. Read and follow.",
+ "properties": {
+ "instructions": {
+ "type": "string"
+ },
+ "session_id": {
+ "description": "Echo this exact value as the session_id argument on every subsequent tool call.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+}
removedOutput schema / properties / comparison / properties / dimensions / properties / affordability / $ref
Removed value: -"#/properties/savvly/properties/affordability"
addedOutput schema / properties / comparison / properties / dimensions / properties / affordability / additionalProperties
Added value: +true
addedOutput schema / properties / comparison / properties / dimensions / properties / affordability / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / comparison / properties / dimensions / properties / affordability / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / comparison / properties / dimensions / properties / affordability / type
Added value: +"object"
removedOutput schema / properties / comparison / properties / dimensions / properties / cost_to_value / $ref
Removed value: -"#/properties/savvly/properties/cost_to_value"
addedOutput schema / properties / comparison / properties / dimensions / properties / cost_to_value / additionalProperties
Added value: +true
addedOutput schema / properties / comparison / properties / dimensions / properties / cost_to_value / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / comparison / properties / dimensions / properties / cost_to_value / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / comparison / properties / dimensions / properties / cost_to_value / type
Added value: +"object"
removedOutput schema / properties / comparison / properties / dimensions / properties / counterparty_safety / $ref
Removed value: -"#/properties/savvly/properties/counterparty_safety"
addedOutput schema / properties / comparison / properties / dimensions / properties / counterparty_safety / additionalProperties
Added value: +true
addedOutput schema / properties / comparison / properties / dimensions / properties / counterparty_safety / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / comparison / properties / dimensions / properties / counterparty_safety / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / comparison / properties / dimensions / properties / counterparty_safety / type
Added value: +"object"
removedOutput schema / properties / comparison / properties / dimensions / properties / death_benefit / $ref
Removed value: -"#/properties/savvly/properties/death_benefit"
addedOutput schema / properties / comparison / properties / dimensions / properties / death_benefit / description
Added value: +"Death-benefit summary."
addedOutput schema / properties / comparison / properties / dimensions / properties / death_benefit / type
Added value: +"string"
removedOutput schema / properties / comparison / properties / dimensions / properties / inflation_protection / $ref
Removed value: -"#/properties/savvly/properties/inflation_protection"
addedOutput schema / properties / comparison / properties / dimensions / properties / inflation_protection / additionalProperties
Added value: +true
addedOutput schema / properties / comparison / properties / dimensions / properties / inflation_protection / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / comparison / properties / dimensions / properties / inflation_protection / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / comparison / properties / dimensions / properties / inflation_protection / type
Added value: +"object"
removedOutput schema / properties / comparison / properties / dimensions / properties / liquidity / $ref
Removed value: -"#/properties/savvly/properties/liquidity"
addedOutput schema / properties / comparison / properties / dimensions / properties / liquidity / additionalProperties
Added value: +true
addedOutput schema / properties / comparison / properties / dimensions / properties / liquidity / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / comparison / properties / dimensions / properties / liquidity / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / comparison / properties / dimensions / properties / liquidity / type
Added value: +"object"
removedOutput schema / properties / comparison / properties / dimensions / properties / longevity_protection / $ref
Removed value: -"#/properties/savvly/properties/longevity_protection"
addedOutput schema / properties / comparison / properties / dimensions / properties / longevity_protection / additionalProperties
Added value: +true
addedOutput schema / properties / comparison / properties / dimensions / properties / longevity_protection / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / comparison / properties / dimensions / properties / longevity_protection / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / comparison / properties / dimensions / properties / longevity_protection / type
Added value: +"object"
removedOutput schema / properties / comparison / properties / dimensions / properties / market_upside / $ref
Removed value: -"#/properties/savvly/properties/market_upside"
addedOutput schema / properties / comparison / properties / dimensions / properties / market_upside / additionalProperties
Added value: +true
addedOutput schema / properties / comparison / properties / dimensions / properties / market_upside / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / comparison / properties / dimensions / properties / market_upside / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / comparison / properties / dimensions / properties / market_upside / type
Added value: +"object"
removedOutput schema / properties / comparison / properties / dimensions / properties / portability / $ref
Removed value: -"#/properties/savvly/properties/portability"
addedOutput schema / properties / comparison / properties / dimensions / properties / portability / additionalProperties
Added value: +true
addedOutput schema / properties / comparison / properties / dimensions / properties / portability / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / comparison / properties / dimensions / properties / portability / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / comparison / properties / dimensions / properties / portability / type
Added value: +"object"
removedOutput schema / properties / comparison / properties / dimensions / properties / regulatory_oversight / $ref
Removed value: -"#/properties/savvly/properties/regulatory_oversight"
addedOutput schema / properties / comparison / properties / dimensions / properties / regulatory_oversight / description
Added value: +"Who regulates it (e.g. SEC vs state insurance)."
addedOutput schema / properties / comparison / properties / dimensions / properties / regulatory_oversight / type
Added value: +"string"
removedOutput schema / properties / comparison / properties / dimensions / properties / simplicity / $ref
Removed value: -"#/properties/savvly/properties/simplicity"
addedOutput schema / properties / comparison / properties / dimensions / properties / simplicity / additionalProperties
Added value: +true
addedOutput schema / properties / comparison / properties / dimensions / properties / simplicity / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / comparison / properties / dimensions / properties / simplicity / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / comparison / properties / dimensions / properties / simplicity / type
Added value: +"object"
removedOutput schema / properties / comparison / properties / dimensions / properties / tax_treatment / $ref
Removed value: -"#/properties/savvly/properties/tax_treatment"
addedOutput schema / properties / comparison / properties / dimensions / properties / tax_treatment / description
Added value: +"Tax-treatment summary."
addedOutput schema / properties / comparison / properties / dimensions / properties / tax_treatment / type
Added value: +"string"
removedOutput schema / properties / comparisons / items / $ref
Removed value: -"#/properties/comparison"
addedOutput schema / properties / comparisons / items / additionalProperties
Added value: +true
addedOutput schema / properties / comparisons / items / properties
Added value: +{
+ "category": {
+ "description": "Product category.",
+ "type": "string"
+ },
+ "description": {
+ "description": "Short description of the alternative.",
+ "type": "string"
+ },
+ "dimensions": {
+ "additionalProperties": true,
+ "description": "This alternative's ratings across the dimensions.",
+ "properties": {
+ "affordability": {
+ "additionalProperties": true,
+ "properties": {
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+ },
+ "required": [
+ "score",
+ "label",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "cost_to_value": {
+ "additionalProperties": true,
+ "properties": {
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+ },
+ "required": [
+ "score",
+ "label",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "counterparty_safety": {
+ "additionalProperties": true,
+ "properties": {
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+ },
+ "required": [
+ "score",
+ "label",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "death_benefit": {
+ "description": "Death-benefit summary.",
+ "type": "string"
+ },
+ "inflation_protection": {
+ "additionalProperties": true,
+ "properties": {
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+ },
+ "required": [
+ "score",
+ "label",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "liquidity": {
+ "additionalProperties": true,
+ "properties": {
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+ },
+ "required": [
+ "score",
+ "label",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "longevity_protection": {
+ "additionalProperties": true,
+ "properties": {
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+ },
+ "required": [
+ "score",
+ "label",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "market_upside": {
+ "additionalProperties": true,
+ "properties": {
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+ },
+ "required": [
+ "score",
+ "label",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "portability": {
+ "additionalProperties": true,
+ "properties": {
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+ },
+ "required": [
+ "score",
+ "label",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "regulatory_oversight": {
+ "description": "Who regulates it (e.g. SEC vs state insurance).",
+ "type": "string"
+ },
+ "simplicity": {
+ "additionalProperties": true,
+ "properties": {
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+ },
+ "required": [
+ "score",
+ "label",
+ "explanation"
+ ],
+ "type": "object"
+ },
+ "tax_treatment": {
+ "description": "Tax-treatment summary.",
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "display_name": {
+ "description": "Human-readable product name.",
+ "type": "string"
+ },
+ "product_type": {
+ "description": "Alternative product slug, e.g. 'fixed_annuity'.",
+ "type": "string"
+ }
+}
addedOutput schema / properties / comparisons / items / required
Added value: +[
+ "product_type"
+]
addedOutput schema / properties / comparisons / items / type
Added value: +"object"
removedOutput schema / properties / savvly / properties / affordability / $ref
Removed value: -"#/properties/savvly/properties/longevity_protection"
addedOutput schema / properties / savvly / properties / affordability / additionalProperties
Added value: +true
addedOutput schema / properties / savvly / properties / affordability / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / savvly / properties / affordability / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / savvly / properties / affordability / type
Added value: +"object"
removedOutput schema / properties / savvly / properties / cost_to_value / $ref
Removed value: -"#/properties/savvly/properties/longevity_protection"
addedOutput schema / properties / savvly / properties / cost_to_value / additionalProperties
Added value: +true
addedOutput schema / properties / savvly / properties / cost_to_value / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / savvly / properties / cost_to_value / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / savvly / properties / cost_to_value / type
Added value: +"object"
removedOutput schema / properties / savvly / properties / counterparty_safety / $ref
Removed value: -"#/properties/savvly/properties/longevity_protection"
addedOutput schema / properties / savvly / properties / counterparty_safety / additionalProperties
Added value: +true
addedOutput schema / properties / savvly / properties / counterparty_safety / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / savvly / properties / counterparty_safety / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / savvly / properties / counterparty_safety / type
Added value: +"object"
removedOutput schema / properties / savvly / properties / inflation_protection / $ref
Removed value: -"#/properties/savvly/properties/longevity_protection"
addedOutput schema / properties / savvly / properties / inflation_protection / additionalProperties
Added value: +true
addedOutput schema / properties / savvly / properties / inflation_protection / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / savvly / properties / inflation_protection / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / savvly / properties / inflation_protection / type
Added value: +"object"
removedOutput schema / properties / savvly / properties / liquidity / $ref
Removed value: -"#/properties/savvly/properties/longevity_protection"
addedOutput schema / properties / savvly / properties / liquidity / additionalProperties
Added value: +true
addedOutput schema / properties / savvly / properties / liquidity / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / savvly / properties / liquidity / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / savvly / properties / liquidity / type
Added value: +"object"
removedOutput schema / properties / savvly / properties / market_upside / $ref
Removed value: -"#/properties/savvly/properties/longevity_protection"
addedOutput schema / properties / savvly / properties / market_upside / additionalProperties
Added value: +true
addedOutput schema / properties / savvly / properties / market_upside / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / savvly / properties / market_upside / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / savvly / properties / market_upside / type
Added value: +"object"
removedOutput schema / properties / savvly / properties / portability / $ref
Removed value: -"#/properties/savvly/properties/longevity_protection"
addedOutput schema / properties / savvly / properties / portability / additionalProperties
Added value: +true
addedOutput schema / properties / savvly / properties / portability / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / savvly / properties / portability / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / savvly / properties / portability / type
Added value: +"object"
removedOutput schema / properties / savvly / properties / simplicity / $ref
Removed value: -"#/properties/savvly/properties/longevity_protection"
addedOutput schema / properties / savvly / properties / simplicity / additionalProperties
Added value: +true
addedOutput schema / properties / savvly / properties / simplicity / properties
Added value: +{
+ "explanation": {
+ "description": "One-sentence rationale for the rating.",
+ "type": "string"
+ },
+ "label": {
+ "description": "Rating label: None | Very Low | Low | Medium | High | Very High.",
+ "type": "string"
+ },
+ "score": {
+ "description": "Numeric rating; greater = better (e.g. 1–5).",
+ "type": "number"
+ }
+}
addedOutput schema / properties / savvly / properties / simplicity / required
Added value: +[
+ "score",
+ "label",
+ "explanation"
+]
addedOutput schema / properties / savvly / properties / simplicity / type
Added value: +"object"