Skip to main content
Glama

BusCalc — Business & Trade Calculations

Equipment loan payment

buscalc_equipment_loan_payment
Read-onlyIdempotent

Build a fixed-rate equipment loan amortization schedule. Use this tested BusCalc worksheet when the task matches its inputs and scope. Returns named results, units, formula, assumptions, method version and a source-page URL. No prices or omitted costs are looked up; no private projects or purchases are accessed.

Input Schema

NameRequiredDescriptionDefault
unitsNo
inputsYes
modelVersionNoOptional expected method version; a mismatch is rejected.

Output Schema

NameRequiredDescriptionDefault
unitsNo
inputsYes
receiptYes
resultsYes
sourceURLYes
calculatorYes
modelVersionYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "calculator": {
      +      "type": "string"
      +    },
      +    "inputs": {
      +      "type": "object"
      +    },
      +    "modelVersion": {
      +      "type": "string"
      +    },
      +    "receipt": {
      +      "properties": {
      +        "additionalResults": {
      +          "type": "object"
      +        },
      +        "assumptions": {
      +          "type": "string"
      +        },
      +        "calculator": {
      +          "type": "string"
      +        },
      +        "checks": {
      +          "items": {
      +            "properties": {
      +              "name": {
      +                "type": "string"
      +              },
      +              "status": {
      +                "enum": [
      +                  "passed"
      +                ],
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "name",
      +              "status"
      +            ],
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "formula": {
      +          "type": "string"
      +        },
      +        "inputs": {
      +          "type": "object"
      +        },
      +        "integrity": {
      +          "type": "string"
      +        },
      +        "methodVersion": {
      +          "type": "string"
      +        },
      +        "replay": {
      +          "type": "string"
      +        },
      +        "replayRequest": {
      +          "type": "object"
      +        },
      +        "results": {
      +          "items": {
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "schemaVersion": {
      +          "enum": [
      +            "1.0.0"
      +          ],
      +          "type": "string"
      +        },
      +        "scope": {
      +          "type": "string"
      +        },
      +        "sourceURL": {
      +          "format": "uri",
      +          "type": "string"
      +        },
      +        "status": {
      +          "enum": [
      +            "calculated"
      +          ],
      +          "type": "string"
      +        },
      +        "tool": {
      +          "type": "string"
      +        },
      +        "units": {
      +          "type": "object"
      +        },
      +        "warnings": {
      +          "items": {
      +            "type": "string"
      +          },
      +          "type": "array"
      +        }
      +      },
      +      "required": [
      +        "schemaVersion",
      +        "status",
      +        "tool",
      +        "calculator",
      +        "methodVersion",
      +        "sourceURL",
      +        "formula",
      +        "assumptions",
      +        "inputs",
      +        "units",
      +        "results",
      +        "replayRequest",
      +        "additionalResults",
      +        "checks",
      +        "warnings",
      +        "scope",
      +        "integrity",
      +        "replay"
      +      ],
      +      "type": "object"
      +    },
      +    "results": {
      +      "items": {
      +        "properties": {
      +          "label": {
      +            "type": "string"
      +          },
      +          "unit": {
      +            "type": "string"
      +          },
      +          "value": {
      +            "oneOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "string"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "label",
      +          "value"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "sourceURL": {
      +      "format": "uri",
      +      "type": "string"
      +    },
      +    "units": {
      +      "type": "object"
      +    }
      +  },
      +  "required": [
      +    "calculator",
      +    "modelVersion",
      +    "sourceURL",
      +    "inputs",
      +    "results",
      +    "receipt"
      +  ],
      +  "type": "object"
      +}
  2. First observed

TDQS

B3.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description still adds real value beyond that: it discloses the returned artifacts (named results, units, formula, assumptions, method version, source-page URL) and explicitly states that no prices or omitted costs are looked up and no private data is accessed. It does not mention error behavior or input validation, 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.

Conciseness3/5

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

The scope statement is correctly front-loaded in the first sentence, but the second sentence is pure filler that consumes space without adding information. The remaining sentences are efficient, so the overall size is acceptable but not tight.

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

Completeness3/5

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

An output schema exists, so the return-value sentence is somewhat redundant, and the annotations cover the safety profile; what is missing is when-to-use guidance against a large sibling set and any parameter-level clarification. For a simple deterministic calculator it is adequate but leaves real gaps.

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 33%, and the description contributes nothing about principal, annual rate, months, units, or modelVersion. The schema's own parameter text does carry the key caveats (nominal rate not APR, principal not full equipment price), which prevents a 1, but the description fails to compensate for the coverage gap as the low-coverage rule requires.

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 opening sentence gives a specific verb and resource: 'Build a fixed-rate equipment loan amortization schedule'. That is enough to distinguish it from most siblings such as buscalc_break_even_sales or buscalc_recipe_portion_cost, though it never names the closest alternative (buscalc_financial_mathematics or buscalc_equipment_ownership_cost_per_hour). The second sentence adds no specificity.

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?

'Use this tested BusCalc worksheet when the task matches its inputs and scope' is circular guidance that restates the precondition rather than defining it. There is no statement of when to prefer this over the financial_mathematics or equipment_ownership_cost_per_hour siblings, and no exclusion conditions.

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