Skip to main content
Glama

Add expenses to a ledger

add_ledger_expenses

Use this when the organizer tells you about expenses or payments to add to an existing shared ledger. Takes the private organizer link and up to 40 expenses or payments; returns the new balances. Names must match the members. Does not edit or delete expenses (use update_expense_ledger to delete).

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": {
      "manage_link": "<manage_link>"
    },
    "name": "add_ledger_expenses"
  }
}

Input Schema

NameRequiredDescriptionDefault
expensesNoExpenses to add.
paymentsNoPayments made between members, e.g. Ben paid Ana back 42.25.
manage_linkYesThe private organizer link returned when the ledger was created, e.g. https://group-expenses.zovo.one/m/AbC.../XyZ...

Output Schema

NameRequiredDescriptionDefault
ruleYes
endedYes
titleYes
totalYes
closedYes
peopleYes
recentYes
changesNo
currencyYes
settle_upYes
expires_atYes
manage_urlYes
public_urlYes
minor_digitsYes
people_countNo
recent_countNo
expense_countYes
number_formatNo
payment_countYes
settle_up_zeroes_allYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare the mutation and safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), so the description only needs supplementary context, and it supplies real value: batch limit of 40, the requirement that names match the member list, and that new balances are returned. It stops short of warning about duplicate submissions on retry, which matters given idempotentHint=false.

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

Conciseness5/5

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

Three tight sentences, no filler, with the usage trigger front-loaded before the constraints and the sibling reference. Every sentence carries distinct information.

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?

An output schema exists so return values need not be detailed, and the description still summarizes them ('returns the new balances'). Limits, name-matching, and the sibling routing are all covered; the only shortfall is no guidance on duplicate handling for a non-idempotent tool.

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

Parameters4/5

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

Schema coverage is 100% and the per-field descriptions are already detailed, so the baseline is 3. The description adds a cross-cutting constraint the schema cannot express — 'names must match the members' — plus the 40-item batch ceiling, which meaningfully reduces invocation errors.

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

Purpose5/5

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

States a specific verb and resource ('add expenses or payments') and scopes it to 'an existing shared ledger', which directly separates it from the create_expense_ledger sibling. An agent can identify the operation and its target without opening the schema.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('when the organizer tells you about expenses or payments'), an explicit exclusion ('does not edit or delete expenses'), and names the alternative tool (update_expense_ledger) for the excluded case. This is close to the ideal when/when-not/alternative pattern.

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