Skip to main content
Glama

Add an expense

add_expense

Records something someone paid for on the trip (“Add the A$60 ramen Zayd paid for the three of us”). amount is a decimal string in major units (“60”, “12.50”, “150000” for yen). shares lists who it’s for, by person id from get_trip: shared equally by default (method equal), or with method exact, each share’s own amount, adding up to the total. Paid by the user, today, in the trip’s currency, unless said otherwise.

Input Schema

NameRequiredDescriptionDefault
notesNo
titleYes
amountYesIn major units: "12.50", "150000" for yen
methodNoequal (the default): shared equally by everyone in shares; exact: each share’s own amount
paidByNoA Person id; you, unless given
paidOnNoYYYY-MM-DD; today where the trip is, unless given
sharesYesWho it’s for: each person once
tripIdYesThe trip’s id, from list_trips
categoryNoother, unless given
currencyNoISO 4217; the trip’s, unless given (others need a Pro trip)

Output Schema

NameRequiredDescriptionDefault
expenseYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare a non-destructive, closed-world write, so the description doesn't need to restate that. It adds real behavioral context instead: sensible defaults for payer, date and currency, and the invariant that exact shares must add up to the total, which tells the agent how the record will be populated when fields are omitted.

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 a vivid example, then dense but purposeful sentences covering amount format, shares semantics, and defaults. Slightly long with some overlap between description and schema, but every clause carries 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?

With 10 parameters, an output schema, and annotations present, the description covers the tricky parts (amount units, share splitting, defaults) well. It never mentions the category or notes fields, which is a minor gap given the schema documents them.

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 coverage is 80%, so the schema already explains amount units, method enum, paidBy/paidOn defaults and share amounts. The description adds a useful cross-tool reference ('person id from get_trip') and reiterates the equal-vs-exact behavior, but largely mirrors what the schema documents, so baseline 3 is appropriate.

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 ('Records') and resource ('something someone paid for on the trip') with a concrete example ('Add the A$60 ramen Zayd paid for the three of us'). The resource is clearly distinct from siblings like add_activity or add_list_item, though it never addresses how it relates to the potentially overlapping create_split.

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?

The example and defaults make the intended usage context inferable ('paid by the user, today, in the trip's currency, unless said otherwise'), but there is no explicit when-to-use/when-not guidance and no pointer to an alternative such as create_split for different splitting scenarios.

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