← The evidence ledger
Evidence row 218455
Observed , by probe.mcp/1.
- Kind
- mcp.tools
- About
- endpoint c37bbb32-1aa5-4c28-a4da-75387f588e7a
- Recorded
- Previous row
- None: the first of its kind about this subject
- Body SHA-256
- e7e5739581ad3b81aa171af1ead95b060992a47bbf16bab1330736c019beb70b
- Leaf
- 0x66b5ad6e6e323340a009a181e74cbf5a669ac5adfbfc97817e51f70d89860646
What was observed
{
"count": 4,
"tools": [
{
"description": "Project the cumulative cost of a fee list over 1-30 years by straight multiplication of each recurring fee's annualized amount, with one-time fees counted once (no compounding or inflation), with a per-fee breakdown. Use for 'what will these cost me over N years'. It does not flag fees: use audit_fees to find problem charges, benchmark_fees for typical ranges.",
"inputSchema": {
"properties": {
"fees": {
"description": "Non-empty list of fees to project, each {name, amount, frequency, category?}; category is accepted but not used here",
"items": {
"properties": {
"amount": {
"description": "Amount per charge in USD, greater than 0, e.g. 38 or 15.99 (for monthly fees, the monthly amount)",
"exclusiveMinimum": 0,
"type": "number"
},
"category": {
"description": "Optional benchmark category key (case-insensitive; spaces/hyphens become underscores). One of: bank_overdraft, bank_monthly_maintenance, atm_out_of_network, late_payment, gym_membership_monthly, streaming_monthly, airline_checked_bag, airline_seat_fee, ticket_convenience, rental_application, subscription_app_monthly, delivery_fee, airline_change_fee, hotel_resort_fee. Unknown keys are ignored for benchmarking and listed in audit_fees' note.",
"type": "string"
},
"frequency": {
"description": "How often the fee is charged: 'monthly' (x12 per year), 'annual' or 'one-time'",
"enum": [
"monthly",
"annual",
"one-time"
],
"type": "string"
},
"name": {
"description": "Fee label as it appears on the statement, e.g. 'Overdraft fee' or 'Netflix'",
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"amount",
"frequency"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"years": {
"description": "Number of years to project, integer 1-30; default 1",
"maximum": 30,
"minimum": 1,
"type": "integer"
}
},
"required": [
"fees"
],
"type": "object"
},
"name": "annual_cost"
},
{
"description": "Audit a list of fees: annualize each one (monthly x12), total the yearly cost and monthly average, and flag charges above the typical US range for their category, duplicate names and one-time fees of $30+ worth disputing. Use when the user lists fees to review. For a multi-year projection use annual_cost; for typical ranges alone use benchmark_fees.",
"inputSchema": {
"properties": {
"fees": {
"description": "Non-empty list of fees to audit, each {name, amount, frequency, category?}",
"items": {
"properties": {
"amount": {
"description": "Amount per charge in USD, greater than 0, e.g. 38 or 15.99 (for monthly fees, the monthly amount)",
"exclusiveMinimum": 0,
"type": "number"
},
"category": {
"description": "Optional benchmark category key (case-insensitive; spaces/hyphens become underscores). One of: bank_overdraft, bank_monthly_maintenance, atm_out_of_network, late_payment, gym_membership_monthly, streaming_monthly, airline_checked_bag, airline_seat_fee, ticket_convenience, rental_application, subscription_app_monthly, delivery_fee, airline_change_fee, hotel_resort_fee. Unknown keys are ignored for benchmarking and listed in audit_fees' note.",
"type": "string"
},
"frequency": {
"description": "How often the fee is charged: 'monthly' (x12 per year), 'annual' or 'one-time'",
"enum": [
"monthly",
"annual",
"one-time"
],
"type": "string"
},
"name": {
"description": "Fee label as it appears on the statement, e.g. 'Overdraft fee' or 'Netflix'",
"minLength": 1,
"type": "string"
}
},
"required": [
"name",
"amount",
"frequency"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"fees"
],
"type": "object"
},
"name": "audit_fees"
},
{
"description": "Look up typical US consumer fee ranges (min/max per charge, USD) for one category such as bank_overdraft, or the full 14-category table when category is omitted. Use to answer 'is this fee normal?' questions. To check a user's own list of fees against these ranges, use audit_fees.",
"inputSchema": {
"properties": {
"category": {
"description": "Category key (case-insensitive; spaces/hyphens become underscores), one of: bank_overdraft, bank_monthly_maintenance, atm_out_of_network, late_payment, gym_membership_monthly, streaming_monthly, airline_checked_bag, airline_seat_fee, ticket_convenience, rental_application, subscription_app_monthly, delivery_fee, airline_change_fee, hotel_resort_fee. Omit to get the full table; an unknown key returns an error listing valid keys.",
"type": "string"
}
},
"type": "object"
},
"name": "benchmark_fees"
},
{
"description": "Draft (text only; nothing is sent) a firm, polite letter asking a company to reverse or refund one specific fee, with grounds, a 14-day written-response request, an escalation path and sending tips. Use once the user has picked a fee to contest. To find which fees are worth disputing first, use audit_fees.",
"inputSchema": {
"properties": {
"account_reference": {
"description": "Optional account or reference number; prefer a masked form like '****1234'",
"type": "string"
},
"amount": {
"description": "Fee amount in USD, greater than 0, e.g. 38",
"exclusiveMinimum": 0,
"type": "number"
},
"company": {
"description": "Company or bank that charged the fee, e.g. 'First National Bank'",
"type": "string"
},
"date_charged": {
"description": "Optional date the fee was charged, free text, e.g. 2026-09-14",
"type": "string"
},
"fee_name": {
"description": "Name of the fee being disputed, e.g. 'Overdraft fee'",
"type": "string"
},
"reason": {
"description": "Optional grounds for the dispute; default cites an undisclosed/unexpected charge and asks for a courtesy reversal",
"type": "string"
},
"requested_action": {
"description": "What to ask the company to do, e.g. 'waive' or 'refund'; default 'reverse or refund'",
"type": "string"
},
"your_name": {
"description": "Account holder's full name, used in From and to sign the letter",
"type": "string"
}
},
"required": [
"fee_name",
"amount",
"company",
"your_name"
],
"type": "object"
},
"name": "dispute_letter"
}
]
}What the leaf hashes
{"body":"e7e5739581ad3b81aa171af1ead95b060992a47bbf16bab1330736c019beb70b","id":218455,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793026555870992,"prev":null,"subject":"c37bbb32-1aa5-4c28-a4da-75387f588e7a","subject_kind":"endpoint"}Proof
Its day has not closed yet. A day closes ten minutes after midnight UTC; the proof appears here then.