- name
- Pragmatic Mortgage public agent tools
- version
- 2.7.1
- privacy
- Public and non-confidential only. No PII, documents, account data, or authenticated client-file data.
- web Mcp Draft
- https://webmachinelearning.github.io/webmcp/
- mcp Endpoint
- https://pragmatic.mortgage/api/public/mcp
- mcp Server Card
- https://pragmatic.mortgage/api/public/mcp/server-card
- execute Endpoint
- https://pragmatic.mortgage/api/public/agent-tools
- connection Guide
- https://pragmatic.mortgage/ai-agents
- browsing
- calculator Schemas
- slug
- payment
- title
- Payment Estimator
- slug
- amortization
- title
- Amortization
- slug
- amortization-compare
- title
- Amortization Compare
- slug
- prepayment-impact
- title
- Prepayment Impact
- slug
- affordability
- title
- Affordability (Max Purchase)
- slug
- qualification
- title
- Mortgage Qualification
- slug
- debt-service
- title
- Debt Service (GDS/TDS)
- slug
- insurer-premium
- title
- Insurer Premium
- slug
- closing-costs
- title
- Closing Costs
- slug
- ptt-canada
- title
- Property Transfer Duties (Canada)
- slug
- ptt-bc
- title
- BC Property Transfer Tax
- slug
- refinance-analyzer
- title
- Refinance Analyzer
- slug
- refi-breakeven
- title
- Refi Breakeven
- slug
- stress-test
- title
- Stress Test Qualifier
- slug
- minimum-down-payment
- title
- Minimum Down Payment
- slug
- cash-to-close
- title
- Cash Needed to Close
- slug
- renewal-compare
- title
- Renewal Compare
- slug
- penalty-estimator
- title
- IRD Penalty Calculator
- slug
- rental-qualifier
- title
- Rental Income Qualifier
- slug
- dscr
- title
- DSCR / NOI
- slug
- heloc
- title
- HELOC Payment & Interest
- slug
- smith
- title
- Smith Manoeuvre
- slug
- rate-compare
- title
- Fixed vs Variable Rate Shock
- slug
- rate-comparison
- title
- Rate Comparison (True Cost)
- slug
- trigger-rate
- title
- Trigger Rate & Point
- live Rate Data
- https://pragmatic.mortgage/api/public/rates
- readable Rate Data
- https://pragmatic.mortgage/rates?format=html
- readable Tool Catalog
- https://pragmatic.mortgage/ai-agents?format=html
- readable Calculator Example
- https://pragmatic.mortgage/ai-agents?format=html&tool=pragmatic.calculate.v1&input=%7B%22slug%22%3A%22minimum-down-payment%22%2C%22input%22%3A%7B%22purchasePrice%22%3A1500000%2C%22availableDownPayment%22%3A100000%7D%7D
- execution
- Text-only readers can use the exact URLs printed under Links for assistants. Follow the term, insurance and lender links in readable rate results to refine the same scenario without inventing URLs. Use /rates?format=html for readable rate data and /ai-agents?format=html for readable tool discovery or execution. GET or POST to executeEndpoint for JSON. GET accepts tool and JSON-encoded input query parameters. Browsing readers that reject JSON can request format=html on rates, calculator schema, calculations and every other public GET tool; identical validation and calculations apply. Omit format for JSON, or use format=json. Numeric anonymous scenarios only; no personal information in URLs.
- quick Start
- tool
- pragmatic.compare_rates.v1
- input
- transaction
- PURCHASE
- price Or Value
- $750,000.00
- down Payment Amount
- $150,000.00
- amortization Years
- 25
- term Years
- 5
- occupancy
- OWNER
- province
- BC
- limit
- 5
- tools
- name
- pragmatic.site_facts.v1
- title
- Get Pragmatic Mortgage facts
- description
- Get canonical business facts, service area, pricing policy, public privacy boundary, and machine-readable discovery URLs for Pragmatic Mortgage Lending.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": {}, "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
- name
- pragmatic.list_calculators.v1
- title
- List mortgage calculators
- description
- Find public Canadian mortgage calculators by goal, category, title, or keyword. Returns canonical calculator slugs and URLs without collecting personal information.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": { "query": { "type": "string", "maxLength": 120 }, "category": { "type": "string", "enum": [ "purchase", "refinance", "renewal", "qualification", "payments", "rates", "govtax", "investment", "heloc_smith" ] }, "limit": { "type": "integer", "minimum": 1, "maximum": 30, "default": 12 } }, "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
- name
- pragmatic.get_calculator_schema.v1
- title
- Get calculator inputs
- description
- Get the exact JSON input schema for one public calculator before calling pragmatic.calculate.v1. Use this whenever required calculator inputs are not already known.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": { "slug": { "type": "string", "minLength": 1, "maxLength": 80 } }, "required": [ "slug" ], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
- name
- pragmatic.calculate.v1
- title
- Run a mortgage calculator
- description
- Run any public Pragmatic Canadian mortgage calculator with deterministic mortgage-core math. First fetch the calculator schema. Never include names, contact details, addresses, account data, or other identity fields.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": { "slug": { "type": "string", "minLength": 1, "maxLength": 80 }, "input": { "type": "object", "additionalProperties": {} } }, "required": [ "slug", "input" ], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
- name
- pragmatic.rate_overview.v1
- title
- Read all advertised mortgage rates
- description
- Read ALL current advertised website offers without inventing a borrower scenario. No default term or lender cap. Optional termYears, rateType, transaction (PURCHASE, RENEWAL/TRANSFER/SWITCH, REFINANCE, HELOC), pricingBucket (INSURED, INSURABLE, UNINSURED, HELOC), lender, province, occupancy, amortizationYears, programMode and creditScore filters. Returns APR, lender, eligibility conditions, verification and expiry. Follow pagination.nextInput until hasMore is false to retrieve every offer. For personal scenario matching use search_rates or compare_rates. Ordinary readers use /rates; GET /api/public/rates exposes the same catalogue.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": { "termYears": { "type": "number", "enum": [ 1, 2, 3, 4, 5, 6, 7, 10 ] }, "rateType": { "type": "string", "enum": [ "FIXED", "VARIABLE", "HELOC" ] }, "transaction": { "type": "string", "enum": [ "PURCHASE", "RENEWAL", "REFINANCE", "HELOC", "TRANSFER", "SWITCH" ] }, "pricingBucket": { "type": "string", "enum": [ "INSURED", "INSURABLE", "UNINSURED", "HELOC" ] }, "occupancy": { "type": "string", "enum": [ "OWNER", "OWNER_PLUS_RENTAL", "RENTAL", "SECOND_HOME" ] }, "amortizationYears": { "type": "number", "enum": [ 25, 30 ] }, "province": { "type": "string", "enum": [ "BC", "AB", "SK", "MB", "ON", "QC", "NB", "NS", "PE", "NL", "YT", "NT", "NU" ] }, "programMode": { "type": "string", "enum": [ "standard", "bfs_alt", "promo", "any" ] }, "creditScore": { "type": "integer", "minimum": 300, "maximum": 900 }, "lender": { "type": "string", "minLength": 1, "maxLength": 120 }, "page": { "type": "integer", "minimum": 1, "maximum": 10000, "default": 1 }, "pageSize": { "type": "integer", "minimum": 1, "maximum": 120, "default": 100 } }, "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
- name
- pragmatic.lender_rates.v1
- title
- Read verified rates by lender
- description
- Find current conditional reference rates for a named lender such as Pine Financial, without inventing a borrower scenario. Includes source links, verification, expiry and explicit example assumptions. Not a personalized quote or a whole-market best rate. Follow with compare_rates once the borrower supplies their scenario.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": { "lender": { "type": "string", "minLength": 1, "maxLength": 120 } }, "required": [ "lender" ], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
- name
- pragmatic.search_rates.v1
- title
- Shop live mortgage rates
- description
- Search Pragmatic Mortgage's live public lender-rate catalog for a non-identifying BC scenario. Supports purchase, renewal/transfer/switch, refinance and HELOC; insured/insurable/uninsured pricingBucket, multiple terms, lender, specialtyFilters, programMode, credit score, first-time buyer and new build. Filters never override eligibility. Use page and limit (up to 120) to retrieve every match; follow pagination.nextInput. Results are examples, not approvals or commitments. Never include identity, contact, address, employer, or account data.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": { "transaction": { "type": "string", "enum": [ "PURCHASE", "RENEWAL", "REFINANCE", "HELOC", "TRANSFER", "SWITCH" ] }, "priceOrValue": { "type": "number", "exclusiveMinimum": 0 }, "downPaymentAmount": { "type": "number", "minimum": 0 }, "equityAmount": { "type": "number", "minimum": 0 }, "amortizationYears": { "type": "number", "enum": [ 25, 30 ], "description": "Product eligibility bucket, not the remaining payment amortization." }, "remainingAmortization": { "type": "object", "properties": { "years": { "type": "integer", "minimum": 0, "maximum": 30 }, "months": { "type": "integer", "minimum": 0, "maximum": 11 } }, "required": [ "years", "months" ], "additionalProperties": false }, "termYears": { "anyOf": [ { "type": "number", "enum": [ 1, 2, 3, 4, 5, 6, 7, 10 ] }, { "type": "array", "items": { "type": "number", "enum": [ 1, 2, 3, 4, 5, 6, 7, 10 ] }, "minItems": 1, "maxItems": 8 } ] }, "rateType": { "type": "string", "enum": [ "FIXED", "VARIABLE", "HELOC" ] }, "occupancy": { "type": "string", "enum": [ "OWNER", "OWNER_PLUS_RENTAL", "RENTAL", "SECOND_HOME" ] }, "province": { "type": "string", "enum": [ "BC", "AB", "SK", "MB", "ON", "QC", "NB", "NS", "PE", "NL", "YT", "NT", "NU" ] }, "isFirstTimeBuyer": { "type": "boolean", "default": false }, "isNewConstruction": { "type": "boolean", "default": false }, "programMode": { "type": "string", "enum": [ "standard", "bfs_alt", "promo", "any" ], "default": "any" }, "creditScore": { "type": "integer", "minimum": 300, "maximum": 900 }, "pricingBucket": { "type": "string", "enum": [ "INSURED", "INSURABLE", "UNINSURED", "HELOC" ] }, "lender": { "type": "string", "minLength": 1, "maxLength": 120 }, "specialtyFilters": { "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 60 }, "maxItems": 20 }, "page": { "type": "integer", "minimum": 1, "maximum": 10000, "default": 1 }, "limit": { "type": "integer", "minimum": 1, "maximum": 120, "default": 8 } }, "required": [ "transaction", "priceOrValue", "amortizationYears", "occupancy", "province" ], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
- name
- pragmatic.compare_rates.v1
- title
- Compare rates, payments and term costs
- description
- One-call BC mortgage shopping: search the published catalog and compare the lowest matching rates with monthly payments, financed default insurance, term interest, remaining balances and a +1 percentage point payment sensitivity. Uses the website's mortgage-core calculators. Sorts by APR, not suitability; excludes unknown fees and penalties. Use page and limit (up to 120) to retrieve every match. Anonymous scenario numbers only.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": { "transaction": { "type": "string", "enum": [ "PURCHASE", "RENEWAL", "REFINANCE", "HELOC", "TRANSFER", "SWITCH" ] }, "priceOrValue": { "type": "number", "exclusiveMinimum": 0 }, "downPaymentAmount": { "type": "number", "minimum": 0 }, "equityAmount": { "type": "number", "minimum": 0 }, "amortizationYears": { "type": "number", "enum": [ 25, 30 ], "description": "Product eligibility bucket, not the remaining payment amortization." }, "remainingAmortization": { "type": "object", "properties": { "years": { "type": "integer", "minimum": 0, "maximum": 30 }, "months": { "type": "integer", "minimum": 0, "maximum": 11 } }, "required": [ "years", "months" ], "additionalProperties": false }, "termYears": { "anyOf": [ { "type": "number", "enum": [ 1, 2, 3, 4, 5, 6, 7, 10 ] }, { "type": "array", "items": { "type": "number", "enum": [ 1, 2, 3, 4, 5, 6, 7, 10 ] }, "minItems": 1, "maxItems": 8 } ] }, "rateType": { "type": "string", "enum": [ "FIXED", "VARIABLE", "HELOC" ] }, "occupancy": { "type": "string", "enum": [ "OWNER", "OWNER_PLUS_RENTAL", "RENTAL", "SECOND_HOME" ] }, "province": { "type": "string", "enum": [ "BC", "AB", "SK", "MB", "ON", "QC", "NB", "NS", "PE", "NL", "YT", "NT", "NU" ] }, "isFirstTimeBuyer": { "type": "boolean", "default": false }, "isNewConstruction": { "type": "boolean", "default": false }, "programMode": { "type": "string", "enum": [ "standard", "bfs_alt", "promo", "any" ], "default": "any" }, "creditScore": { "type": "integer", "minimum": 300, "maximum": 900 }, "pricingBucket": { "type": "string", "enum": [ "INSURED", "INSURABLE", "UNINSURED", "HELOC" ] }, "lender": { "type": "string", "minLength": 1, "maxLength": 120 }, "specialtyFilters": { "type": "array", "items": { "type": "string", "minLength": 1, "maxLength": 60 }, "maxItems": 20 }, "page": { "type": "integer", "minimum": 1, "maximum": 10000, "default": 1 }, "limit": { "type": "integer", "minimum": 1, "maximum": 120, "default": 8 } }, "required": [ "transaction", "priceOrValue", "amortizationYears", "occupancy", "province" ], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
- name
- pragmatic.calculate_batch.v1
- title
- Compare calculator scenarios in one request
- description
- Run up to 8 independent mortgage calculations in one round trip. Fetch each calculator schema first. Use scenario IDs such as option_a (never names). Returns ordered results with individual errors so valid scenarios still complete. No identity or contact data.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": { "calculations": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "string", "pattern": "^[a-z][a-z0-9_]{0,31}$" }, "slug": { "type": "string", "minLength": 1, "maxLength": 80 }, "input": { "type": "object", "additionalProperties": {} } }, "required": [ "id", "slug", "input" ], "additionalProperties": false }, "minItems": 1, "maxItems": 8 } }, "required": [ "calculations" ], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
- name
- pragmatic.search_site.v1
- title
- Search mortgage guides and services
- description
- Search Pragmatic Mortgage's public, editorially reviewed guides, FAQs, products, services, news, comparisons, and location pages. Returns short excerpts and canonical URLs.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": { "query": { "type": "string", "minLength": 2, "maxLength": 160 }, "contentType": { "type": "string", "enum": [ "all", "guide", "faq", "product", "service", "news", "comparison", "location" ], "default": "all" }, "limit": { "type": "integer", "minimum": 1, "maximum": 20, "default": 8 } }, "required": [ "query" ], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
- name
- pragmatic.find_brokers.v1
- title
- Find a licensed mortgage broker
- description
- Find public Pragmatic Mortgage broker profiles in British Columbia by region, language, or expertise and return public booking links. Does not create a lead or share user data.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": { "province": { "type": "string", "enum": [ "BC", "AB", "SK", "MB", "ON", "QC", "NB", "NS", "PE", "NL", "YT", "NT", "NU" ] }, "region": { "type": "string", "maxLength": 100 }, "language": { "type": "string", "maxLength": 60 }, "query": { "type": "string", "maxLength": 120 }, "limit": { "type": "integer", "minimum": 1, "maximum": 20, "default": 8 } }, "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
- name
- pragmatic.get_next_steps.v1
- title
- Get safe mortgage next steps
- description
- Return canonical public URLs for a purchase, renewal, refinance, HELOC, rate review, calculator session, broker consultation, or secure application. This tool never submits a form or collects confidential information.
- annotations
- read Only Hint
- Yes
- untrusted Content Hint
- No
- input Schema
{ "type": "object", "properties": { "goal": { "type": "string", "enum": [ "purchase", "renewal", "refinance", "heloc", "compare_rates", "calculate", "learn", "talk_to_broker", "apply" ] }, "province": { "type": "string", "enum": [ "BC", "AB", "SK", "MB", "ON", "QC", "NB", "NS", "PE", "NL", "YT", "NT", "NU" ] } }, "required": [ "goal" ], "additionalProperties": false, "$schema": "http://json-schema.org/draft-07/schema#" }
Canadian mortgage tools · CAD
Public mortgage tools
Current public data and calculations from Pragmatic Mortgage. Anonymous access; no account required.