Skip to main content
Glama

Check affordability

assess_affordability
Read-only

THE tool for a plain 'can we afford X?' / 'is X affordable?' / 'do we have room for X?' question — when the user only wants to know whether the money is there (e.g. 'Can we afford a $400 trip right now?'). Use this, NOT recommend_decision_within_budget, for a straight affordability check. Returns verdict (afford / tight / over / no_budget), headroom, and breakdown. Only switch to recommend_decision_within_budget when the user explicitly asks for advice on whether they SHOULD do it ('should we', 'is it worth it', 'is it too tight'). amount_cents is MINOR units (cents): pass 5000 for 50.00. All output amounts are in currency units, not cents.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "ledger_id": "<ledger_id>",
      "amount_cents": "<amount_cents>"
    },
    "name": "assess_affordability"
  }
}

Input Schema

NameRequiredDescriptionDefault
categoryNoOptional category slug or name for a category-level strain check. Call list_budget_categories if unsure.
ledger_idYes
amount_centsYesPurchase amount in minor units (cents). 5000 = 50.00.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already declare it read-only and non-destructive, but the description goes further by naming the returned verdict values (afford / tight / over / no_budget), plus headroom and breakdown — information an agent cannot get anywhere else since there is no output schema. It also pre-empts a unit-confusion failure by stating output amounts are in currency units while the input is in cents.

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?

The decision rule is front-loaded and the routing alternative is attached directly to it, which is good structure. There is mild redundancy — the 'can we afford / is it affordable / do we have room' question is effectively asked twice, and the cents convention is stated in a form the schema already covers.

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 read-only three-parameter tool with no output schema, the description supplies what matters: input units, output verdict vocabulary, and the sibling it defers to. The remaining gap is ledger_id, whose role and sourcing are never explained, which matters if an agent has multiple ledgers.

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?

The cents explanation for amount_cents largely restates the schema's own 'minor units (cents). 5000 = 50.00' text, so it adds no meaning beyond structured data. ledger_id has no description in either place, and the category parameter's scope ('category-level strain check') is the one genuine addition. With 67% coverage already carried by the schema, baseline 3 applies.

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 (affordability check on an amount against a ledger) and anchors it to the exact user phrasings it answers ('can we afford X?', 'do we have room for X?'). It explicitly separates itself from recommend_decision_within_budget, so an agent can route 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 Guidelines5/5

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

Gives both the when ('user only wants to know whether the money is there') and the when-not ('should we', 'is it worth it', 'is it too tight' → use recommend_decision_within_budget instead). The exclusion is stated with concrete trigger phrases rather than vague preference, which is exactly what routing needs.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources