Skip to main content
Glama

money4k-split-bill

Edit Shared Bill

update_bill
Destructive

Use this when the user asks to edit an existing shared bill: correct an item, rename it, add or remove purchases, add tips by participant count, or divide a shared dish into selectable portions. Replaces the complete content of a public bill owned by the connected user, whether created from a receipt or from words in chat. Do not use for a new bill, a hypothetical question or recording which items a participant chose; use create_bill or set_bill_selections_batch for those respective actions. Supply the existing bill_id and every item to keep, preserving existing item IDs; omitted items and their selections are deleted. New items use an empty ID. Do not send a partial list to correct one item. Each item total_price must equal unit_price times quantity and bill total_price must equal the sum of item totals in one currency. Include taxes in eligible item prices under local rules, never as standalone items. Keep the printed receipt total or an explicitly corrected user-supplied total fixed; resolve mismatches by rechecking extraction and arithmetic, never by balancing adjustments. Support requested edits in chat, including tips and shared portions. For total tips of EUR 50 for 5 people, add one selectable item with quantity 5 and unit_price EUR 10; ask if participant count is missing. Explicitly requested additions or removals change the total only by their exact amount; do not add included tips twice. To split a shared item, set quantity to the requested portion count and divide its existing tax-inclusive line total by that count, preserving line and bill totals. If division is not exact in currency minor units, clarify the allocation before writing. Retained item IDs preserve selected quantities without rescaling; clarify the effect before changing the meaning of units on an already selected item. Returns the updated bill and the same share_url. Requires OAuth; no profile lookup is needed.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
infoYesRelevant bill notes, for example shared portions or an explicitly requested tip addition; omit receipt personal data
itemsYesComplete bill item list in one currency; updates delete omitted items and their selections
titleYesShort bill title based on the user's description, for example Dinner with friends
bill_idYesBill ID to update
total_priceYesFinal printed receipt total or explicit user-supplied total; keep that control total fixed. For items described in chat without a supplied total, calculate the exact item sum. Only explicit user-requested additions or removals change a reconciled total by their exact amount; record them in info. Splitting items preserves the total. Never hide inconsistent inputs or invent balancing adjustments

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesBill ID
infoYesAdditional bill information
itemsYesBill items with selections
titleYesBill title
owner_idYesBill owner user ID
share_urlYesBill share URL
created_atYesCreation time in RFC3339 UTC
updated_atYesUpdate time in RFC3339 UTC

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed8 schema fields changed
    • changedInput schema / properties / info / description
      Previous value: -"Additional bill information"New value: +"Relevant bill notes, for example shared portions or an explicitly requested tip addition; omit receipt personal data"
    • changedInput schema / properties / items / description
      Previous value: -"Bill items"New value: +"Complete bill item list in one currency; updates delete omitted items and their selections"
    • changedInput schema / properties / items / items / properties / id / description
      Previous value: -"Item ID for update; empty for new item"New value: +"Preserve the returned item ID when updating an existing item; use an empty string for a new item"
    • changedInput schema / properties / items / items / properties / quantity / description
      Previous value: -"Item quantity as numeric string"New value: +"Positive item quantity as numeric string. For requested shared portions or tips, use the explicit participant count; each unit is one selectable share"
    • changedInput schema / properties / items / items / properties / total_price / description
      Previous value: -"Item total price. VAT and Taxes should be included"New value: +"Final item total; must equal unit_price times quantity exactly and use the bill currency"
    • changedInput schema / properties / items / items / properties / unit_price / description
      Previous value: -"Item unit price. VAT and Taxes should be included"New value: +"Nonnegative final unit price after discounts including all taxes applicable to this item. Allocate separate receipt tax rows only to eligible items under local rules; never create standalone tax items or add included taxes twice"
    • changedInput schema / properties / title / description
      Previous value: -"Bill title"New value: +"Short bill title based on the user's description, for example Dinner with friends"
    • changedInput schema / properties / total_price / description
      Previous value: -"Bill total price, VAT and Taxes are included in this price"New value: +"Final printed receipt total or explicit user-supplied total; keep that control total fixed. For items described in chat without a supplied total, calculate the exact item sum. Only explicit user-requested additions or removals change a reconciled total by their exact amount; record them in info. Splitting items preserves the total. Never hide inconsistent inputs or invent balancing adjustments"
  2. Changed3 schema fields changed
    • changedInput schema / properties / items / items / properties / total_price / description
      Previous value: -"Item total price"New value: +"Item total price. VAT and Taxes should be included"
    • changedInput schema / properties / items / items / properties / unit_price / description
      Previous value: -"Item unit price"New value: +"Item unit price. VAT and Taxes should be included"
    • changedInput schema / properties / total_price / description
      Previous value: -"Bill total price"New value: +"Bill total price, VAT and Taxes are included in this price"
  3. First observed

TDQS

A4.7/5.0
Behavior5/5

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

The annotations declare destructiveHint=true and idempotentHint=false, and the description reinforces this with concrete destructive semantics: it 'Replaces the complete content' and 'omitted items and their selections are deleted,' plus a warning not to send a partial list. It also discloses auth needs ('Requires OAuth') and the return shape (updated bill and the same share_url), adding context well beyond what annotations convey.

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

Conciseness3/5

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

It is front-loaded correctly, opening with purpose and when-to-use before edge cases. However, it is very long and several statements restate rules already carried by the 100%-covered schema (item total equals unit_price times quantity, tax allocation, total reconciliation), and the instruction blocks stack without clear visual separation, diluting scannability.

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

Completeness5/5

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

For a destructive, multi-parameter mutation with nested objects, the description covers the full replacement model, ID semantics, currency constraints, tip/portion math, rounding-clarification behavior, and the returned share_url. With an output schema present it need not detail return values, and the remaining gaps for correct invocation are effectively closed.

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 description coverage is 100%, so the baseline is 3, but the description adds operational meaning beyond the schema: preserving existing item IDs vs. using an empty ID for new items, the rule that item total_price must equal unit_price times quantity, the bill-level reconciliation rules, and the tip/share-division procedures. Much of this complements rather than repeats the schema, though the tax and total-equality rules overlap with schema text.

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?

The description names a specific verb and resource (edit an existing shared bill) and enumerates the concrete edit types it supports: correcting items, renaming, add/remove purchases, tips by participant count, and dividing shared dishes. It also explicitly distinguishes itself from siblings by naming create_bill and set_bill_selections_batch and the cases they own. An agent can route correctly without reading any 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?

It gives an explicit when-to-use clause, an explicit when-not-to-use clause (new bill, hypothetical question, recording participant choices), and names the exact alternative tool for each excluded case. Nothing about tool selection is left to inference.

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