BLIA — Bank Product Terms
Bank account terms as banks publish them, dated: fees, waivers, offers. Read-only. Canada today.
使うべきか
品質と安全性
ツール定義とプロトコルへの準拠に関する自動分析に基づいています。
コンテキストコスト
これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。
インストール
ワンクリックインストール
これを `claude_desktop_config.json` ファイルに追加してください:
{
"mcpServers": {
"blia-catalogue": {
"url": "https://mcp.bliahub.com/mcp"
}
}
}リモートエンドポイント
https://mcp.bliahub.com/mcpstreamable-httpできること
ツール一覧
ツール(5)
🟢list_bank_products(institution, product_class, province, page_size, cursor)
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. 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.
入力スキーマ
{
"type": "object",
"properties": {
"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."
},
"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",
"minimum": 1,
"maximum": 50,
"description": "Up to 50 products per page."
},
"cursor": {
"type": "string",
"description": "product_slug returned as next_cursor by a prior call"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"as_of": {
"type": "string",
"description": "When the snapshot was built, ISO 8601 UTC."
},
"publication_seq": {
"type": "integer",
"description": "Publication number of the snapshot being served."
},
"staleness_days": {
"type": "number",
"description": "Whole days since as_of."
},
"coverage_scope": {
"type": "string",
"description": "The product class, institutions and lineup completeness the snapshot covers."
},
"coverage": {
"type": "object",
"properties": {},
"additionalProperties": true,
"description": "What BLIA does and does not cover: product classes, institutions, kinds of information."
},
"disclaimer": {
"type": "string",
"description": "BLIA's disclaimer, verbatim. Include it when relaying values."
},
"freshness": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"current",
"aging",
"stale"
],
"description": "How old the snapshot is: current up to 30 days, aging up to 90, then stale."
},
"staleness_days": {
"type": "number",
"description": "Whole days since as_of."
},
"as_of": {
"type": "string",
"description": "When the snapshot was built, ISO 8601 UTC."
},
"guidance": {
"type": "string",
"description": "What to say and what to confirm with the institution at this age."
}
},
"required": [
"status",
"staleness_days",
"as_of",
"guidance"
],
"additionalProperties": true
},
"freshness_warning": {
"type": "string",
"description": "Repeats freshness.guidance when the snapshot is not current."
}
},
"required": [
"as_of",
"publication_seq",
"staleness_days",
"coverage_scope",
"coverage",
"disclaimer",
"freshness"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_product_terms(product_slug, province, cohort, channel, attributes)
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). 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.
入力スキーマ
{
"type": "object",
"properties": {
"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"
},
"province": {
"type": "string",
"description": "Two-letter province code. Default \"ALL\"."
},
"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."
},
"channel": {
"type": "string",
"enum": [
"branch",
"online",
"any"
],
"description": "How the account is opened. Default \"any\" (terms that apply whatever the channel)."
},
"attributes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Limit to these attributes, e.g. monthly_fee, transaction_limit, minimum_balance, nsf_fee, etransfer_rules, atm_rules. Omit for all."
}
},
"required": [
"product_slug"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"as_of": {
"type": "string",
"description": "When the snapshot was built, ISO 8601 UTC."
},
"publication_seq": {
"type": "integer",
"description": "Publication number of the snapshot being served."
},
"staleness_days": {
"type": "number",
"description": "Whole days since as_of."
},
"coverage_scope": {
"type": "string",
"description": "The product class, institutions and lineup completeness the snapshot covers."
},
"coverage": {
"type": "object",
"properties": {},
"additionalProperties": true,
"description": "What BLIA does and does not cover: product classes, institutions, kinds of information."
},
"disclaimer": {
"type": "string",
"description": "BLIA's disclaimer, verbatim. Include it when relaying values."
},
"freshness": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"current",
"aging",
"stale"
],
"description": "How old the snapshot is: current up to 30 days, aging up to 90, then stale."
},
"staleness_days": {
"type": "number",
"description": "Whole days since as_of."
},
"as_of": {
"type": "string",
"description": "When the snapshot was built, ISO 8601 UTC."
},
"guidance": {
"type": "string",
"description": "What to say and what to confirm with the institution at this age."
}
},
"required": [
"status",
"staleness_days",
"as_of",
"guidance"
],
"additionalProperties": true
},
"freshness_warning": {
"type": "string",
"description": "Repeats freshness.guidance when the snapshot is not current."
}
},
"required": [
"as_of",
"publication_seq",
"staleness_days",
"coverage_scope",
"coverage",
"disclaimer",
"freshness"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢compare_products(product_slugs, province, cohort, channel, monthly_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. For one account's complete terms and rule logic use get_product_terms.
入力スキーマ
{
"type": "object",
"properties": {
"product_slugs": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[a-z0-9]+(-[a-z0-9]+)*$"
},
"minItems": 2,
"maxItems": 10,
"description": "2 to 10 product_slugs from list_bank_products, from one or several banks."
},
"province": {
"type": "string",
"description": "Two-letter province code. Default \"ALL\"."
},
"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."
},
"channel": {
"type": "string",
"enum": [
"branch",
"online",
"any"
],
"description": "How the account is opened. Default \"any\" (terms that apply whatever the channel)."
},
"monthly_transactions": {
"type": "integer",
"minimum": 0,
"maximum": 1000,
"description": "Optional: the customer's typical debit transactions per month, checked against each product's included transactions."
}
},
"required": [
"product_slugs"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"as_of": {
"type": "string",
"description": "When the snapshot was built, ISO 8601 UTC."
},
"publication_seq": {
"type": "integer",
"description": "Publication number of the snapshot being served."
},
"staleness_days": {
"type": "number",
"description": "Whole days since as_of."
},
"coverage_scope": {
"type": "string",
"description": "The product class, institutions and lineup completeness the snapshot covers."
},
"coverage": {
"type": "object",
"properties": {},
"additionalProperties": true,
"description": "What BLIA does and does not cover: product classes, institutions, kinds of information."
},
"disclaimer": {
"type": "string",
"description": "BLIA's disclaimer, verbatim. Include it when relaying values."
},
"freshness": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"current",
"aging",
"stale"
],
"description": "How old the snapshot is: current up to 30 days, aging up to 90, then stale."
},
"staleness_days": {
"type": "number",
"description": "Whole days since as_of."
},
"as_of": {
"type": "string",
"description": "When the snapshot was built, ISO 8601 UTC."
},
"guidance": {
"type": "string",
"description": "What to say and what to confirm with the institution at this age."
}
},
"required": [
"status",
"staleness_days",
"as_of",
"guidance"
],
"additionalProperties": true
},
"freshness_warning": {
"type": "string",
"description": "Repeats freshness.guidance when the snapshot is not current."
},
"ranking_by_monthly_fee": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_slug": {
"type": "string"
}
},
"required": [
"product_slug"
],
"additionalProperties": true
},
"description": "Products with a published CAD monthly fee, cheapest first, ties by product_slug. Nothing else affects the order."
},
"not_ranked": {
"type": "array",
"items": {
"type": "object",
"properties": {
"product_slug": {
"type": "string"
},
"reason": {
"type": "string"
}
},
"required": [
"product_slug",
"reason"
],
"additionalProperties": true
},
"description": "Products left out of the ranking and why; never ranked as free."
}
},
"required": [
"as_of",
"publication_seq",
"staleness_days",
"coverage_scope",
"coverage",
"disclaimer",
"freshness",
"ranking_by_monthly_fee",
"not_ranked"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_offers(institution, 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. Welcome offers only, which end; ongoing plan perks are in list_benefits, and fees and waiver rules in get_product_terms.
入力スキーマ
{
"type": "object",
"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,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"as_of": {
"type": "string",
"description": "When the snapshot was built, ISO 8601 UTC."
},
"publication_seq": {
"type": "integer",
"description": "Publication number of the snapshot being served."
},
"staleness_days": {
"type": "number",
"description": "Whole days since as_of."
},
"coverage_scope": {
"type": "string",
"description": "The product class, institutions and lineup completeness the snapshot covers."
},
"coverage": {
"type": "object",
"properties": {},
"additionalProperties": true,
"description": "What BLIA does and does not cover: product classes, institutions, kinds of information."
},
"disclaimer": {
"type": "string",
"description": "BLIA's disclaimer, verbatim. Include it when relaying values."
},
"freshness": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"current",
"aging",
"stale"
],
"description": "How old the snapshot is: current up to 30 days, aging up to 90, then stale."
},
"staleness_days": {
"type": "number",
"description": "Whole days since as_of."
},
"as_of": {
"type": "string",
"description": "When the snapshot was built, ISO 8601 UTC."
},
"guidance": {
"type": "string",
"description": "What to say and what to confirm with the institution at this age."
}
},
"required": [
"status",
"staleness_days",
"as_of",
"guidance"
],
"additionalProperties": true
},
"freshness_warning": {
"type": "string",
"description": "Repeats freshness.guidance when the snapshot is not current."
}
},
"required": [
"as_of",
"publication_seq",
"staleness_days",
"coverage_scope",
"coverage",
"disclaimer",
"freshness"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢list_benefits(benefit, institution, product_class, cohort, province)
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. Ongoing perks only; welcome offers are in list_offers, and fees and waiver rules in get_product_terms.
入力スキーマ
{
"type": "object",
"properties": {
"benefit": {
"type": "string",
"description": "One benefit, e.g. safe_deposit_box, credit_card_annual_fee_rebate, bank_drafts. Omit for every benefit BLIA tracks."
},
"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."
},
"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."
},
"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\"."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}出力スキーマ
{
"type": "object",
"properties": {
"as_of": {
"type": "string",
"description": "When the snapshot was built, ISO 8601 UTC."
},
"publication_seq": {
"type": "integer",
"description": "Publication number of the snapshot being served."
},
"staleness_days": {
"type": "number",
"description": "Whole days since as_of."
},
"coverage_scope": {
"type": "string",
"description": "The product class, institutions and lineup completeness the snapshot covers."
},
"coverage": {
"type": "object",
"properties": {},
"additionalProperties": true,
"description": "What BLIA does and does not cover: product classes, institutions, kinds of information."
},
"disclaimer": {
"type": "string",
"description": "BLIA's disclaimer, verbatim. Include it when relaying values."
},
"freshness": {
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"current",
"aging",
"stale"
],
"description": "How old the snapshot is: current up to 30 days, aging up to 90, then stale."
},
"staleness_days": {
"type": "number",
"description": "Whole days since as_of."
},
"as_of": {
"type": "string",
"description": "When the snapshot was built, ISO 8601 UTC."
},
"guidance": {
"type": "string",
"description": "What to say and what to confirm with the institution at this age."
}
},
"required": [
"status",
"staleness_days",
"as_of",
"guidance"
],
"additionalProperties": true
},
"freshness_warning": {
"type": "string",
"description": "Repeats freshness.guidance when the snapshot is not current."
}
},
"required": [
"as_of",
"publication_seq",
"staleness_days",
"coverage_scope",
"coverage",
"disclaimer",
"freshness"
],
"additionalProperties": true,
"$schema": "http://json-schema.org/draft-07/schema#"
}コミュニティ
エビデンス