Glacier Planner MCP
A Canadian retirement-planning engine accessible via MCP that projects household savings, CPP/QPP, OAS, pensions, taxes, withdrawals, and estate details year by year using federal and provincial rules. It supports both public bounded calculations without sign-in and saved account tools requiring OAuth authentication.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://planner.glacierfinancial.ca/calculate/mcpWhat you can do with it
- Project household savings and government benefits year by year
- Analyze CPP/OAS timing and withdrawal strategies
- Calculate retirement spending limits and tax implications
- Compare different retirement plan scenarios
Source and maintenance
Protocol and capabilities
- Server
- glacier-planner-first-plan 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 1 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
1 advertised
calculate_retirement — Calculate a first Canadian retirement plan
Use the person’s supplied numbers to calculate whether savings cover spending and compare one explicit alternative: retirement age, household spending, or CPP/QPP and OAS start ages. A benefit-age comparison keeps the supplied amount at 65 and residence years fixed. It is not a search for a better start age. Free, no sign-in. Returns annual results, assumptions, provenance and a portable input artifact; no saved-record lookup or mutation.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"input"
],
"properties": {
"input": {
"type": "object",
"required": [
"province",
"people",
"annualSpending",
"assumptionsAccepted"
],
"properties": {
"name": {
"type": "string",
"default": "My retirement plan",
"maxLength": 120,
"minLength": 1
},
"people": {
"type": "array",
"items": {
"type": "object",
"required": [
"birthDate",
"retirementAge",
"employmentIncome",
"cppAnnualAt65",
"oasResidenceYears",
"savings"
],
"properties": {
"name": {
"type": "string",
"default": "You",
"maxLength": 60,
"minLength": 1,
"description": "A label is enough; a legal name is unnecessary."
},
"pension": {
"type": "object",
"required": [
"annual",
"startAge"
],
"properties": {
"annual": {
"type": "number",
"maximum": 25000000,
"minimum": 0,
"description": "Annual pension in 2026 CAD; grown by plan inflation to its start age, then by its stated indexing."
},
"indexing": {
"type": "number",
"default": 0,
"maximum": 0.05,
"minimum": 0
},
"startAge": {
"type": "integer",
"maximum": 85,
"minimum": 18
}
},
"additionalProperties": false
},
"savings": {
"type": "object",
"required": [
"rrsp",
"rrif",
"tfsa",
"nonRegistered",
"nonRegisteredCostBasis",
"cash"
],
"properties": {
"cash": {
"type": "number",
"maximum": 25000000,
"minimum": 0
},
"rrif": {
"type": "number",
"maximum": 25000000,
"minimum": 0
},
"rrsp": {
"type": "number",
"maximum": 25000000,
"minimum": 0
},
"tfsa": {
"type": "number",
"maximum": 25000000,
"minimum": 0
},
"nonRegistered": {
"type": "number",
"maximum": 25000000,
"minimum": 0
},
"nonRegisteredCostBasis": {
"type": "number",
"maximum": 25000000,
"minimum": 0
}
},
"additionalProperties": false
},
"rrspRoom": {
"type": "number",
"default": 0,
"maximum": 25000000,
"minimum": 0
},
"tfsaRoom": {
"type": "number",
"default": 0,
"maximum": 25000000,
"minimum": 0
},
"birthDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Exact birth date controls ages and benefit timing."
},
"cppStartAge": {
"type": "integer",
"default": 65,
"maximum": 70,
"minimum": 60
},
"oasStartAge": {
"type": "integer",
"default": 65,
"maximum": 70,
"minimum": 65
},
"cppAnnualAt65": {
"anyOf": [
{
"type": "number",
"maximum": 25000000,
"minimum": 0
},
{
"type": "null"
}
],
"description": "Annual CPP or QPP at 65 in 2026 CAD from statement. Explicit null accepts the labelled 60%-of-maximum starting estimate."
},
"retirementAge": {
"type": "integer",
"maximum": 85,
"minimum": 18
},
"employmentIncome": {
"type": "number",
"maximum": 25000000,
"minimum": 0,
"description": "Gross annual employment income now, CAD; enter 0 if none."
},
"oasResidenceYears": {
"type": "integer",
"maximum": 40,
"minimum": 0,
"description": "Canadian residence years after 18 used for OAS entitlement at its start; 40 means full OAS."
},
"quebecPayrollConfirmed": {
"type": "boolean",
"const": true,
"description": "Required only for positive employment income in Quebec: explicitly confirm this employment is subject to Quebec payroll contributions. Residence alone does not establish the employment jurisdiction. Cross-province employment is outside this first-calculation scope."
}
},
"additionalProperties": false
},
"maxItems": 2,
"minItems": 1
},
"province": {
"enum": [
"AB",
"BC",
"MB",
"NB",
"NL",
"NS",
"NT",
"NU",
"ON",
"PE",
"QC",
"SK",
"YT"
],
"type": "string"
},
"inflation": {
"type": "number",
"default": 0.021,
"maximum": 0.06,
"minimum": 0
},
"startYear": {
"type": "number",
"const": 2026,
"default": 2026
},
"alternative": {
"type": "object",
"properties": {
"name": {
"type": "string",
"default": "What if",
"maxLength": 80,
"minLength": 1
},
"cppStartAges": {
"type": "array",
"items": {
"type": "integer",
"maximum": 70,
"minimum": 60
},
"maxItems": 2,
"minItems": 1,
"description": "One explicit CPP or QPP start age per person. The amount at 65 stays as supplied. Quebec below 65 is rejected. Not a search for a better age."
},
"oasStartAges": {
"type": "array",
"items": {
"type": "integer",
"maximum": 70,
"minimum": 65
},
"maxItems": 2,
"minItems": 1,
"description": "One explicit OAS start age per person. Residence years stay as supplied. Not a search for a better age."
},
"annualSpending": {
"type": "number",
"maximum": 25000000,
"exclusiveMinimum": 0
},
"retirementAges": {
"type": "array",
"items": {
"type": "integer",
"maximum": 85,
"minimum": 18
},
"maxItems": 2,
"minItems": 1
}
},
"additionalProperties": false
},
"annualSpending": {
"type": "number",
"maximum": 25000000,
"description": "Annual household spending after tax in 2026 CAD, excluding contributions.",
"exclusiveMinimum": 0
},
"investmentReturn": {
"type": "number",
"default": 0.05,
"maximum": 0.1,
"minimum": -0.02
},
"assumptionsAccepted": {
"type": "boolean",
"const": true,
"description": "Confirm the stated basic scope, return/inflation assumptions and any explicit CPP estimate with the person before calculating."
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 961 ms
- 95th percentile latency
- 961 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 961 ms · metadata changed · 1 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http glacier-planner-mcp https://planner.glacierfinancial.ca/calculate/mcpCodex
codex mcp add glacier-planner-mcp --url https://planner.glacierfinancial.ca/calculate/mcpCursor
{
"mcpServers": {
"glacier-planner-mcp": {
"url": "https://planner.glacierfinancial.ca/calculate/mcp"
}
}
}Cline
{
"mcpServers": {
"glacier-planner-mcp": {
"type": "streamableHttp",
"url": "https://planner.glacierfinancial.ca/calculate/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"glacier-planner-mcp": {
"type": "http",
"url": "https://planner.glacierfinancial.ca/calculate/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http glacier-planner-mcp https://planner.glacierfinancial.ca/calculate/mcpClaude Desktop
{
"mcpServers": {
"glacier-planner-mcp": {
"url": "https://planner.glacierfinancial.ca/calculate/mcp"
}
}
}Windsurf
{
"mcpServers": {
"glacier-planner-mcp": {
"serverUrl": "https://planner.glacierfinancial.ca/calculate/mcp"
}
}
}Let your agent find its tools
Find servers like Glacier Planner MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.