Skip to main content
Glama

Server Details

Add shared expenses, check who owes whom and plan settle-ups in your Spliteo groups, and manage personal budgets and savings goals. Remote server with OAuth (PKCE) or an API key; 26 annotated tools. Requires Spliteo Premium.

Ownership verified
Status
Healthy
Uptime
92.9% over 24 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

B3.1/5.0

Scored across 26 tools

Disambiguation3/5

Several balance/analytics tools overlap: get_user_balance_summary and get_consolidated_balances both report total owed/owing across groups, and get_monthly_summary vs get_category_analytics both aggregate spending. Descriptions help clarify scope, but an agent could misselect without careful reading. Additionally, get_transaction is ambiguously named for a group-only operation.

Naming Consistency4/5

Almost all tools follow a consistent snake_case verb_noun pattern (create_, update_, delete_, list_, get_). Minor deviations: get_transaction is generic although it only handles group transactions, and contribute_to_goal uses a different verb form. Overall the naming is predictable.

Tool Count3/5

26 tools is heavy for a personal-finance/group-expense server, sitting just above the typical 16-25 borderline range. While the domain spans transactions, budgets, goals, groups, and analytics, several CRUD sets and balance views could potentially be consolidated. Each tool largely earns its place, but the set feels expansive.

Completeness3/5

Core personal and group transaction CRUD is covered, but notable gaps exist: no create/update/delete for groups or member management, no get_personal_transaction by id, and no hard delete for goals. These omissions may cause agent failures for common group-admin workflows. Categories and budgets also lack single-item retrieval.

Available Tools

26 tools
contribute_to_goalContribute to savings goalBInspect

Add a contribution to a savings goal, optionally recording it as a personal saving transaction.

NameRequiredDescriptionDefault
amountYes
goalIdYes
createTransactionNoAlso record the contribution as a personal transaction
transactionDescriptionNo

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, openWorldHint=false, so the safety profile is known. The description adds that the contribution can optionally be mirrored as a personal transaction, but says nothing about whether contributions are additive/cumulative, reversible, or validated against the goal amount.

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?

A single tightly written sentence with the core action front-loaded and no filler. Appropriate length for the operation, though minimal for a mutation with 4 parameters.

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?

For a non-destructive mutation with no output schema and sparse schema coverage, the definition is thin: it doesn't say what the tool returns, how goal progress is affected, or what transactionDescription does when createTransaction is true.

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 only 25%, so the description must compensate. It clarifies the meaning of createTransaction ('also record... as a personal transaction'), which helps, but leaves transactionDescription and the semantics of amount against the goal target unexplained.

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 ('Add a contribution') and resource ('savings goal'), plus the optional side effect. An agent can distinguish it from create_goal/update_goal, though it doesn't explicitly name how it differs from create_personal_transaction despite overlapping behavior.

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

Usage Guidelines2/5

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

No when-to-use, when-not-to-use, or alternatives are given. The phrase 'optionally recording it as a personal saving transaction' hints at a related sibling (create_personal_transaction) but never states when to prefer that route or whether prerequisites exist.

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

create_budgetCreate budgetBInspect

Create a personal budget, either overall (no categoryId) or for a single category.

NameRequiredDescriptionDefault
amountYes
periodNoDefault monthly
endDateNoYYYY-MM-DD
currencyYesOnly transactions in this currency count
startDateNoYYYY-MM-DD
categoryIdNoOmit for an overall budget
alertThresholdNoPercent, default 80

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false, and openWorldHint=false, so the write/closed-world profile is covered. The description's only added content is the categoryId-optional behavior, which is already stated verbatim in the schema; it says nothing about duplicate budgets, validation failures, or what happens on conflict.

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?

A single front-loaded sentence that states the action and the two modes with no filler or redundancy.

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?

For a 7-parameter mutation with no output schema, the description covers the main branch (overall vs. category) but omits how to handle an existing budget, what is returned (e.g., the new budget id), and any side effects. Adequate given the rich schema and safety annotations, but not thorough.

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 86%, so the schema already documents amount, currency, period defaults, date formats, alertThreshold, and the categoryId omission rule. The description merely restates the categoryId distinction, adding no format or syntax detail beyond the structured fields.

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 ('Create') and resource ('personal budget') and names the two creation modes (overall vs. single category), which separates it from create_goal and create_group_transaction. It stops short of explicitly naming sibling tools, so it lands just below a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites, and no routing to alternatives such as update_budget when a budget already exists or list_budgets to check first. The 'either overall or for a single category' clause hints at a variant, not at when this tool is the right choice.

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

create_goalCreate savings goalCInspect

Create a personal savings goal.

NameRequiredDescriptionDefault
nameYes
currencyYesOnly contributions in this currency count
deadlineNoYYYY-MM-DD
descriptionNo
targetAmountYes

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare this is a non-read-only, non-destructive, closed-world write, so the safety profile is covered structurally. Beyond that the description adds nothing: no mention of required fields, currency-counting behavior, immutability of the goal, or what creation returns.

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?

