Credit GPS — Canadian credit

Canadian credit: statement-cycle and utilization math, plus bureau and reporting reference data.

我該用這個嗎

品質與安全性

A
說明品質
100%
結構描述完整度
83%
命名品質
89%
汙染風險
100%
權限相符程度
100%
協定合規性
100%

發現項目(1)

  • LOWTool 'explain_canadian_credit_mechanics' name length outside 3-30 range在 explain_canadian_credit_mechanics 中

根據工具定義與協定合規性的自動化分析。

上下文成本

~11,349Token(工具定義)
~6.8 KB典型回應大小
顯著的注意力影響(128k 上下文的 8.87%)

這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。

安裝

一鍵安裝

將以下內容加入你的 `claude_desktop_config.json` 檔案:

{
  "mcpServers": {
    "canadian-credit": {
      "url": "https://mcp.creditgps.ca/mcp"
    }
  }
}

遠端端點

https://mcp.creditgps.ca/mcpstreamable-http

它能做什麼

工具清單

工具(16)

🟢 唯讀🟡 寫入🔴 刪除⚪ 未知
🟢get_next_move(cards, today, targetUtilization)

Use this when someone asks what to pay first, what to do next, or how to lower utilization before it is reported. Returns the single highest-priority action from the card figures given in the conversation: which card, how much, and by which date. The calculation uses the supplied statement closing date as a planning assumption; actual issuer reporting dates can differ. Calculates scenarios from supplied figures; does not make payments, change accounts, fetch external data, or retain tool inputs.

輸入結構描述

