Bank account terms as banks publish them, dated: fees, waivers, offers. Read-only. Canada today.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Use this when the user wants to compare accounts, within one bank or across banks. One call returns, for each product: monthly fee, annual fee before waivers, included transactions (checked against monthly_transactions if given), minimum balance, NSF fee, the fee-waiver conditions (summary and logic), e-transfer and ATM terms, and what is missing -- plus a ranking by monthly fee with the annual difference to the lowest. It never applies a waiver to the customer's balances: it gives the conditions so they can be checked. Products whose fee BLIA has not published are listed as not_ranked, never ranked as free. The ranking uses published monthly fee and nothing else: monthly_transactions adds a separate ranking_at_usage and the included-transactions check, and never changes ranking_by_monthly_fee. For one account's complete terms and rule logic use get_product_terms.
2 to 10 product_slugs from list_bank_products, from one or several banks.
Customer group the terms apply to. Default "current" (the standard offer). Other groups a product carries (e.g. "senior_60_plus") are listed per product as variants; pass one to get that group's terms. Case and punctuation are ignored.
How the account is opened. Default "any" (terms that apply whatever the channel).
Province: a two-letter code (ON, QC, ...) or a name such as Ontario or Québec. Default "ALL".
Optional: the customer's typical debit transactions per month, checked against each product's included transactions.
Use this when the user wants to compare accounts, within one bank or across banks. One call returns, for each product: monthly fee, annual fee before waivers, included transactions (checked against monthly_transactions if given), minimum balance, NSF fee, the fee-waiver conditions (summary and logic), e-transfer and ATM terms, and what is missing -- plus a ranking by monthly fee with the annual difference to the lowest. It never applies a waiver to the customer's balances: it gives the conditions so they can be checked. Products whose fee BLIA has not published are listed as not_ranked, never ranked as free. The ranking uses published monthly fee and nothing else: monthly_transactions adds a separate ranking_at_usage and the included-transactions check, and never changes ranking_by_monthly_fee. For one account's complete terms and rule logic use get_product_terms.
| Argument | Type | Description |
|---|---|---|
| cohort | string | Customer group the terms apply to. Default "current" (the standard offer). Other groups a product carries (e.g. "senior_60_plus") are listed per product as variants; pass one to get that group's terms. Case and punctuation are ignored. |
| channel | string | How the account is opened. Default "any" (terms that apply whatever the channel). |
| province | string | Province: a two-letter code (ON, QC, ...) or a name such as Ontario or Québec. Default "ALL". |
| product_slugs* | array | 2 to 10 product_slugs from list_bank_products, from one or several banks. |
| monthly_transactions | integer | Optional: the customer's typical debit transactions per month, checked against each product's included transactions. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"product_slugs"
],
"properties": {
"cohort": {
"type": "string",
"description": "Customer group the terms apply to. Default \"current\" (the standard offer). Other groups a product carries (e.g. \"senior_60_plus\") are listed per product as variants; pass one to get that group's terms. Case and punctuation are ignored."
},
"channel": {
"enum": [
"branch",
"online",
"any"
],
"type": "string",
"description": "How the account is opened. Default \"any\" (terms that apply whatever the channel)."
},
"province": {
"type": "string",
"description": "Province: a two-letter code (ON, QC, ...) or a name such as Ontario or Québec. Default \"ALL\"."
},
"product_slugs": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
},
"maxItems": 10,
"minItems": 2,
"description": "2 to 10 product_slugs from list_bank_products, from one or several banks."
},
"monthly_transactions": {
"type": "integer",
"maximum": 1000,
"minimum": 0,
"description": "Optional: the customer's typical debit transactions per month, checked against each product's included transactions."
}
},
"additionalProperties": false
}Use this when the user asks about one account's fees, included transactions, minimum balance, fee waiver conditions, e-transfer or ATM costs, or deposit insurance. Returns each published term with its value and effective date; a rule comes with its plain-language summary AND its logic (default outcome plus conditions with thresholds, e.g. the balance that waives the monthly fee). Says which customer-group variant was used, which others exist, which questions the terms answer (answerability) and exactly what is not published (before_acting). cohort, province and channel pick the variant (defaults current, ALL and any, echoed in defaults_applied; cohort ignores case and punctuation, so "Senior 60+" finds senior_60_plus). If none matches, no_variant_matched lists available_cohorts: a problem with the query, not missing data. An unknown product_slug returns an error naming the nearest published slugs. not_published and unresolved mean unknown, never zero. Free tier: no source quote, content hash, provenance tier or corroboration status. For several accounts side by side use compare_products; for perks or welcome offers across accounts use list_benefits or list_offers. BLIA holds one current snapshot, so it cannot say what a fee was or will be.
| Argument | Type | Description |
|---|---|---|
| cohort | string | Customer group the terms apply to. Default "current" (the standard offer). Other groups a product carries (e.g. "senior_60_plus") are listed per product as variants; pass one to get that group's terms. Case and punctuation are ignored. |
| channel | string | How the account is opened. Default "any" (terms that apply whatever the channel). |
| province | string | Province: a two-letter code (ON, QC, ...) or a name such as Ontario or Québec. Default "ALL". |
Use this first when the user asks about Canadian bank accounts (currently chequing at the banks listed in coverage), or which accounts a bank offers. Returns every product in BLIA's snapshot with its product_slug, its variants (customer groups such as seniors, each with its eligibility note), the attributes published, and completeness. coverage says what BLIA does and does not cover; an empty result always says why. Filters combine. Pages hold up to 50 products; pass next_cursor as cursor for the next page (null on the last). Free tier: published values only -- no source citation, provenance tier or corroboration status. Not for fees or rules: take a product_slug from here to get_product_terms or compare_products.
| Argument | Type | Description |
|---|---|---|
| cursor | string | product_slug returned as next_cursor by a prior call |
| province | string | Province: a two-letter code (ON, QC, ...) or a name such as Ontario or Québec; omit for all provinces. |
| page_size | integer | Up to 50 products per page. |
| institution | string | Institution id as listed in coverage.institutions_covered (bmo, cibc, rbc, scotia, td: the Big 5); a common or legal name such as BMO, RBC, Scotiabank or Royal Bank of Canada also resolves. Omit for all. |
| product_class | string | Product class. Only "chequing" is covered today. |
Use this when the user asks which accounts include a perk or benefit -- a credit card annual fee rebate, a safe deposit box, free drafts or cheques, rewards points, a borrowing rate discount. With benefit set, returns includes / does_not_include / not_recorded across products; without it, every tracked benefit per product. not_recorded is unknown, never 'not included'. A benefit with basis 'bank_default' is the bank's standard terms for all accounts (no product-specific benefit recorded): say so rather than calling it a feature of the plan. An unknown benefit name returns an error listing the benefits BLIA tracks. Ongoing perks only; welcome offers are in list_offers, and fees and waiver rules in get_product_terms.
| Argument | Type | Description |
|---|---|---|
| cohort | string | Customer group the terms apply to. Default "current" (the standard offer). Other groups a product carries (e.g. "senior_60_plus") are listed per product as variants; pass one to get that group's terms. Case and punctuation are ignored. |
| benefit | string | One benefit, e.g. safe_deposit_box, credit_card_annual_fee_rebate, bank_drafts. Omit for every benefit BLIA tracks. |
| province | string | Province: a two-letter code or a name such as Ontario. A benefit priced differently in that province is answered with its price there. Default "ALL". |
| institution | string | Institution id (bmo, cibc, rbc, scotia, td: the Big 5) or a common or legal name such as BMO, RBC or Scotiabank. Omit for all. |
| product_class |
Use this when the user asks which accounts have a welcome or sign-up offer, what an offer gives, or what they must do to get it. Returns each recorded offer with what you get (cash and any non-cash part, e.g. a membership), the qualifying conditions (each as a plain sentence), conditions_status, and the end date or that none is stated. conditions_status not_recorded means the conditions are unknown, never that there are none. A product with no recorded offer may still have one: say BLIA records none. Both filters are optional; omit them for every recorded offer. Welcome offers only, which end; ongoing plan perks are in list_benefits, and fees and waiver rules in get_product_terms.
| Argument | Type | Description |
|---|---|---|
| institution | string | Institution id (bmo, cibc, rbc, scotia, td: the Big 5) or a common or legal name such as BMO, RBC or Scotiabank. Omit for all. |
| product_class | string | Product class. Only "chequing" is covered today. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"institution": {
"type": "string",
"description": "Institution id (bmo, cibc, rbc, scotia, td: the Big 5) or a common or legal name such as BMO, RBC or Scotiabank. Omit for all."
},
"product_class": {
"type": "string",
"description": "Product class. Only \"chequing\" is covered today."
}
},
"additionalProperties": false
}| attributes | array | Limit to these attributes (at most 40), e.g. monthly_fee, transaction_limit, minimum_balance, nsf_fee, etransfer_rules, atm_rules. Omit for all. |
| product_slug* | string | A product_slug from list_bank_products, e.g. td-every-day-chequing-account |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"product_slug"
],
"properties": {
"cohort": {
"type": "string",
"description": "Customer group the terms apply to. Default \"current\" (the standard offer). Other groups a product carries (e.g. \"senior_60_plus\") are listed per product as variants; pass one to get that group's terms. Case and punctuation are ignored."
},
"channel": {
"enum": [
"branch",
"online",
"any"
],
"type": "string",
"description": "How the account is opened. Default \"any\" (terms that apply whatever the channel)."
},
"province": {
"type": "string",
"description": "Province: a two-letter code (ON, QC, ...) or a name such as Ontario or Québec. Default \"ALL\"."
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Limit to these attributes (at most 40), e.g. monthly_fee, transaction_limit, minimum_balance, nsf_fee, etransfer_rules, atm_rules. Omit for all."
},
"product_slug": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$",
"description": "A product_slug from list_bank_products, e.g. td-every-day-chequing-account"
}
},
"additionalProperties": false
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"cursor": {
"type": "string",
"description": "product_slug returned as next_cursor by a prior call"
},
"province": {
"type": "string",
"description": "Province: a two-letter code (ON, QC, ...) or a name such as Ontario or Québec; omit for all provinces."
},
"page_size": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Up to 50 products per page."
},
"institution": {
"type": "string",
"description": "Institution id as listed in coverage.institutions_covered (bmo, cibc, rbc, scotia, td: the Big 5); a common or legal name such as BMO, RBC, Scotiabank or Royal Bank of Canada also resolves. Omit for all."
},
"product_class": {
"type": "string",
"description": "Product class. Only \"chequing\" is covered today."
}
},
"additionalProperties": false
}| string |
| Product class. Only "chequing" is covered today. |
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"cohort": {
"type": "string",
"description": "Customer group the terms apply to. Default \"current\" (the standard offer). Other groups a product carries (e.g. \"senior_60_plus\") are listed per product as variants; pass one to get that group's terms. Case and punctuation are ignored."
},
"benefit": {
"type": "string",
"description": "One benefit, e.g. safe_deposit_box, credit_card_annual_fee_rebate, bank_drafts. Omit for every benefit BLIA tracks."
},
"province": {
"type": "string",
"description": "Province: a two-letter code or a name such as Ontario. A benefit priced differently in that province is answered with its price there. Default \"ALL\"."
},
"institution": {
"type": "string",
"description": "Institution id (bmo, cibc, rbc, scotia, td: the Big 5) or a common or legal name such as BMO, RBC or Scotiabank. Omit for all."
},
"product_class": {
"type": "string",
"description": "Product class. Only \"chequing\" is covered today."
}
},
"additionalProperties": false
}