A single front-loaded sentence with no wasted words, but economy here comes from under-specification rather than strong concision. It is short without being informative.

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

Completeness2/5

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

For a 5-parameter creation tool with 40% schema coverage and no output schema, the description leaves most of what an agent needs unspecified. It is not wrong, just far too thin for the tool's complexity.

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

Parameters2/5

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

Schema description coverage is only 40%, and the description only echoes the goal concept ('savings goal') without explaining name, targetAmount, currency, or the YYYY-MM-DD deadline. The obligation is on the description to compensate for the coverage gap and it does not.

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 (create) and resource (personal savings goal), which is enough to distinguish it from create_budget and create_personal_transaction. It does not explicitly name or contrast those siblings, but the resource noun is unambiguous.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives like contribute_to_goal or create_budget, nor any stated prerequisites. The agent gets only the bare action and must infer the rest from the tool name.

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

create_group_transactionCreate group transactionBInspect

Create a shared expense, transfer or income in a group. Example — "user A paid 50 for dinner, split evenly with user B": amount 50, participants [{A, +50}, {A, -25}, {B, -25}], splitConfig { payersSplitMode: "evenly", recipientsSplitMode: "evenly", participantConfigs: [{A, payer, isAutoCalculated: true}, {A, recipient, isAutoCalculated: true}, {B, recipient, isAutoCalculated: true}] }.

NameRequiredDescriptionDefault
typeYesexpense = shared cost, transfer = repayment between members, income = shared income
amountYesTotal transaction amount, two decimals max
groupIdYes
currencyYesISO 4217 code, e.g. USD
categoryIdNoCategory id from list_categories
descriptionYes
splitConfigYes
participantsYes
transactionDateNoYYYY-MM-DD, defaults to today

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds real behavioral context through the worked example (auto-calculation of splits, payer also being a recipient), but says nothing about required permissions, whether the group must pre-exist, or balance side effects.

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?

Purpose sentence is front-loaded and the example, while long, is dense with non-redundant information for a 9-parameter nested payload. Slightly heavy for a two-sentence description, but every clause earns its place.

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?

For a create mutation with nested objects, no output schema, and partial schema coverage, the definition is workable but incomplete: it never states what the call returns, what validation failures look like, or the meaning of several required top-level fields. The example covers the split mechanics well but leaves other gaps.

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 only 56% across 9 params with nested objects, so the description must carry weight. The concrete example uniquely disambiguates the hardest part of the schema: how the participants cashFlow entries map to the splitConfig participantConfigs, and how isAutoCalculated interacts with the split modes. It does not cover groupId, currency, categoryId, description, or transactionDate.

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 (Create) and resource (shared expense, transfer or income in a group), immediately distinguishing it from create_personal_transaction and the update/delete/list group siblings via the word 'group'. It does not explicitly name an alternative, but the scope is unambiguous.

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

Usage Guidelines2/5

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

The description explains the shape of a call via an example but gives no when-to-use guidance, no conditions, and no reference to alternatives such as create_personal_transaction or update_group_transaction. An agent gets no routing help beyond the tool name.

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

create_personal_transactionCreate personal transactionCInspect

Record a personal expense, income or saving for the user.

NameRequiredDescriptionDefault
typeYes
notesNo
payeeNo
amountYes
currencyYesISO 4217 code, e.g. USD
categoryIdNoCategory id from list_categories
descriptionYes
savingsGoalIdNoRequired when type is "saving"
transactionDateYesYYYY-MM-DD

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=false and openWorldHint=false, so the agent knows this is a non-destructive write. The description adds only the fact that three transaction kinds exist, and says nothing about permissions, required relationships (e.g. savingsGoalId when type=saving) or side effects.

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?

A single front-loaded sentence with no filler or repetition. It is efficient, though its brevity is partly under-specification rather than disciplined conciseness.

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

Completeness2/5

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

For a 9-parameter mutation tool with no output schema and under half the parameters documented in the schema, the description is too thin: conditional requirements, category linkage and scope relative to group transactions are all unaddressed.

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

Parameters2/5

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

With 44% schema description coverage across 9 parameters, the description has to carry more of the load, but it only restates the three type values the enum already lists. It says nothing about amount/currency/date semantics or the conditional savingsGoalId requirement.

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 ('Record') and the three resource kinds (expense, income, saving) that map to the type enum. It implies a personal-scope tool, but never explicitly names the sibling create_group_transaction it must be distinguished from, 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 Guidelines2/5

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

There is no when-to-use guidance at all: nothing tells the agent when to pick this over create_group_transaction, contribute_to_goal, or update_personal_transaction. The word 'personal' hints at scope but no condition or alternative is stated.

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

delete_budgetDelete budgetB
Destructive
Inspect

Delete a personal budget. This cannot be undone.

NameRequiredDescriptionDefault
budgetIdYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so irreversibility is partly encoded. The description restates it ('This cannot be undone') rather than adding new behavioral context such as required permissions, whether related transactions are affected, or any confirmation requirement.

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 sentences with the destructive warning front-loaded after the purpose, and no filler. It is appropriately sized for a one-parameter delete tool, though it does no more than the minimum.

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?