{
  "type": "object",
  "properties": {
    "cards": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "What the person calls this card, e.g. \"TD Cash Back Visa\" or \"the blue one\"."
          },
          "creditLimit": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Credit limit in CAD. Use 0 for a charge card or any account with no set limit — it is then excluded from utilization."
          },
          "statementBalance": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Balance at the most recent statement close. This is the figure the issuer reported, and the one utilization is read from. If only today's balance is known, pass it here and say so."
          },
          "currentBalance": {
            "description": "Today's balance, if it differs from the statement balance. Defaults to statementBalance.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "statementCloseDate": {
            "description": "The day the NEXT statement closes — the date the engine targets. Found on a statement or in online banking. If omitted, a placeholder 30 days out is assumed and flagged.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dueDate": {
            "description": "Payment due date for the current statement. Defaults to 21 days after the closing date.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "minimumPayment": {
            "description": "The issuer's minimum payment. Omit if unknown — do not pass 0 to mean unknown.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "aprPercent": {
            "description": "Purchase APR as a percentage, e.g. 19.99. Omit when unknown. Never pass 0 to mean unknown — 0 is a real interest-free rate and cost estimates would understate what a balance costs.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "isOverdue": {
            "description": "True if a payment is past due right now.",
            "type": "boolean"
          },
          "last4": {
            "description": "Last four digits, only to tell two similar cards apart. Optional and never required.",
            "type": "string",
            "maxLength": 4
          }
        },
        "required": [
          "name",
          "creditLimit",
          "statementBalance"
        ]
      },
      "description": "The person's revolving credit accounts. Ask for limit, statement balance, and statement closing date per card — those three drive everything."
    },
    "today": {
      "description": "Today's date in the person's local timezone, yyyy-mm-dd. Pass it — the server otherwise falls back to UTC, which is a day ahead for Canadian evenings.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "targetUtilization": {
      "description": "Target utilization as a decimal. Defaults to 0.29 — one point under the 30% band.",
      "type": "number",
      "minimum": 0.01,
      "maximum": 0.95
    }
  },
  "required": [
    "cards"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "move": {
      "type": "object",
      "properties": {
        "accountName": {
          "type": "string"
        },
        "amount": {
          "type": "number"
        },
        "dueByDate": {
          "type": "string"
        },
        "reason": {
          "type": "string",
          "enum": [
            "cross_score_band",
            "avoid_delinquency",
            "clear_overdue",
            "hold"
          ]
        },
        "projectedUtilization": {
          "type": "number"
        },
        "rationale": {
          "type": "string"
        }
      },
      "required": [
        "accountName",
        "amount",
        "dueByDate",
        "reason",
        "projectedUtilization",
        "rationale"
      ],
      "additionalProperties": false
    },
    "currentUtilization": {
      "type": "number"
    },
    "forecast": {
      "type": "null",
      "description": "No validated score prediction is available."
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "move",
    "currentUtilization",
    "forecast",
    "assumptions",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_reported_snapshot(cards, today, targetUtilization)

Use this when someone asks how their cards look, where they stand, or which card is the problem. Returns utilization from supplied balances, days to the supplied closing date, and a hypothetical payment to reach the target. It does not determine future bureau-reported balances. This is the difference between today's balance and the figure the issuer transmits. Calculates scenarios from supplied figures; does not make payments, change accounts, fetch external data, or retain tool inputs.

輸入結構描述

{
  "type": "object",
  "properties": {
    "cards": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "What the person calls this card, e.g. \"TD Cash Back Visa\" or \"the blue one\"."
          },
          "creditLimit": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Credit limit in CAD. Use 0 for a charge card or any account with no set limit — it is then excluded from utilization."
          },
          "statementBalance": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Balance at the most recent statement close. This is the figure the issuer reported, and the one utilization is read from. If only today's balance is known, pass it here and say so."
          },
          "currentBalance": {
            "description": "Today's balance, if it differs from the statement balance. Defaults to statementBalance.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "statementCloseDate": {
            "description": "The day the NEXT statement closes — the date the engine targets. Found on a statement or in online banking. If omitted, a placeholder 30 days out is assumed and flagged.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dueDate": {
            "description": "Payment due date for the current statement. Defaults to 21 days after the closing date.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "minimumPayment": {
            "description": "The issuer's minimum payment. Omit if unknown — do not pass 0 to mean unknown.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "aprPercent": {
            "description": "Purchase APR as a percentage, e.g. 19.99. Omit when unknown. Never pass 0 to mean unknown — 0 is a real interest-free rate and cost estimates would understate what a balance costs.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "isOverdue": {
            "description": "True if a payment is past due right now.",
            "type": "boolean"
          },
          "last4": {
            "description": "Last four digits, only to tell two similar cards apart. Optional and never required.",
            "type": "string",
            "maxLength": 4
          }
        },
        "required": [
          "name",
          "creditLimit",
          "statementBalance"
        ]
      },
      "description": "The person's revolving credit accounts. Ask for limit, statement balance, and statement closing date per card — those three drive everything."
    },
    "today": {
      "description": "Today's date in the person's local timezone, yyyy-mm-dd. Pass it — the server otherwise falls back to UTC, which is a day ahead for Canadian evenings.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "targetUtilization": {
      "description": "Target utilization as a decimal. Defaults to 0.29 — one point under the 30% band.",
      "type": "number",
      "minimum": 0.01,
      "maximum": 0.95
    }
  },
  "required": [
    "cards"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "cards": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "reportedBalance": {
            "type": "number"
          },
          "creditLimit": {
            "type": "number"
          },
          "utilization": {
            "type": "number"
          },
          "band": {
            "type": "string",
            "enum": [
              "good",
              "elevated",
              "high"
            ]
          },
          "statementCloseDate": {
            "type": "string"
          },
          "daysUntilClose": {
            "type": "number"
          },
          "payToTarget": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "minimumPayment": {
            "type": "number"
          },
          "dueDate": {
            "type": "string"
          },
          "daysUntilDue": {
            "type": "number"
          },
          "isOverdue": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "reportedBalance",
          "creditLimit",
          "utilization",
          "band",
          "statementCloseDate",
          "daysUntilClose",
          "payToTarget",
          "minimumPayment",
          "dueDate",
          "daysUntilDue",
          "isOverdue"
        ],
        "additionalProperties": false
      }
    },
    "totalReported": {
      "type": "number"
    },
    "totalLimit": {
      "type": "number"
    },
    "blendedUtilization": {
      "type": "number"
    },
    "band": {
      "type": "string",
      "enum": [
        "good",
        "elevated",
        "high"
      ]
    },
    "isEmpty": {
      "type": "boolean"
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "cards",
    "totalReported",
    "totalLimit",
    "blendedUtilization",
    "band",
    "isEmpty",
    "assumptions",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_statement_calendar(cards, today, count)

Use this when someone asks about timing, what is coming up, or why the closing date differs from the due date. Returns the upcoming dates in order: when to pay, when each statement closes (the bureau read), and when each payment is due (the delinquency line). Calculates scenarios from supplied figures; does not make payments, change accounts, fetch external data, or retain tool inputs.

輸入結構描述

{
  "type": "object",
  "properties": {
    "cards": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "What the person calls this card, e.g. \"TD Cash Back Visa\" or \"the blue one\"."
          },
          "creditLimit": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Credit limit in CAD. Use 0 for a charge card or any account with no set limit — it is then excluded from utilization."
          },
          "statementBalance": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Balance at the most recent statement close. This is the figure the issuer reported, and the one utilization is read from. If only today's balance is known, pass it here and say so."
          },
          "currentBalance": {
            "description": "Today's balance, if it differs from the statement balance. Defaults to statementBalance.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "statementCloseDate": {
            "description": "The day the NEXT statement closes — the date the engine targets. Found on a statement or in online banking. If omitted, a placeholder 30 days out is assumed and flagged.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dueDate": {
            "description": "Payment due date for the current statement. Defaults to 21 days after the closing date.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "minimumPayment": {
            "description": "The issuer's minimum payment. Omit if unknown — do not pass 0 to mean unknown.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "aprPercent": {
            "description": "Purchase APR as a percentage, e.g. 19.99. Omit when unknown. Never pass 0 to mean unknown — 0 is a real interest-free rate and cost estimates would understate what a balance costs.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "isOverdue": {
            "description": "True if a payment is past due right now.",
            "type": "boolean"
          },
          "last4": {
            "description": "Last four digits, only to tell two similar cards apart. Optional and never required.",
            "type": "string",
            "maxLength": 4
          }
        },
        "required": [
          "name",
          "creditLimit",
          "statementBalance"
        ]
      },
      "description": "The person's revolving credit accounts. Ask for limit, statement balance, and statement closing date per card — those three drive everything."
    },
    "today": {
      "description": "Today's date in the person's local timezone, yyyy-mm-dd. Pass it — the server otherwise falls back to UTC, which is a day ahead for Canadian evenings.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "count": {
      "description": "How many events to return. Default 8.",
      "type": "integer",
      "minimum": 1,
      "maximum": 30
    }
  },
  "required": [
    "cards"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "pay_by",
              "statement_close",
              "payment_due"
            ]
          },
          "accountName": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "daysAway": {
            "type": "number"
          }
        },
        "required": [
          "date",
          "kind",
          "accountName",
          "label",
          "amount",
          "daysAway"
        ],
        "additionalProperties": false
      }
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "events",
    "assumptions",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢simulate_paydown(cards, cardName, amount, today)

Use this when someone asks what happens if they pay a particular amount, or wants to compare two amounts. Returns a what-if for a specific payment on a specific card before it closes: reported utilization before and after, per card and blended. No score change is predicted. It is a calculation only; no payment is made. Calculates scenarios from supplied figures; does not make payments, change accounts, fetch external data, or retain tool inputs.

輸入結構描述

{
  "type": "object",
  "properties": {
    "cards": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "What the person calls this card, e.g. \"TD Cash Back Visa\" or \"the blue one\"."
          },
          "creditLimit": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Credit limit in CAD. Use 0 for a charge card or any account with no set limit — it is then excluded from utilization."
          },
          "statementBalance": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Balance at the most recent statement close. This is the figure the issuer reported, and the one utilization is read from. If only today's balance is known, pass it here and say so."
          },
          "currentBalance": {
            "description": "Today's balance, if it differs from the statement balance. Defaults to statementBalance.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "statementCloseDate": {
            "description": "The day the NEXT statement closes — the date the engine targets. Found on a statement or in online banking. If omitted, a placeholder 30 days out is assumed and flagged.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dueDate": {
            "description": "Payment due date for the current statement. Defaults to 21 days after the closing date.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "minimumPayment": {
            "description": "The issuer's minimum payment. Omit if unknown — do not pass 0 to mean unknown.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "aprPercent": {
            "description": "Purchase APR as a percentage, e.g. 19.99. Omit when unknown. Never pass 0 to mean unknown — 0 is a real interest-free rate and cost estimates would understate what a balance costs.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "isOverdue": {
            "description": "True if a payment is past due right now.",
            "type": "boolean"
          },
          "last4": {
            "description": "Last four digits, only to tell two similar cards apart. Optional and never required.",
            "type": "string",
            "maxLength": 4
          }
        },
        "required": [
          "name",
          "creditLimit",
          "statementBalance"
        ]
      },
      "description": "The person's revolving credit accounts. Ask for limit, statement balance, and statement closing date per card — those three drive everything."
    },
    "cardName": {
      "type": "string",
      "maxLength": 80,
      "description": "Which card the payment goes on. Partial names are matched."
    },
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 100000000,
      "description": "Payment amount in CAD, posting before that card's statement closes."
    },
    "today": {
      "description": "Today's date in the person's local timezone, yyyy-mm-dd. Pass it — the server otherwise falls back to UTC, which is a day ahead for Canadian evenings.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "cards",
    "cardName",
    "amount"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "cardName": {
      "type": "string"
    },
    "amount": {
      "type": "number"
    },
    "cardUtilizationBefore": {
      "type": "number"
    },
    "cardUtilizationAfter": {
      "type": "number"
    },
    "cardBandBefore": {
      "type": "string",
      "enum": [
        "good",
        "elevated",
        "high"
      ]
    },
    "cardBandAfter": {
      "type": "string",
      "enum": [
        "good",
        "elevated",
        "high"
      ]
    },
    "blendedBefore": {
      "type": "number"
    },
    "blendedAfter": {
      "type": "number"
    },
    "payBeforeDate": {
      "type": "string"
    },
    "forecast": {
      "type": "null",
      "description": "No validated score prediction is available."
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "cardName",
    "amount",
    "cardUtilizationBefore",
    "cardUtilizationAfter",
    "cardBandBefore",
    "cardBandAfter",
    "blendedBefore",
    "blendedAfter",
    "payBeforeDate",
    "forecast",
    "assumptions",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢compare_cards_for_purchase(cards, amount, targetUtilization)

Use this when someone asks which card to put a purchase on. Returns two answers for the amount given: the card that reports the least utilization impact, the card that is cheapest to carry, and the trade-off when those differ, because the card the bureaus notice least is often not the card with the lowest rate. Calculates scenarios from supplied figures; does not make payments, change accounts, fetch external data, or retain tool inputs.

輸入結構描述

{
  "type": "object",
  "properties": {
    "cards": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "What the person calls this card, e.g. \"TD Cash Back Visa\" or \"the blue one\"."
          },
          "creditLimit": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Credit limit in CAD. Use 0 for a charge card or any account with no set limit — it is then excluded from utilization."
          },
          "statementBalance": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Balance at the most recent statement close. This is the figure the issuer reported, and the one utilization is read from. If only today's balance is known, pass it here and say so."
          },
          "currentBalance": {
            "description": "Today's balance, if it differs from the statement balance. Defaults to statementBalance.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "statementCloseDate": {
            "description": "The day the NEXT statement closes — the date the engine targets. Found on a statement or in online banking. If omitted, a placeholder 30 days out is assumed and flagged.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dueDate": {
            "description": "Payment due date for the current statement. Defaults to 21 days after the closing date.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "minimumPayment": {
            "description": "The issuer's minimum payment. Omit if unknown — do not pass 0 to mean unknown.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "aprPercent": {
            "description": "Purchase APR as a percentage, e.g. 19.99. Omit when unknown. Never pass 0 to mean unknown — 0 is a real interest-free rate and cost estimates would understate what a balance costs.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "isOverdue": {
            "description": "True if a payment is past due right now.",
            "type": "boolean"
          },
          "last4": {
            "description": "Last four digits, only to tell two similar cards apart. Optional and never required.",
            "type": "string",
            "maxLength": 4
          }
        },
        "required": [
          "name",
          "creditLimit",
          "statementBalance"
        ]
      },
      "description": "The person's revolving credit accounts. Ask for limit, statement balance, and statement closing date per card — those three drive everything."
    },
    "amount": {
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 100000000,
      "description": "Purchase amount in CAD."
    },
    "targetUtilization": {
      "description": "Target utilization as a decimal. Defaults to 0.29 — one point under the 30% band.",
      "type": "number",
      "minimum": 0.01,
      "maximum": 0.95
    }
  },
  "required": [
    "cards",
    "amount"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "amount": {
      "type": "number"
    },
    "blendedBefore": {
      "type": "number"
    },
    "bestForReporting": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "utilizationAfter": {
              "type": "number"
            },
            "bandAfter": {
              "type": "string",
              "enum": [
                "good",
                "elevated",
                "high"
              ]
            },
            "blendedAfter": {
              "type": "number"
            },
            "crossesBandUp": {
              "type": "boolean"
            },
            "remainingHeadroom": {
              "type": "number"
            },
            "aprBps": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "required": [
            "name",
            "utilizationAfter",
            "bandAfter",
            "blendedAfter",
            "crossesBandUp",
            "remainingHeadroom",
            "aprBps"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "cheapestToCarry": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "aprBps": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "monthsAtMinimum": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "totalInterestAtMinimum": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "neverShrinksAtMinimum": {
              "type": "boolean"
            }
          },
          "required": [
            "name",
            "aprBps",
            "monthsAtMinimum",
            "totalInterestAtMinimum",
            "neverShrinksAtMinimum"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "optionsDisagree": {
      "type": "boolean"
    },
    "noCardFits": {
      "type": "boolean"
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "amount",
    "blendedBefore",
    "bestForReporting",
    "cheapestToCarry",
    "optionsDisagree",
    "noCardFits",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_credit_plan(cards, goal, today, targetUtilization)

Use this when someone wants more than the next single action. Returns an ordered plan for one of three goals: raise_score, pay_down_balances, or build_credit. Safety steps come first (anything overdue, then imminent minimums), then goal steps, each with the specific action, the mechanism behind it, and a date. The plan is returned as text and structured data for the person to act on themselves; nothing is scheduled or executed. Calculates scenarios from supplied figures; does not make payments, change accounts, fetch external data, or retain tool inputs.

輸入結構描述

{
  "type": "object",
  "properties": {
    "cards": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "What the person calls this card, e.g. \"TD Cash Back Visa\" or \"the blue one\"."
          },
          "creditLimit": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Credit limit in CAD. Use 0 for a charge card or any account with no set limit — it is then excluded from utilization."
          },
          "statementBalance": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Balance at the most recent statement close. This is the figure the issuer reported, and the one utilization is read from. If only today's balance is known, pass it here and say so."
          },
          "currentBalance": {
            "description": "Today's balance, if it differs from the statement balance. Defaults to statementBalance.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "statementCloseDate": {
            "description": "The day the NEXT statement closes — the date the engine targets. Found on a statement or in online banking. If omitted, a placeholder 30 days out is assumed and flagged.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dueDate": {
            "description": "Payment due date for the current statement. Defaults to 21 days after the closing date.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "minimumPayment": {
            "description": "The issuer's minimum payment. Omit if unknown — do not pass 0 to mean unknown.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "aprPercent": {
            "description": "Purchase APR as a percentage, e.g. 19.99. Omit when unknown. Never pass 0 to mean unknown — 0 is a real interest-free rate and cost estimates would understate what a balance costs.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "isOverdue": {
            "description": "True if a payment is past due right now.",
            "type": "boolean"
          },
          "last4": {
            "description": "Last four digits, only to tell two similar cards apart. Optional and never required.",
            "type": "string",
            "maxLength": 4
          }
        },
        "required": [
          "name",
          "creditLimit",
          "statementBalance"
        ]
      },
      "description": "The person's revolving credit accounts. Ask for limit, statement balance, and statement closing date per card — those three drive everything."
    },
    "goal": {
      "type": "string",
      "enum": [
        "raise_score",
        "pay_down_balances",
        "build_credit"
      ],
      "description": "Which goal to plan for."
    },
    "today": {
      "description": "Today's date in the person's local timezone, yyyy-mm-dd. Pass it — the server otherwise falls back to UTC, which is a day ahead for Canadian evenings.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "targetUtilization": {
      "description": "Target utilization as a decimal. Defaults to 0.29 — one point under the 30% band.",
      "type": "number",
      "minimum": 0.01,
      "maximum": 0.95
    }
  },
  "required": [
    "cards",
    "goal"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "goal": {
      "type": "string"
    },
    "generatedForDate": {
      "type": "string"
    },
    "steps": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string"
          },
          "action": {
            "type": "string"
          },
          "why": {
            "type": "string"
          },
          "dueByDate": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "amount": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "null"
              }
            ]
          },
          "kind": {
            "type": "string",
            "enum": [
              "payment",
              "habit",
              "monitor"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "done",
              "current",
              "upcoming",
              "ongoing"
            ]
          },
          "accountName": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "forecast": {
            "type": "null",
            "description": "No validated score prediction is available."
          }
        },
        "required": [
          "title",
          "action",
          "why",
          "dueByDate",
          "amount",
          "kind",
          "status",
          "accountName",
          "forecast"
        ],
        "additionalProperties": false
      }
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "goal",
    "generatedForDate",
    "steps",
    "assumptions",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢calculate_payoff_timeline(cards, cardName, monthlyPayment, today)

Use this for "if I pay $200 a month, when is this paid off?" or "what happens if I only pay the minimum?". Returns how long a card takes to clear at a fixed monthly payment and the interest paid over that time. This is a cost question, not a reporting one: it does not change what the bureaus see, so use get_reported_snapshot or simulate_paydown for that. Requires the card's purchase APR; without it no timeline is returned, because the rate decides the answer. Calculates scenarios from supplied figures; does not make payments, change accounts, fetch external data, or retain tool inputs.

輸入結構描述

{
  "type": "object",
  "properties": {
    "cards": {
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "What the person calls this card, e.g. \"TD Cash Back Visa\" or \"the blue one\"."
          },
          "creditLimit": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Credit limit in CAD. Use 0 for a charge card or any account with no set limit — it is then excluded from utilization."
          },
          "statementBalance": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Balance at the most recent statement close. This is the figure the issuer reported, and the one utilization is read from. If only today's balance is known, pass it here and say so."
          },
          "currentBalance": {
            "description": "Today's balance, if it differs from the statement balance. Defaults to statementBalance.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "statementCloseDate": {
            "description": "The day the NEXT statement closes — the date the engine targets. Found on a statement or in online banking. If omitted, a placeholder 30 days out is assumed and flagged.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dueDate": {
            "description": "Payment due date for the current statement. Defaults to 21 days after the closing date.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "minimumPayment": {
            "description": "The issuer's minimum payment. Omit if unknown — do not pass 0 to mean unknown.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "aprPercent": {
            "description": "Purchase APR as a percentage, e.g. 19.99. Omit when unknown. Never pass 0 to mean unknown — 0 is a real interest-free rate and cost estimates would understate what a balance costs.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "isOverdue": {
            "description": "True if a payment is past due right now.",
            "type": "boolean"
          },
          "last4": {
            "description": "Last four digits, only to tell two similar cards apart. Optional and never required.",
            "type": "string",
            "maxLength": 4
          }
        },
        "required": [
          "name",
          "creditLimit",
          "statementBalance"
        ]
      },
      "description": "The person's revolving credit accounts. Ask for limit, statement balance, and statement closing date per card — those three drive everything."
    },
    "cardName": {
      "type": "string",
      "maxLength": 80,
      "description": "Which card to pay off. Partial names are matched."
    },
    "monthlyPayment": {
      "description": "Fixed amount paid each month in CAD. Omit to use the card's minimum payment, if one was supplied.",
      "type": "number",
      "exclusiveMinimum": 0,
      "maximum": 100000000
    },
    "today": {
      "description": "Today's date in the person's local timezone, yyyy-mm-dd. Pass it — the server otherwise falls back to UTC, which is a day ahead for Canadian evenings.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "required": [
    "cards",
    "cardName"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "cardName": {
      "type": "string"
    },
    "balance": {
      "type": "number"
    },
    "aprBps": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "monthlyPayment": {
      "type": "number"
    },
    "months": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "totalInterest": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "neverShrinks": {
      "type": "boolean"
    },
    "aprUnknown": {
      "type": "boolean"
    },
    "atMinimum": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "monthlyPayment": {
              "type": "number"
            },
            "months": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "totalInterest": {
              "anyOf": [
                {
                  "type": "number"
                },
                {
                  "type": "null"
                }
              ]
            },
            "neverShrinks": {
              "type": "boolean"
            }
          },
          "required": [
            "monthlyPayment",
            "months",
            "totalInterest",
            "neverShrinks"
          ],
          "additionalProperties": false
        },
        {
          "type": "null"
        }
      ]
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "cardName",
    "balance",
    "aprBps",
    "monthlyPayment",
    "months",
    "totalInterest",
    "neverShrinks",
    "aprUnknown",
    "atMinimum",
    "assumptions",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢estimate_close_card_impact(cards, cardName, today)

Use this for "should I cancel the credit card I never use", "is it bad to close a card", or any question about cancelling, downgrading, or consolidating cards. It does not close, cancel, or change any card; it only explains and calculates. With no card figures it returns general closure considerations and retention information. Supply figures for a hypothetical paid-off closure calculation. Supply cards and cardName as well and it additionally computes the exact utilization before and after, the limit leaving the denominator, and whether it crosses a band upward. Calculates scenarios from supplied figures; does not make payments, change accounts, fetch external data, or retain tool inputs.

輸入結構描述

{
  "type": "object",
  "properties": {
    "cards": {
      "description": "The person's cards, if they have given them. Omit to get the mechanics and the Canadian rules without any numbers.",
      "minItems": 1,
      "maxItems": 25,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80,
            "description": "What the person calls this card, e.g. \"TD Cash Back Visa\" or \"the blue one\"."
          },
          "creditLimit": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Credit limit in CAD. Use 0 for a charge card or any account with no set limit — it is then excluded from utilization."
          },
          "statementBalance": {
            "type": "number",
            "minimum": 0,
            "maximum": 100000000,
            "description": "Balance at the most recent statement close. This is the figure the issuer reported, and the one utilization is read from. If only today's balance is known, pass it here and say so."
          },
          "currentBalance": {
            "description": "Today's balance, if it differs from the statement balance. Defaults to statementBalance.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "statementCloseDate": {
            "description": "The day the NEXT statement closes — the date the engine targets. Found on a statement or in online banking. If omitted, a placeholder 30 days out is assumed and flagged.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dueDate": {
            "description": "Payment due date for the current statement. Defaults to 21 days after the closing date.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "minimumPayment": {
            "description": "The issuer's minimum payment. Omit if unknown — do not pass 0 to mean unknown.",
            "type": "number",
            "minimum": 0,
            "maximum": 100000000
          },
          "aprPercent": {
            "description": "Purchase APR as a percentage, e.g. 19.99. Omit when unknown. Never pass 0 to mean unknown — 0 is a real interest-free rate and cost estimates would understate what a balance costs.",
            "type": "number",
            "minimum": 0,
            "maximum": 100
          },
          "isOverdue": {
            "description": "True if a payment is past due right now.",
            "type": "boolean"
          },
          "last4": {
            "description": "Last four digits, only to tell two similar cards apart. Optional and never required.",
            "type": "string",
            "maxLength": 4
          }
        },
        "required": [
          "name",
          "creditLimit",
          "statementBalance"
        ]
      }
    },
    "cardName": {
      "description": "The card being considered for closure. Partial names are matched. Only meaningful alongside cards.",
      "type": "string",
      "maxLength": 80
    },
    "today": {
      "description": "Today's date in the person's local timezone, yyyy-mm-dd. Pass it — the server otherwise falls back to UTC, which is a day ahead for Canadian evenings.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "computed": {
      "type": "boolean"
    },
    "cardName": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "limitRemoved": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "balanceOnCard": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "blendedBefore": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "blendedAfter": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "bandBefore": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "good",
            "elevated",
            "high"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "bandAfter": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "good",
            "elevated",
            "high"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "crossesBandUp": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ]
    },
    "remainingLimit": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "isOnlyRevolvingAccount": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ]
    },
    "alwaysTrue": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "assumptions": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "computed",
    "cardName",
    "limitRemoved",
    "balanceOnCard",
    "blendedBefore",
    "blendedAfter",
    "bandBefore",
    "bandAfter",
    "crossesBandUp",
    "remainingLimit",
    "isOnlyRevolvingAccount",
    "alwaysTrue",
    "assumptions",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢explain_canadian_credit_mechanics(topic)

Use this for a requested explanation of Canadian credit scores, reports, utilization, or reporting timing. Returns the Canada-specific mechanics of credit reporting, each entry leading with the correction to the common United States-based answer: the 300-900 scale and two-bureau market, statement-close versus due-date reporting, provincial rather than federal regulation, soft pulls and free-report rights, how utilization is read, and why open banking does not open up bureau data. Returns bundled reference material, optionally filtered or calculated from inputs; does not fetch live data or change accounts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "topic": {
      "description": "A single topic id. Omit to get all of them.",
      "type": "string",
      "enum": [
        "statement_close_vs_due_date",
        "scores_and_scale",
        "checking_your_own_file",
        "regulation",
        "open_banking",
        "utilization"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "asOf": {
      "type": "string"
    },
    "topics": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "correction": {
            "type": "string"
          },
          "detail": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "title",
          "correction",
          "detail",
          "sources"
        ],
        "additionalProperties": false
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "asOf",
    "topics",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢get_newcomer_credit_path(homeCountry, monthsInCanada)

Use this for any question about building credit as an immigrant, newcomer, international student, or temporary resident in Canada. Returns the ordered path for someone new to Canada: what to do before a SIN arrives, whether their home-country history can be imported and at which banks, how to get a first tradeline, and what accumulates after that. Supply the home country for a specific answer on credit import; coverage is partial, and several of the largest source countries for Canadian newcomers are not covered at all. Returns bundled reference material, optionally filtered or calculated from inputs; does not fetch live data or change accounts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "homeCountry": {
      "description": "Country the person is arriving from, in English. Determines whether the credit-import route is open.",
      "type": "string",
      "maxLength": 80
    },
    "monthsInCanada": {
      "description": "Roughly how long they have been in Canada, to focus the answer on the relevant phase.",
      "type": "integer",
      "minimum": 0,
      "maximum": 120
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "asOf": {
      "type": "string"
    },
    "creditImport": {
      "type": "object",
      "properties": {
        "homeCountry": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "covered": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ]
        },
        "explanation": {
          "type": "string"
        },
        "banksWithIntegration": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "knownGaps": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      },
      "required": [
        "homeCountry",
        "covered",
        "explanation",
        "banksWithIntegration",
        "knownGaps"
      ],
      "additionalProperties": false
    },
    "steps": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "phase": {
            "type": "string"
          },
          "window": {
            "type": "string"
          },
          "action": {
            "type": "string"
          },
          "mechanism": {
            "type": "string"
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "focus": {
            "type": "boolean"
          }
        },
        "required": [
          "phase",
          "window",
          "action",
          "mechanism",
          "notes",
          "focus"
        ],
        "additionalProperties": false
      }
    },
    "bankPrograms": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "bank": {
            "type": "string"
          },
          "program": {
            "type": "string"
          },
          "novaCredit": {
            "type": "boolean"
          },
          "notes": {
            "type": "string"
          }
        },
        "required": [
          "bank",
          "program",
          "novaCredit",
          "notes"
        ],
        "additionalProperties": false
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "asOf",
    "creditImport",
    "steps",
    "bankPrograms",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢list_credit_building_products(tier)

Use this to retrieve dated reference examples of Canadian secured cards and credit-building products. Confirm current terms and reporting arrangements with the provider. Returns the products available in Canada, grouped by how established they are, with which bureau each reports to. Single-bureau reporting is the detail most often missed: several well-known products report to Equifax only, which leaves the TransUnion file empty. Also flags the warning signs on upfront-fee credit repair and advertised-certainty lending. Returns bundled reference material, optionally filtered or calculated from inputs; does not fetch live data or change accounts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "tier": {
      "description": "Filter to one credibility tier. Omit for all.",
      "type": "string",
      "enum": [
        "established",
        "legitimate_but_costly",
        "treat_with_caution"
      ]
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "asOf": {
      "type": "string"
    },
    "products": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "reportsTo": {
            "type": "string"
          },
          "tier": {
            "type": "string"
          },
          "notes": {
            "type": "string"
          },
          "url": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "name",
          "kind",
          "reportsTo",
          "tier",
          "notes",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "caveat": {
      "type": "string"
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "asOf",
    "products",
    "caveat",
    "sources",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢describe_credit_gps

Use this when someone asks what Credit GPS is, who made this, whether their data is stored, or why an answer stopped short. Also explains how to obtain free Canadian bureau reports and manually enter their figures in the Credit GPS application for score tracking. This tool provides instructions; it cannot save entries or retrieve score history. Returns bundled reference material, optionally filtered or calculated from inputs; does not fetch live data or change accounts.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "what": {
      "type": "string"
    },
    "privacy": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "limits": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "product": {
      "type": "string"
    },
    "manualReportGuide": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "what",
    "privacy",
    "limits",
    "product",
    "manualReportGuide",
    "sources",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢find_statement_close_date(dueDate, issuer)

Use this whenever someone does not know their statement closing date, or gives a payment due date and asks what to pay. Returns the ways to find the closing date of a Canadian credit card, the date every other tool here depends on and the one most people have never been shown. Give a payment due date and it also derives an estimate, because federally regulated issuers must allow at least a 21-day interest-free grace period measured from the close. It looks nothing up on any account; the estimate is arithmetic on the date supplied. Returns bundled reference material, optionally filtered or calculated from inputs; does not fetch live data or change accounts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "dueDate": {
      "description": "A known payment due date, yyyy-mm-dd. Supplying it produces a derived estimate of the closing date.",
      "type": "string",
      "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
    },
    "issuer": {
      "description": "The issuer, if known, e.g. \"TD\". Only used to tailor the wording — there is no per-issuer date table, because none is published.",
      "type": "string",
      "maxLength": 80
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "asOf": {
      "type": "string"
    },
    "derivedCloseDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "derivedFromDueDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ]
    },
    "graceDays": {
      "type": "number"
    },
    "methods": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "reliability": {
            "type": "string"
          },
          "steps": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "id",
          "title",
          "reliability",
          "steps",
          "sources"
        ],
        "additionalProperties": false
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "asOf",
    "derivedCloseDate",
    "derivedFromDueDate",
    "graceDays",
    "methods",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢explain_when_issuers_report

Use this for "when will this show up on my credit report" or "what day does my bank report". Returns how the monthly reporting cadence works in Canada, how long a change takes to appear on a file, and why an Equifax file and a TransUnion file for the same person differ. This bundled reference has no verified per-issuer transmission calendar and returns no exact reporting day. Returns bundled reference material, optionally filtered or calculated from inputs; does not fetch live data or change accounts.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "asOf": {
      "type": "string"
    },
    "general": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "notPublished": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "asOf",
    "general",
    "notPublished",
    "sources",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢explain_missed_payment(daysPastDue)

Use this for a missed, late, or nearly-late payment, or for "how long will this hurt me". Returns what happens when a Canadian credit card payment is missed: the roughly 30-day gap before it is reported at all, the Canadian R1-R9 rating scale a tradeline actually carries, and how long a reported late payment stays on the file. The Canadian answer differs from the American one on both the scale and the duration, and the 30-day gap is frequently actionable, because a payment caught inside it often never reaches the file. Returns bundled reference material, optionally filtered or calculated from inputs; does not fetch live data or change accounts.

輸入結構描述

{
  "type": "object",
  "properties": {
    "daysPastDue": {
      "description": "How many days past the due date the payment is, if known. Changes which part of the answer leads.",
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    }
  },
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "asOf": {
      "type": "string"
    },
    "daysPastDue": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ]
    },
    "withinReportingWindow": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ]
    },
    "threshold": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "ratingScale": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "afterwards": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "asOf",
    "daysPastDue",
    "withinReportingWindow",
    "threshold",
    "ratingScale",
    "afterwards",
    "sources",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}
🟢explain_retention_periods

Use this for any "how long will this stay on my credit report" question. Returns retention periods on a Canadian credit file: closed accounts, late payments, collections, hard inquiries, bankruptcy, consumer proposals, judgments. Durations differ by information type, bureau, and province. Returns those distinctions and source links. Returns bundled reference material, optionally filtered or calculated from inputs; does not fetch live data or change accounts.

輸入結構描述

{
  "type": "object",
  "properties": {},
  "$schema": "http://json-schema.org/draft-07/schema#"
}

輸出結構描述

{
  "type": "object",
  "properties": {
    "asOf": {
      "type": "string"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "item": {
            "type": "string"
          },
          "duration": {
            "type": "string"
          },
          "differsFromUs": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "item",
          "duration",
          "differsFromUs",
          "sources"
        ],
        "additionalProperties": false
      }
    },
    "caveat": {
      "type": "string"
    },
    "disclosure": {
      "type": "string"
    }
  },
  "required": [
    "asOf",
    "items",
    "caveat",
    "disclosure"
  ],
  "$schema": "http://json-schema.org/draft-07/schema#",
  "additionalProperties": false
}

建議的提示詞

retrieve_data
Get details about [item] from Credit GPS — Canadian credit
預期的工具: get_next_move
fetch_info
Fetch [information type] using Credit GPS — Canadian credit
預期的工具: get_next_move
search_research
Search for information about [topic] using Credit GPS — Canadian credit
預期的工具: find_statement_close_date
find_specific
Find [specific item] using Credit GPS — Canadian credit
預期的工具: find_statement_close_date
list_items
List all [items] available in Credit GPS — Canadian credit
預期的工具: list_credit_building_products

社群

為此伺服器評分

證據

近期觀測

已驗證未記錄版本16 個工具
已驗證未記錄版本16 個工具