Skip to main content
Glama
dc28vivek

goodwill-mcp

by dc28vivek

Record a payment

settle_up

Record an already-completed payment to close an outstanding Splitwise balance. It defaults to the full amount, shows a preview, and waits for confirmation before updating the record.

Instructions

Record that money changed hands, so the balance closes in Splitwise. Use this after you actually paid someone (or they paid you) through Venmo, UPI, a bank transfer or cash. Defaults to the full outstanding balance. Shows a preview and waits for confirmation. This does not move money; it records a payment that already happened.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNoYYYY-MM-DD. Defaults to today.
amountNoDecimal string like "61.00". Defaults to the full outstanding balance with this person.
friendYesMember name or id.
currencyNo
group_idNoRecord it inside a group. Otherwise it is a direct payment.
directionNoWho handed over the money.i_paid
idempotency_keyNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNo
fromNo
noteYes
amountNoDecimal amount as a string, two places, e.g. "84.00"
currencyNo
recordedYes
expense_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

The description adds valuable behavioral context beyond the annotations: 'Shows a preview and waits for confirmation' and 'Defaults to the full outstanding balance.' These describe an interactive flow and side-effect semantics that the annotations (readOnlyHint, destructiveHint, idempotentHint) do not capture. This helps the agent understand the tool's behavior before invocation.

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?

The description is four sentences with zero filler. It front-loads the purpose, then gives usage context, then default behavior, and ends with the critical non-transfer clarification. Every sentence earns its place.

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 an output schema present and annotations covering mutability, the description suffices for correct invocation. It explains the interactive preview/confirmation flow, the default behavior, and the distinction from moving money. Minor details like idempotency are left to the schema, but the description is complete enough for an AI agent to use the tool safely.

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 71%, so the schema already documents most parameters. The description adds a note about amount ('Defaults to the full outstanding balance') which is slightly helpful but does not explain currency, idempotency_key, or group_id in more depth. This aligns with the baseline of 3 for high schema coverage.

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 clearly states the action 'Record that money changed hands' and the resource 'Splitwise balance', which is a specific verb+resource combination. It also explicitly distinguishes itself from expense recording or transfer initiation by saying 'This does not move money; it records a payment that already happened,' which helps set it apart from siblings like add_expense and settle_plan.

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

Usage Guidelines4/5

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

The description gives explicit when-to-use context: 'Use this after you actually paid someone (or they paid you) through Venmo, UPI, a bank transfer or cash.' It also includes a when-not boundary ('does not move money'). However, it does not explicitly name alternative tools like add_expense or settle_plan, so the exclusion is clear in principle but not by sibling name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.