For a simple, single-parameter destructive tool with annotations covering the safety profile and no output schema to explain, the description is nearly sufficient. The main omission is any hint about obtaining the budgetId or what happens to dependent data.

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%, but the single parameter is self-describing (budgetId with uuid format and pattern in the schema). The description adds no meaning beyond the name, yet the schema's format/pattern still constrains it, so a 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?

Clear specific verb ('Delete') plus scoped resource ('a personal budget'), which distinguishes it from the sibling delete_group_transaction and delete_personal_transaction. It does not explicitly name those siblings or the update_budget/list_budgets counterparts, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisite (e.g. the budget must exist, or how to obtain a budgetId), and no mention of alternatives such as update_budget. The agent gets a purpose statement but no routing or eligibility context.

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

delete_group_transactionDelete group transactionB
Destructive
Inspect

Delete a group transaction. This affects group balances and cannot be undone.

NameRequiredDescriptionDefault
transactionIdYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the irreversibility is largely pre-communicated; 'cannot be undone' is mostly a restatement. The one genuine addition beyond structured data is 'This affects group balances', which tells the agent the side effect reaches other members' balances — useful, but thin for a mutation with no output schema.

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?

Two sentences, zero filler, with the action stated first and the consequence second. Every clause carries information; nothing is redundant or buried.

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?

For a single-parameter destructive mutation, the description covers the action, the side effect (group balances), and irreversibility, and the annotations carry the safety profile. Missing only usage framing such as what state must hold before deletion, which keeps it short of a 5.

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?

Only one parameter (transactionId) exists and schema description coverage is 0%: the schema contributes a name, UUID format, and pattern but no prose. The description adds no meaning about which transaction ID is expected or what happens to an invalid/foreign-group ID, so it lands at the minimum-viable baseline for a single self-evident parameter.

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 and resource ('Delete a group transaction') that an agent can immediately map to an operation. It does not explicitly name the sibling alternatives, but the resource noun is specific enough to distinguish it from delete_personal_transaction and the update_* variants.

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

Usage Guidelines2/5

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

The description offers no guidance on when to use this versus update_group_transaction or delete_personal_transaction, nor any prerequisite (e.g., permissions, membership in the group). The only implied usage is 'you have a transaction ID you want gone'.

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

delete_personal_transactionDelete personal transactionC
Destructive
Inspect

Delete a personal transaction. This cannot be undone.

NameRequiredDescriptionDefault
transactionIdYes

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the irreversible nature is somewhat covered. The description's 'cannot be undone' reinforces but does not add data beyond that, and omits permission requirements, downstream effects on balances, or rate limits. A 3 reflects that it echoes annotation-covered behavior without extending it.

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 sentences, front-loaded with the action and immediately followed by the irreversibility warning. No waste.

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

Completeness2/5

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

A destructive, one-param mutation tool with no output schema and 0% schema coverage should at least document the identifier format and any side effects (e.g., balance recalculation). The description leaves that entirely implicit.

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

Parameters2/5

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

Schema coverage is 0% and the single parameter transactionId is undocumented in both schema and description. The description doesn't explain that it expects a UUID or where to obtain it. With low coverage and no compensating detail, this is a gap.

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 (Delete) and resource (personal transaction). It is distinguishable from siblings like delete_group_transaction and delete_budget by the resource name, though it doesn't add qualifiers beyond that.

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

Usage Guidelines2/5

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

No guidance on when to use this versus update_personal_transaction (which could also remove/modify) or delete_group_transaction. The description gives no context or alternatives.

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

get_category_analyticsGet category analyticsA
Read-only
Inspect

Get spending/income totals grouped by category over a date range, across all groups or one group.

NameRequiredDescriptionDefault
typesYesTransaction types to include, usually ["expense"]
endDateYesYYYY-MM-DD, inclusive
groupIdNoRestrict to one group; omit for all groups
parentIdNoDrill into the children of this category
breakdownNoAggregate by top-level categories (parent, default) or leaf categories
startDateYesYYYY-MM-DD, inclusive
currenciesYesCurrencies to include, e.g. ["USD"]

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered without description help. The description adds the aggregation semantics (totals by category, date-bounded), but says nothing about pagination, result ordering, or how empty categories are handled.

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?

A single front-loaded sentence that states the metric, the grouping dimension, the time bound, and the group scope with no filler. Every clause 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 no output schema, the description usefully characterizes the return as category-grouped totals, which is the key thing an agent needs. It omits breakdown/parent-child drill behavior and result shape details, but is otherwise adequate for a 7-parameter analytics query.

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 100%, so every parameter (types, currencies, dates, groupId, parentId, breakdown) is already documented in the schema. The description only restates date range and group scoping, adding no syntax or semantics beyond the schema.

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?

The description names a specific verb and resource — spending/income totals grouped by category over a date range — which is enough to distinguish it from aggregation siblings like get_monthly_summary and get_consolidated_balances. It stops short of explicitly differentiating itself from those siblings by name.

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?

