Skip to main content
Glama

Set a savings goal

set_budget_goal
Destructive

Propose creating or updating a budget goal (savings or spend-limit). Proposes only — awaiting confirmation. target_cents is MINOR units (cents): pass 300000 for a 3000.00 target, never a decimal. monthly_contribution_cents (optional) is also in minor units.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "ledger_id": "<ledger_id>",
      "goal_type": "<goal_type>",
      "name": "<name>",
      "target_cents": "<target_cents>",
      "start_month": "<start_month>"
    },
    "name": "set_budget_goal"
  }
}

Input Schema

NameRequiredDescriptionDefault
nameYesHuman-readable name for this goal.
periodNoGoal period. Defaults to 'monthly'.
goal_idNoIf updating an existing goal, supply its id.
categoryNoCategory slug/name for spend_limit goals. Call list_budget_categories if unsure.
goal_typeYesType of goal: 'savings' or 'spend_limit'.
ledger_idYes
start_monthYesStarting month as YYYY-MM.
target_dateNoOptional target completion date as ISO YYYY-MM-DD.
target_centsYesGoal target in minor units (cents). 300000 = 3000.00.
savings_source_categoryNoCategory slug/name whose net credits measure savings progress. Required for savings goals.
monthly_contribution_centsNoOptional planned monthly contribution in minor units (cents).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false and destructiveHint=true, and the description adds genuinely non-obvious behavior: the call only proposes a change and awaits confirmation, which matches the confirm_change/discard_change siblings. It does not explain the destructive side (e.g., whether supplying goal_id overwrites prior progress) or what a caller receives back, so it is strong but not complete.

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?

Three short sentences, front-loaded with purpose and the propose-only behavior, then the error-prone unit detail. Minor redundancy with the schema's own cent descriptions, but the repetition is defensible for a parameter that silently corrupts amounts by 100x if misread.

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

Completeness3/5

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

For an 11-parameter, 5-required destructive-flagged mutation with no output schema, coverage is thin around the confirmation handshake: the description never says what the proposal returns or which tool confirms it. It also omits the savings_source_category requirement for savings goals, leaving that entirely to the schema.

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

Parameters3/5

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

Schema description coverage is 91%, so the schema already documents units, patterns, and enums; the description's cent explanations largely restate the target_cents and monthly_contribution_cents schema text. The added value is the emphatic 'never a decimal' warning for a high-risk unit error, which is worth something but does not extend to the other nine parameters.

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?

The description opens with a specific verb+resource pair ('Propose creating or updating a budget goal') and scopes it to two goal types (savings or spend-limit), which separates it from siblings like set_category_budget, contribute_to_savings, and list_budget_goals. It is clear without naming those alternatives explicitly, which is why it stops just short of a 5.

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?

It does signal the workflow position ('Proposes only — awaiting confirmation'), which tells an agent this is a staged write rather than an immediate one. However, it never says when to use this tool instead of set_category_budget or contribute_to_savings, nor when to pass goal_id versus creating a new goal — that condition is only inferable from the schema's goal_id field.

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