Skip to main content
Glama
Asmit Dev Tools

Asmit Dev Tools

by asmitsr

split_expense

Calculates who owes whom after dividing an expense among members, supporting equal shares or custom shares that must sum to the total.

Instructions

Split an expense and simplify who owes whom.

Equal split: the remainder poisha go to the first members, so the shares always add up exactly. Custom split: shares must sum exactly to the total, otherwise a validation error is returned.

Input Schema

NameRequiredDescriptionDefault
membersYes
paid_byYes
total_amountYes
custom_sharesNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations supplied, the description carries the full burden, and it does disclose two real behaviors: remainder poisha are allocated to the first members so shares sum exactly, and custom shares that do not sum to the total produce a validation error. It does not state whether the expense is persisted/mutated, whether it requires prior setup, or anything about side effects, so a mutation-vs-pure-computation question is left open.

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?

Two short paragraphs, each front-loading its mode, with no filler sentences. The only minor friction is the unexplained "poisha" term and the line break that splits the equal-split sentence mid-thought.

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?

An output schema exists, so return values need not be explained, and the splitting arithmetic is well covered. Still, for a four-parameter tool with 0% schema coverage and no annotations, the undefined paid_by and the unspecified currency/units of total_amount are meaningful gaps an agent would have to guess at.

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 0%, so the description must compensate for all four parameters, and it only partly does: it explains the interaction between members and custom_shares and the exact-sum constraint, but never defines paid_by (payer identity semantics) or the unit of total_amount beyond the unexplained word "poisha".

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?

"Split an expense and simplify who owes whom" gives a specific verb and resource, and the two named modes (equal vs custom) clarify scope. It does not differentiate itself from the sibling settle_balances, which plausibly also deals with who-owes-whom, so an agent must infer the boundary.

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 description effectively distinguishes two invocation modes (equal split vs custom_shares) and states the failure condition for the custom path, which is useful routing guidance at the parameter level. However, it never says when to choose this tool over settle_balances or whether the expense is persisted, leaving the sibling relationship to inference.

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