Skip to main content
Glama

finance

Accounts: Update account

update_account
    Update an existing financial account.

    Args:
        account_id: The account ID to update
        name: New account name (optional)
        account_type: New account type (optional). One of: checking, savings,
            cash, credit_card, loan, mortgage, student_loan, heloc, arm,
            investment, other_asset, other_debt
        balance: New balance amount (optional, use with caution)
        institution: New institution name (optional)
        currency: New currency code. App is locked to USD pre-launch — any
            other value is rejected. (See docs/CURRENCY_RESTORE_TODO.md.)
        is_active: Set account active/inactive (optional)
        interest_rate: New interest rate for debt accounts (optional)
        credit_limit: New credit limit for credit cards (optional)
        minimum_payment: New minimum payment for debt accounts (optional)
        term_months: Original loan term in months (optional)
        loan_start_date: Loan origination date YYYY-MM-DD (optional)
        loan_end_date: Loan payoff target date YYYY-MM-DD (optional)
        original_balance: Original loan amount when first taken out (optional)
        monthly_escrow_tax: Monthly property tax escrow, mortgage only (optional)
        monthly_escrow_insurance: Monthly insurance escrow, mortgage only (optional)
        draw_period_months: HELOC draw-phase duration in months (optional)
        draw_amount_per_month: HELOC monthly draw amount (optional)
        rate_2: 2nd-term rate as percentage, HELOC/ARM (optional)
        term_2_months: 2nd-term duration in months, HELOC/ARM (optional)
        arm_initial_period_months: ARM fixed-rate period in months (optional)
        include_in_debt_paydown: Include this debt in the payoff calculator
            and dashboard payoff card (optional). Set False for a debt you
            pay in full each month so it doesn't distort the plan; does NOT
            affect net worth, total debt, or the balance sheet.
        low_balance_alert_threshold: Per-account low-balance alert
            threshold in dollars — "alert me when this account drops below
            $X" (checking/savings/cash). Overrides the monitoring plan's
            global threshold for this account only.
        clear_low_balance_threshold: Set True to remove a per-account
            threshold and fall back to the plan's global default.
        mute_low_balance_alerts: True = no low-balance alerts on this
            account (daily brief + notifications) — "stop reminding me,
            I know this account is low". False = re-enable alerts.
        institution_login_url: Where the user logs in at this institution
            (https only, e.g. "https://chase.com"; bare domains are
            normalized to https). An empty string removes the link. Intended
            for a URL the user provided, not a guessed or invented one.

    Returns:
        Updated account details
    

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameNo
rate_2No
balanceNo
currencyNo
is_activeNo
account_idYes
institutionNo
term_monthsNo
account_typeNo
credit_limitNo
interest_rateNo
loan_end_dateNo
term_2_monthsNo
loan_start_dateNo
minimum_paymentNo
original_balanceNo
draw_period_monthsNo
monthly_escrow_taxNo
draw_amount_per_monthNo
institution_login_urlNo
include_in_debt_paydownNo
mute_low_balance_alertsNo
monthly_escrow_insuranceNo
arm_initial_period_monthsNo
clear_low_balance_thresholdNo
low_balance_alert_thresholdNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations declaring a non-idempotent, non-destructive write, the description adds real behavioral context beyond them: non-USD currency is rejected pre-launch, institution_login_url is https-only and normalizes bare domains, empty string removes the link, and include_in_debt_paydown explicitly does NOT affect net worth/total debt/balance sheet. The 'use with caution' on balance is vague, and idempotency behavior isn't addressed, keeping it from a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, and the parameter block is dense but every line adds needed meaning given 0% schema coverage. The Python 'Args:'/'Returns:' docstring framing and an internal file reference (docs/CURRENCY_RESTORE_TODO.md) are minor formatting leaks rather than wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 26-parameter mutation with no output schema and minimal annotation detail, the description covers every input precisely and states the return ('Updated account details'). The only thinness is the terse return statement and lack of any error/permission behavior, but the input surface is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the entire burden — and it documents all 26 parameters with meaning beyond names: enum values for account_type, YYYY-MM-DD formats for loan dates, 'mortgage only' scoping for escrow fields, HELOC/ARM scoping for second-term fields, and behavioral semantics for the threshold/alert parameters (override vs global default, clear vs set). This is exactly the compensation the low coverage requires.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a clear verb+resource: 'Update an existing financial account.' An agent immediately knows this mutates an account record. However, it does not distinguish itself from close siblings like override_account_balance, create_account, or update_account's relationship to them, so an agent must infer routing from names alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no tool-level when-to-use/when-not guidance and no named alternative, despite several plausible siblings (override_account_balance for balance edits, delete_account, reorder_accounts). The caution note on 'balance' hints at constraints but is not routing guidance. Usage must be inferred entirely from the parameter list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources