Skip to main content
Glama

finance

Profile: Update user preferences

update_user_preferences
    Update user preferences. Only provided fields are changed.

    Args:
        theme: Color theme (light, dark, emerald_banking, frost_glass, carbon)
        currency: Currency code. USD only — multi-currency is disabled
            pre-launch, so any other value is rejected (matches the web
            form + REST serializer, which omit/lock the field).
        notify_budget_alerts: Enable budget alert notifications
        notify_bill_reminders: Enable bill reminder notifications
        notify_large_transactions: Enable large transaction notifications
        notify_weekly_summary: Enable weekly summary emails
        notify_balance_alerts: Enable Plaid balance-mismatch alert
            notifications (off by default — the dashboard badge is the
            default signal)
        notify_debt_payments: Enable the monthly debt-strategy payment
            reminder (requires a saved debt_strategy to fire)
        notify_daily_brief_email: Email the agent's morning brief to the
            user's inbox (the brief appears in the app thread either
            way; this toggles the email copy only)
        notify_urgent_alert_email: Email overdraft and bank-fee alerts
            the moment the bank reports them (on by default; the alert
            appears in the app thread either way)
        notify_family_alerts: Receive in-app alerts + the family brief
            about accounts a family member shared with the user
            (elder-care; on by default, receiver-side opt-out)
        notify_family_brief_email: Email the family brief (off by
            default; alerts keep appearing in the app either way)
        show_profile_picture: Show profile picture in forum
        show_real_name: Show real name in forum
        show_level: Show level badge in forum
        show_badges: Show earned badges in forum
        debt_strategy: Save the user's debt-paydown "my plan" strategy — one
            of minimum_payments, snowball, variable_snowball, highest_rate,
            highest_balance, highest_payment, cashflow_index, npv,
            max_interest_savings. Pass "" to clear it. This drives the
            dashboard debt-payoff card + the strategy reminder. Free plans are
            limited to the lower-tier strategies (Premium-only ones rejected).
        debt_extra_monthly_payment: Extra $/month applied on top of minimums
            in the paydown plan (0 or positive).

    Returns:
        Updated preferences (including debt_strategy + debt_extra_monthly_payment)
    

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "update_user_preferences"
  }
}

Input Schema

NameRequiredDescriptionDefault
themeNo
currencyNo
show_levelNo
show_badgesNo
debt_strategyNo
show_real_nameNo
notify_budget_alertsNo
notify_debt_paymentsNo
notify_family_alertsNo
show_profile_pictureNo
notify_balance_alertsNo
notify_bill_remindersNo
notify_weekly_summaryNo
notify_daily_brief_emailNo
notify_family_brief_emailNo
notify_large_transactionsNo
notify_urgent_alert_emailNo
debt_extra_monthly_paymentNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / notify_urgent_alert_email
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null,
      +  "title": "Notify Urgent Alert Email"
      +}
  2. First observed

TDQS

A4/5.0
Behavior4/5

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

Goes well beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false) by disclosing validation rules: currency 'USD only … any other value is rejected', premium-tier gating on debt_strategy with lower-tier-only for free plans, and '' clears debt_strategy. It also notes that several toggles default off/on and that in-app alerts appear regardless of the email toggle. It does not state auth/scope requirements (whose preferences are updated), which is the remaining behavioral gap.

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?

Front-loaded with the two most important facts (what it does, partial-update semantics) before the field-by-field Args block. The length is justified by 18 undocumented parameters, but a few entries (notify_balance_alerts, notify_urgent_alert_email) carry default/behavioral prose in parentheses that could be tighter.

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 an 18-parameter, no-required-fields mutation with no output schema, the description supplies per-field semantics, rejection conditions, plan gating, and even a Returns note ('Updated preferences including debt_strategy + debt_extra_monthly_payment'). What it lacks is scope/auth context — whether this edits only the caller's own preferences and whether permission levels matter — which for a mutation tool is a meaningful omission.

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 full burden, and it documents essentially all 18 parameters with meaning beyond the schema: enumerated theme values, currency restriction, the default state and firing conditions of each notification toggle (e.g. debt payments requires a saved debt_strategy), the full debt_strategy enum plus clearing semantics, and the constraint that debt_extra_monthly_payment be 0 or positive. This materially exceeds the bare typed properties in the schema.

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 specific verb+resource (update user preferences) and immediately clarifies the partial-update contract: 'Only provided fields are changed.' It is distinguishable from get_user_preferences (read) and update_user_profile (profile fields) by the preference-oriented field list, though it never names those siblings explicitly.

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

Usage Guidelines3/5

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

Usage is implied by the field semantics (notifications, forum visibility, debt strategy), but there is no explicit guidance on when to call this vs. update_user_profile, nor on prerequisites such as whether it targets the calling user or requires an authenticated session. The per-field notes give context but not routing.

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