Skip to main content
Glama

What can I afford

what_can_i_afford
Read-onlyIdempotent

Works out the budget ceiling from a monthly payment: the most that can be financed, the highest out-the-door price after the trade-in tax credit, that ceiling as dealers quote it (before the trade-in credit), and the vehicle price it leaves after the state's tax and typical fees. With a fair price from research, it also gives an opening offer and a walk line. Numbers only; nothing is stored.

Input Schema

NameRequiredDescriptionDefault
aprYesLoan APR in percent (6.49 means 6.49%); a pre-approval rate if they have one
cityNoCity or county in the state's rate table (23 states; state_rules says which), like Pittsburgh or Allegheny County: sets the combined rate from the state's own rate file. Where a city is in several counties (Chicago, Milwaukee), give county too. A place name only, never an address or ZIP
downNoCash down payment
stateYesTwo-letter state code (DC included), like PA
countyNoCounty from the state's list (Pennsylvania, Nevada, Wisconsin; state_rules lists them), like Allegheny County: sets the combined rate. A county name only, never an address or ZIP
doc_feeNoExpected doc fee; leave out to assume the state's cap, or a typical $450 where there is none
invoiceNoDealer invoice, for a new car, if known
tax_rateNoCombined sales tax rate as a decimal (0.08 for 8%); leave out to use the state's rate
conditionNonew
title_regNoExpected title and registration
fair_priceNoA fair vehicle price from research, before tax and fees
max_paymentYesThe highest monthly payment the person is comfortable with
term_monthsYesLoan term in months
trade_offerNoBest written trade-in offer, if any
trade_payoffNoWhat is still owed on the trade-in

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, and the description reinforces with 'Numbers only; nothing is stored'. It adds real value by disclosing the shape of the result (four different ceiling figures, including one before the trade-in credit), which matters because there is no output schema. It does not mention failure modes or rate-table constraints, keeping it at 4 rather than 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core transformation, and every clause adds a distinct output or condition — no filler. The first sentence is long with several nested clauses, which slightly taxes parsing, but the content is dense rather than padded.

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 15-parameter domain calculation with no output schema, describing the returned figures is the critical missing piece and it is supplied. Gaps remain: it doesn't say how city/county rate-table lookups resolve, what happens with negative equity, or what errors to expect, though the schema descriptions cover much of the input side.

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 coverage is 93%, so the baseline is 3, but the description adds genuine meaning beyond it: it clarifies that the trade-in tax credit changes the ceiling and that one quoted figure is deliberately calculated before that credit. That explains the relationship between trade_offer, trade_payoff, and the returned numbers in a way the schema alone does not.

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 computational verb plus its input→output relationship ('works out the budget ceiling from a monthly payment') and then enumerates the four distinct ceilings produced. That enumeration makes it clearly distinguishable from siblings like loan_payment (payment from price) and out_the_door (price to drive-off cost) without needing to name them.

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?

There is one conditional usage cue — 'With a fair price from research, it also gives an opening offer and a walk line' — which tells the agent when a parameter becomes worthwhile. However, it never names nearby siblings (loan_payment, out_the_door, check_quote) or states when this inverse calculation is preferred over them, so selection is left to inference.

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