It conveys scope (all groups vs. one group, date range) but gives no explicit when-to-use guidance or named alternatives among the many list/summary siblings. Usage is only implied from the resource being an aggregation over categories.

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

get_consolidated_balancesGet consolidated balancesA
Read-only
Inspect

Get net balances with each person aggregated across all shared groups. Shows who owes you and who you owe in total, regardless of which group the debt originated in.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=false, so the safety profile is covered. The description adds useful semantic context (netting, aggregation scope, who owes whom) but says nothing about auth requirements, filtering behavior, or result shape beyond the one-line gloss.

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?

Two tight sentences, zero waste, with the aggregation scope front-loaded before the explanation of what the balances mean.

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 no output schema and no parameters, the description carries the burden of conveying what comes back, and it does so ('who owes you and who you owe in total'). It could go slightly further on result semantics (e.g., netting/settlement meaning), but it is adequate for this simple read.

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?

The tool takes zero parameters, so the baseline is 4. There is no parameter information to add or omit.

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+resource (net balances) plus a precise scope: aggregated across all shared groups per person. This implicitly distinguishes it from the per-group get_group_balances sibling, so an agent can select correctly.

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 phrase 'regardless of which group the debt originated in' implies the use case (cross-group roll-up) versus a per-group view, but no alternative tool is named and there is no explicit when-not guidance.

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

get_groupGet groupA
Read-only
Inspect

Get a group with its details and members. Member entries include userId, display name and role — use those userIds as transaction participants.

NameRequiredDescriptionDefault
groupIdYesGroup id from list_groups

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds value beyond that by disclosing the shape of the returned member entries (userId, display name, role), which matters because there is no output schema.

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?

Two tight sentences with zero filler, and the primary purpose is front-loaded before the downstream-usage hint. Every clause 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 no output schema, the description must carry the return-value burden; it covers members but says nothing about the other 'details' (e.g. name, currency, members count). Still, combined with 100% parameter coverage and safety annotations, an agent has enough to call it correctly.

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?

Single parameter with 100% schema description coverage ('Group id from list_groups'), so the schema already documents it fully. The description adds no format, constraint, or sourcing detail beyond the schema, so the baseline 3 applies.

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+resource ('Get a group') and scopes the payload ('with its details and members'), which distinguishes it from list_groups (singular vs plural) without naming the sibling explicitly. An agent can tell what it returns.

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?

No explicit when-not or named alternative, but it gives real workflow context by telling the agent the member userIds are the inputs for transaction participants, linking this read to create_group_transaction. Clear context, no exclusions.

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

get_group_balancesGet group balancesB
Read-only
Inspect

Get the current balance of every member in a group (who owes and who is owed), per currency.

NameRequiredDescriptionDefault
groupIdYes

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine output semantics (per-member, per-currency, directional debt), but says nothing about authorization requirements, behavior for empty groups, or how balances are computed.

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?

One sentence, zero waste, with the resource and the key output shape front-loaded. Nothing needs to be trimmed or reordered.

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?

For a single-parameter read tool with no output schema, the description covers the essential return semantics (who owes/is owed, per currency). Minor gaps remain around permissions and empty/zero-balance cases, but nothing critical is missing.

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% for the single groupId parameter, but the parameter is self-describing by name and the phrase 'in a group' ties it to a group identifier. It does not state the expected UUID format, though the schema enforces that pattern.

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 and resource ('Get the current balance of every member in a group') and adds useful scope detail ('who owes and who is owed, per currency'). It does not explicitly distinguish itself from close siblings like get_consolidated_balances or get_user_balance_summary, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no mention of prerequisites (e.g., the caller must be a group member), and no routing to alternatives such as get_consolidated_balances or get_settlement_suggestions. The purpose implies usage, but the description offers no explicit guidance.

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

get_monthly_summaryGet monthly summaryB
Read-only
Inspect

Get the user's personal finance summary for a month: income, expenses, savings and budget status.

NameRequiredDescriptionDefault
yearYes
monthYes
currencyNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds useful scope context by saying 'personal' (not group) and by enumerating the returned sections, but says nothing about permissions, currency behavior, or empty-month handling.

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?

A single 18-word sentence that front-loads the verb, resource, scope, and returned fields with zero filler. Nothing needs trimming and nothing is buried.

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?

With no output schema, the description usefully enumerates the summary sections, partially compensating for the missing return contract. However, with three parameters at 0% schema coverage and no explanation of the currency parameter's format or default, the definition is incomplete for calling the tool correctly.

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

Parameters2/5

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

Schema description coverage is 0%, so the description carries the full parameter burden and fails to: 'currency' is only constrained to a 3-character string with no indication that it is an ISO 4217 code, whether it is optional, or what happens if omitted. The 'year'/'month' parameters are documented only by numeric ranges in the schema, with no statement that they are required or how the month is interpreted.

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 ('Get') and resource ('personal finance summary for a month') and enumerates the returned content (income, expenses, savings, budget status). It distinguishes itself from group-oriented siblings via 'personal', but never names or contrasts with the closest siblings like get_user_balance_summary or get_category_analytics.

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

Usage Guidelines2/5

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

There is no explicit guidance on when to use this over get_user_balance_summary (cumulative balances) or get_category_analytics (categorical breakdown). The monthly framing implies a use case, but the agent must infer which summary tool is appropriate for a given request.

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

get_settlement_suggestionsGet settlement suggestionsA
Read-only
Inspect

Get the optimal set of payments that would settle all debts in a group. Read-only: this suggests payments, it never executes them.

NameRequiredDescriptionDefault
groupIdYes

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description's 'it never executes them' restates the read-only profile, adding a small clarifying framing but no new behavioral detail such as ordering, tie-breaking, or result shape.

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?

Two short sentences, purpose first and the read-only caveat second, with no filler. 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?

For a single-parameter read tool with no output schema and full annotation coverage, the description is nearly sufficient. It could mention that the result is a list of suggested payments, but that is a minor omission given the tool's simplicity.

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 lone groupId parameter is documented only by its uuid format and pattern. The description's phrase 'in a group' adds marginal meaning, implying the scope of the computation, but provides no format or constraint detail beyond the schema.

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 ('get the optimal set of payments that would settle all debts in a group'), which is distinct from the sibling read tools like get_group_balances and get_consolidated_balances that report balances rather than propose payments. An agent can identify what this returns 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 Guidelines3/5

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

The description implies the scenario (settling debts in a group) but never explicitly says when to choose this over get_group_balances or get_consolidated_balances, nor states prerequisites. Usage is inferable but no alternatives or exclusions are named.

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

get_transactionGet transactionB
Read-only
Inspect

Get a single group transaction by id, including participants and split details.

NameRequiredDescriptionDefault
transactionIdYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description adds that the response includes participants and split details, which is useful since there is no output schema. It stops short of richer behavioral context such as error behavior for a missing id or whether the returned data is live.

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?

One front-loaded sentence with zero filler that states the resource, access pattern, and payload contents. It is efficient, though slightly under-specified rather than fully rounded out.

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?

For a single-parameter read-only lookup with annotations already covering safety, the description is nearly complete: it names the identifier key and summarizes the returned payload in place of a missing output schema. Only the UUID format/validation detail is absent.

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 0%, so the description carries the burden, but it only says retrieval is "by id" and never mentions the UUID format or constraints. It adds marginal meaning over the bare schema property, leaving the parameter's format undocumented in both places.

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?

"Get a single group transaction by id" gives a specific verb (get), resource (group transaction), and scope (single, by id), which implicitly separates it from list_group_transactions. It also notes what is returned (participants and split details). It does not explicitly name sibling tools or explain why it is scoped to group transactions only, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives such as list_group_transactions or get_group. Usage must be inferred from the words "single ... by id." No prerequisites or exclusions are given.

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

get_user_balance_summaryGet user balance summaryA
Read-only
Inspect

Get the user's overall balance summary across all groups: net balance per currency, total owed/owing, and top group balances. This is the same data shown on the main dashboard.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile needs no restating. The description adds useful scope context (all groups, per-currency netting, owed/owing totals), but says nothing about freshness, pagination, or whether 'top group balances' is capped.

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?

Two tight sentences: the first front-loads scope and the enumerated return contents, the second gives a one-clause framing anchor. No filler, nothing repeated from the schema or annotations.

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 no parameters, no output schema, and annotations covering the safety profile, the description carries most of the remaining burden and does so by enumerating the returned fields. It is slightly thin on which sibling to choose and on any limits to 'top group balances', but nothing needed to invoke the tool is absent.

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?

The tool takes zero parameters, so there is no parameter semantics for the description to carry; the baseline of 4 applies. Schema description coverage is 100% and empty, so no compensating detail is required.

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 and resource (get balance summary) plus the scope ('across all groups') and the three data components returned, so an agent knows exactly what it fetches. It does not, however, distinguish itself from near-identical siblings like get_consolidated_balances or get_group_balances, which the 'across all groups' phrasing could equally describe.

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

Usage Guidelines2/5

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

There is no statement of when to prefer this tool over get_consolidated_balances, get_group_balances, or get_monthly_summary, all of which appear to cover overlapping balance territory. The 'main dashboard' remark is descriptive context, not selection guidance.

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

list_budgetsList budgetsB
Read-only
Inspect

List the user's active personal budgets with current spending against each.

NameRequiredDescriptionDefault
currencyNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare this is a safe read (readOnlyHint=true, destructiveHint=false, openWorldHint=false), so the safety profile is covered. The description usefully adds that only active budgets are returned and that current spending is included, but says nothing about pagination, ordering, or result size limits.

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?

A single front-loaded sentence with the key scope and return information; nothing is wasted.

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?

With no output schema, the description does well to hint at return content ('current spending against each'), but it leaves the only input parameter undocumented and gives no completeness signal about result scope. Adequate but with a clear gap.

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

Parameters2/5

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

The single 'currency' parameter has 0% schema description coverage and is never mentioned in the description, so its purpose (likely filtering budgets by currency) is left to inference. The description adds no meaning beyond what the empty schema provides.

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 (List) and resource (personal budgets), with scope qualifiers ('active', 'personal') that separate it from list_goals and list_categories. It does not explicitly name sibling alternatives for CRUD operations on budgets, so it falls short of a 5.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance and no mention of alternatives such as create_budget, update_budget, or delete_budget. The 'active' qualifier implies a filter but doesn't explain how it relates to the other budget tools.

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

list_categoriesList categoriesA
Read-only
Inspect

List all transaction categories with their ids, names and hierarchy.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare this a safe, non-destructive, non-open-world read, so the safety profile is covered. The description adds the useful fact that it returns ids, names and hierarchy (there is no output schema to convey this), but says nothing about result size, pagination, or how hierarchy is represented.

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?

A single sentence that front-loads the verb and resource and then lists the payload, with no filler or redundancy.

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?

For a zero-argument read tool with no output schema, the description covers what the agent needs to call it and what comes back. It stops short of clarifying the shape of the hierarchy (nested tree vs. flat with parent references), which is the one detail an agent might still need.

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?

The tool takes zero parameters, so there is no parameter semantics to document; per the baseline for 0-param tools, this lands at 4. The description cannot add parameter meaning that does not exist.

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 and resource ('List all transaction categories') and even enumerates the returned fields (ids, names, hierarchy), so the agent knows exactly what it gets. It does not, however, distinguish itself from the related sibling get_category_analytics, which also touches categories.

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

Usage Guidelines2/5

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

There is no explicit when-to-use or when-not-to-use guidance, and no alternative is named. The use case (fetching category ids/names for reference) is only implied by the description, leaving the agent to infer how this differs from get_category_analytics.

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

list_goalsList savings goalsB
Read-only
Inspect

List the user's savings goals with target, saved amount and progress.

NameRequiredDescriptionDefault
currencyNo

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds useful detail by naming the fields returned, which matters since there is no output schema, but says nothing about scoping, permissions, or ordering.

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?

A single efficient sentence with no filler, front-loading the verb and resource. It is appropriately sized for this simple read tool.

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?

With no output schema, the description usefully previews the returned fields, but it omits any explanation of the currency parameter and gives no scoping context. Adequate but with a clear gap.

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

Parameters2/5

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

Schema description coverage is 0% for the single 'currency' parameter (3-letter code), and the description never mentions currency filtering at all. It does not compensate for the undocumented parameter.

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?

The description gives a specific verb+resource ('List the user's savings goals') and even enumerates the returned fields (target, saved amount, progress). This clearly distinguishes it from write siblings like create_goal/update_goal, though it doesn't contrast with other list_* tools.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as list_budgets or the goal-mutating siblings, and no stated preconditions. Usage must be inferred from the name alone.

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

list_groupsList groupsA
Read-only
Inspect

List the expense groups the user belongs to, including each group id, name, description and currency.

NameRequiredDescriptionDefault
pageNoPage number, default 1
limitNoPage size, default 20
searchNoFilter groups by name

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds the meaningful scope constraint that only groups the user belongs to are returned, which the annotations do not convey. It says nothing about pagination behavior or result ordering, which keeps it short of a 5.

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?

A single sentence that front-loads the verb and scope and then names the returned fields. There is no filler or restatement of the title.

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 no output schema, the description usefully enumerates the returned fields (id, name, description, currency), and annotations carry the safety profile. Filtering and pagination are only covered by the schema, but for a simple zero-required-param list tool this is close to complete.

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 100% — page, limit and search are each documented in the schema, including defaults and the 100-item cap. The description adds no parameter-level meaning beyond that, so the baseline of 3 applies.

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 (List) and resource (expense groups), plus the scoping condition that ties results to the user's membership. However, it does not differentiate itself from the sibling get_group, which retrieves a single group, so the agent must infer the distinction.

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?

Usage is only implied by the verb 'List' — an agent can reasonably infer this is the browse-all path versus get_group for a single record, but the description never says so explicitly, nor does it mention when not to use it.

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

list_group_transactionsList group transactionsB
Read-only
Inspect

List transactions of a group, newest first, with pagination and filters.

NameRequiredDescriptionDefault
pageNoPage number, default 1
typeNo
limitNoPage size, default 20
searchNoSearch in descriptions
endDateNoISO date, inclusive
groupIdYes
currencyNo
startDateNoISO date, inclusive

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds one genuine behavioral fact not in the annotations: results are ordered newest first. It says nothing about default page size, max limit, or empty-result behavior beyond what the schema states.

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?

A single front-loaded sentence with no filler; the sort order and pagination/filter capabilities are stated up front. It is perhaps too terse for an 8-parameter tool, but nothing is wasted.

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?

For a filtered, paginated list over 8 parameters with no output schema, the description covers the essentials (group scoping, ordering, pagination, filtering) but leaves defaults, max limits, and return shape unstated. Adequate as a minimum-viable definition, not more.

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

Parameters2/5

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

Schema description coverage is 63% and several parameters (type, currency, groupId) carry no schema description at all, yet the description only offers the generic phrase 'filters'. It adds no meaning to any specific parameter, so it fails to compensate for the coverage gap.

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?

Names a specific verb and resource ('List transactions of a group') and adds the sort order ('newest first'), which separates it from list_personal_transactions and get_transaction. It does not explicitly call out its siblings, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites (e.g. must be a group member), and no pointer to list_personal_transactions or get_transaction for other scopes. 'with pagination and filters' describes capability, not selection criteria.

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

list_personal_transactionsList personal transactionsA
Read-only
Inspect

List the user's personal (non-group) transactions, newest first, with pagination and filters.

NameRequiredDescriptionDefault
pageNoPage number, default 1
typeNo
limitNoPage size, default 20
searchNoSearch in description, payee or notes
endDateNoYYYY-MM-DD, inclusive
currencyNo
startDateNoYYYY-MM-DD, inclusive
categoryIdNo

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds ordering behavior ('newest first') and notes pagination/filters exist, but does not disclose default page size, total-count behavior, or result shape. Useful but modest added context.

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?

A single front-loaded sentence stating resource, ordering, and capability. Zero filler; nothing could be removed without losing information.

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?

With 8 optional parameters, no output schema, and partial schema coverage, the description is thin: it never explains what a returned transaction looks like or how the filters combine (e.g. date range inclusivity, currency matching). Safety is covered by annotations, so this is adequate but not complete.

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

Parameters2/5

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

Schema description coverage is only 63% — 'type', 'currency', and 'categoryId' carry no descriptions, and the description's generic 'with pagination and filters' adds no syntax, defaults, or filtering semantics beyond what the schema already states. It does not compensate for the coverage gap.

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?

Specific verb ('List') plus resource ('the user's personal (non-group) transactions') with an explicit scope qualifier that distinguishes it from the sibling list_group_transactions. An agent can route between the two without opening either schema.

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 '(non-group)' qualifier implicitly signals when to prefer this over list_group_transactions, but there is no explicit when-to-use statement, no prerequisites, and no named alternative. Usage is inferable rather than stated.

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

update_budgetUpdate budgetB
Destructive
Inspect

Update fields of a personal budget. Only send the fields to change.

NameRequiredDescriptionDefault
amountNo
periodNo
endDateNoYYYY-MM-DD
budgetIdYes
isActiveNo
alertThresholdNo

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=false, so the safety profile is covered structurally. The description adds real behavioral context by conveying partial-update semantics (unspecified fields are left alone), but it never explains the destructiveHint flag — whether updates are reversible, or what happens to existing budget/transaction data when a field is rewritten.

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 tight sentences with no filler, and the core action is front-loaded before the sending instruction. It is appropriately sized, though the second sentence could carry a little more weight given how undocumented the parameters are.

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

Completeness2/5

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

For a six-parameter mutation tool with no output schema and very thin schema descriptions, the description is too sparse: it does not enumerate updatable fields, note that budgetId is required and immutable, or warn about the destructive hint. An agent would need to infer almost everything from the raw schema.

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

Parameters2/5

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

Schema description coverage is only 17% — just endDate carries a format note — while five other parameters (amount, period, budgetId, isActive, alertThreshold) have no textual explanation anywhere. The description says what to send but never enumerates or explains the updatable fields, so it fails to compensate for the coverage gap. The patch instruction is the only added meaning.

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 and resource — "Update fields of a personal budget" — so an agent can tell it is a mutation on the budget resource rather than a goal, transaction, or group. It does not distinguish itself from siblings like update_goal or update_personal_transaction beyond the resource noun, so sibling differentiation is only implicit.

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?

"Only send the fields to change" is genuinely useful patch-style guidance and implies the tool is for partial modification rather than replacement. However, there is no when-to-use/when-not guidance relative to create_budget, delete_budget, or list_budgets, and no prerequisites such as ownership or permission requirements.

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

update_goalUpdate savings goalB
Destructive
Inspect

Update fields of a savings goal. Set isActive to false to archive it instead of deleting.

NameRequiredDescriptionDefault
nameNo
goalIdYes
deadlineNoYYYY-MM-DD
isActiveNo
descriptionNo
targetAmountNo

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation risk is known; the description usefully adds that archiving is a non-destructive alternative to deletion. It does not explain whether omitted fields are left unchanged (partial vs. full update), whether existing values are overwritten, or any permission requirements.

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?

Two short sentences, zero filler, with the archive-instead-of-delete guidance front-loaded right after the purpose statement.

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?

For a 6-parameter mutation tool with no output schema and near-zero schema description coverage, the description covers purpose and one key behavior but omits partial-update semantics and most parameter meaning. Annotations at least carry the destructiveness signal.

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

Parameters2/5

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

With 6 parameters and only 17% schema description coverage, the description must carry the parameter burden but only clarifies isActive (archive semantics). name, targetAmount, description, and goalId are entirely undocumented in both schema and description.

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?

The description states a specific verb and resource ('Update fields of a savings goal') and adds a real semantic distinction: isActive=false archives rather than deletes. It doesn't name a sibling tool (e.g., delete_budget/contribute_to_goal analogues) to disambiguate, so it stops short of a 5.

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?

It gives one concrete usage rule – use isActive=false to archive instead of deleting – which is genuinely useful routing guidance. But it says nothing about when to update vs. use contribute_to_goal for adding funds, nor any prerequisites for choosing this tool.

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

update_group_transactionUpdate group transactionA
Destructive
Inspect

Update fields of an existing group transaction. Only send the fields to change; when changing amount or participants, send both participants and splitConfig with the same rules as create_group_transaction.

NameRequiredDescriptionDefault
typeNo
amountNo
currencyNo
categoryIdNo
descriptionNo
splitConfigNo
participantsNo
transactionIdYes
transactionDateNoYYYY-MM-DD

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare a destructive mutation (readOnlyHint=false, destructiveHint=true). The description adds meaningful operational context beyond annotations: partial-update behavior and the requirement to pair participants with splitConfig when changing amount or participants. It does not detail authorization or field replacement effects, keeping it from a 5.

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?

Two sentences with zero waste, and the partial-update constraint is front-loaded before the conditional coupling rule. Every sentence earns its place.

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?

The description covers the most error-prone part of the update (amount/participants/splitConfig coupling) but is incomplete for a 9-parameter nested mutation with no output schema and low schema description coverage. Guidance on updating other fields, permissions, and side effects is missing.

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

Parameters2/5

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

Schema description coverage is only 11%. The description adds some meaning for amount, participants, and splitConfig coupling, but leaves transactionId, type, currency, categoryId, description, and transactionDate undocumented. It fails to compensate for the very low schema coverage.

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?

The description states a specific verb and resource: 'Update fields of an existing group transaction.' It is clear what the tool does, but it does not explicitly differentiate itself from siblings like update_personal_transaction or mention alternatives, so it falls short of a 5.

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?

It gives explicit partial-update guidance ('Only send the fields to change') and a dependency rule for amount/participants changes, referencing create_group_transaction for split rules. It lacks explicit when-not-to-use or alternative routing guidance, but the context is clear.

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

update_personal_transactionUpdate personal transactionB
Destructive
Inspect

Update fields of a personal transaction. Only send the fields to change.

NameRequiredDescriptionDefault
typeNo
notesNo
payeeNo
amountNo
currencyNo
categoryIdNo
descriptionNo
transactionIdYes
transactionDateNoYYYY-MM-DD

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=false, so the safety profile is known. The description adds the partial-update contract, which is valuable behavior beyond the schema, but it never acknowledges the destructive hint or says whether omitted fields are preserved or cleared.

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?

Two short sentences, zero filler, with the core action front-loaded and the critical partial-update rule immediately after. Nothing here is padded.

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

Completeness2/5

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

For a destructive mutation across 9 parameters with 11% schema coverage and no output schema, this description is far too thin. It omits field semantics, permission expectations, and the consequence of the flagged destructive behavior, so an agent could call it correctly in shape but not confidently in effect.

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

Parameters2/5

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

Nine parameters with schema description coverage of only 11% (essentially just transactionDate's 'YYYY-MM-DD'), so the description must carry the load. It names no parameter, no type or format expectations, and does not explain the enum values for 'type' or the uuid requirements, leaving the agent dependent on raw schema shapes.

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 ('Update') and resource ('fields of a personal transaction'), so the operation is unambiguous. It does not, however, differentiate itself from the sibling update_group_transaction or explain what 'personal' vs 'group' means in this context.

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?

'Only send the fields to change' is a genuinely useful usage instruction that establishes partial-update semantics and steers the agent away from a full overwrite. It says nothing about when to use this tool versus update_group_transaction or create_personal_transaction, so routing guidance is only implied.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 26 tool updates
    • First observedcontribute_to_goal
    • First observedcreate_budget
    • First observedcreate_goal
    • First observedcreate_group_transaction
    • First observedcreate_personal_transaction
    • First observeddelete_budget
    • First observeddelete_group_transaction
    • First observeddelete_personal_transaction
    • First observedget_category_analytics
    • First observedget_consolidated_balances
    • First observedget_group
    • First observedget_group_balances
    • First observedget_monthly_summary
    • First observedget_settlement_suggestions
    • First observedget_transaction
    • First observedget_user_balance_summary
    • First observedlist_budgets
    • First observedlist_categories
    • First observedlist_goals
    • First observedlist_group_transactions
    • First observedlist_groups
    • First observedlist_personal_transactions
    • First observedupdate_budget
    • First observedupdate_goal
    • First observedupdate_group_transaction
    • First observedupdate_personal_transaction

Publisher details

Operator
Spliteo (Renzo Beux) · Publisher source
Operator website
https://www.spliteo.app
Vendor relationship
First-party
Trust center
Not available
Restrictions
Requires a Spliteo Premium subscription (US$1.99/month or US$19.99/year, with a 14-day free trial on the web). Sign-in is OAuth with the user's own Spliteo account; no API key or admin approval needed. · Publisher source

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Perplexity for social: ask what competitors are running across social and get answers grounded in real ad and creative data, not guesses.
    2
    Apache 2.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    4 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources