lease-schedule
Server Details
Lease schedules with a residual: the payment, the interest split and the journal per month.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- theluckystrike/mcp-servers
- GitHub Stars
- 0
TDQS
Scored across 9 tools
Tools are mostly distinct with license_* and loan_* prefixes clearly separating concerns. However, loan_list and loans_report have overlapping per-loan information, though they serve different purposes (register listing vs. debt report). The descriptions are detailed enough to reduce confusion, but the boundary could be clearer.
All tools follow a consistent noun_verb pattern with the resource prefix (license or loan) and a clear action (activate, status, create, delete, journal, list, repay_early, schedule, report). Even loans_report deviates slightly but remains predictable within the set.
With 9 tools, the server is well-scoped for lease/loan management and license handling. Each tool has a distinct purpose, and the count fits the typical 3-15 range without feeling excessive or sparse.
Core loan lifecycle operations are covered: create, delete, list, schedule, journal, early repayment, and reporting. However, there is no update tool for modifying loan terms, and no direct single-loan view (details only via list or schedule). License management is minimal but sufficient. The missing update operation is a notable gap.
Available Tools
9 toolslicense_activateActivate licenseAInspect
Turn Pro on for this connection with key, an MCPL1.. issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | License key from checkout, MCPL1.<payload>.<signature> |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only and not destructive, and the description adds useful behavioral detail: existing data under the token stays, and a wrong or expired key changes nothing. This goes beyond the annotation hints by explaining failure semantics and safety of the operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the core action, then gives the key format and safety guarantees, and closes with the verification tool. Every sentence contributes essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter activation tool with annotations covering the safety profile, the description is complete: it states what the tool does, what input is needed, what happens on failure, and how to confirm success. There is no missing critical information for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents the key parameter and its format with 100% coverage. The description adds meaning by specifying that the key must be issued at checkout for this server or the bundle, which clarifies validity requirements not present in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it 'turns Pro on' for the connection using a license key. It also distinguishes itself from the sibling license_status tool by saying license_status confirms the activation. This leaves no ambiguity about what the tool accomplishes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for use: the key must be an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. It does not explicitly list exclusions or alternative tools, but it does reference license_status as the confirmation path, giving the agent a sense of the workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
license_statusLicense statusARead-onlyIdempotentInspect
Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds useful context beyond annotations by specifying the JSON response contents and stating 'nothing changes,' reinforcing the read-only nature of the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences cover output, purpose, usage context, and side-effect guarantee. Every sentence earns its place and the most important information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description sufficiently describes the return value. With no parameters, annotations covering safety, and a clear use case, nothing essential is missing for an agent to invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and the schema already fully documents that fact. The description explicitly says 'No arguments,' which is accurate and reinforces the schema without needing further elaboration.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb ('Report') and a precise resource ('this endpoint's licence state for your token'), and enumerates the exact output fields: product, tier, reason, and checkout URL. This clearly distinguishes it from sibling tools like license_activate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to call it: 'Call it to explain a free-tier refusal.' This is clear contextual guidance, though it does not name alternatives or explicitly state 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.
loan_createRecord a loan or leaseAInspect
Record a loan or lease and return its id, level payment and effective annual rate. principal_minor, fees and balloon are whole MINOR units; rate_bps is the nominal annual rate in basis points. Free: 3 agreements.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Default "loan" | |
| name | Yes | What this agreement is, e.g. Van finance or Office lease | |
| note | No | ||
| lender | No | Who the money is owed to | |
| method | Yes | annuity for a level payment, straight-principal for equal principal and a falling payment | |
| currency | Yes | ISO code the agreement is denominated in | |
| rate_bps | Yes | Nominal annual interest rate in basis points. 1200 is 12 percent. Zero is allowed | |
| fees_minor | No | Arrangement fees in whole minor units, paid at drawdown. Default 0 | |
| start_date | Yes | Drawdown date, YYYY-MM-DD. The first payment falls one period after it | |
| compounding | Yes | How often interest compounds | |
| term_periods | Yes | Number of payment periods, not years | |
| balloon_minor | No | Final balloon or residual value in whole minor units, due with the last payment and not inside it. Default 0 | |
| principal_minor | Yes | Amount borrowed, in whole minor units (integer cents). 1,000,000 is EUR 10,000.00 | |
| payment_frequency | Yes | How often a payment falls due |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, idempotentHint=false), and the description adds useful behavioral context: the returned values (id, level payment, effective annual rate) and the minor-unit conventions. It does not describe side effects beyond creation or address what happens when the free quota is exceeded, but it adds value beyond the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence front-loads the action and return values; the second clarifies unit formats and a quota constraint. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 14 parameters, high schema coverage, and no output schema, the description covers the key missing pieces: what the tool returns and the integer minor-unit semantics for monetary fields. It could further explain rate calculation or error conditions, but the essentials for invoking the tool correctly are present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 93%, so the schema already documents nearly all parameters. The description reiterates that principal_minor, fees, and balloon are whole minor units and that rate_bps is nominal in basis points, which is helpful reinforcement but adds little beyond the existing parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Record a loan or lease') and specifies what it returns ('id, level payment and effective annual rate'), making the core purpose clear. It does not explicitly differentiate from sibling tools like loan_delete or loan_schedule, though the create/record semantics are unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage by virtue of being the creation tool among siblings, but it gives no explicit guidance on when to choose loan_create over related tools such as loan_journal or loan_schedule. No alternatives or exclusions are mentioned. The 'Free: 3 agreements' hint provides some quota context but not usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan_deleteDelete a loan from the registerADestructiveInspect
Remove one loan or lease from the register and give its free-tier slot back. Refused, with the entry named, if a journal has already been taken from it. Free.
| Name | Required | Description | Default |
|---|---|---|---|
| loan | Yes | The loan id, e.g. LOAN-2026-0001, or its exact name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as destructive, and the description adds useful behavioral context: the loan is removed from the register, a free-tier slot is recovered, and the operation is refused with the entry named if a journal has already been taken. This goes beyond the annotation data, though the final 'Free.' is somewhat cryptic.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the core action and consequence. The second sentence adds the important refusal condition. The one-word 'Free.' is ambiguous and borderline redundant, preventing a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter destructive tool with no output schema, the description covers the action, the slot-recovery consequence, and the key failure condition. It could mention permanence or response details, but destructiveHint already signals the risk, so the description is reasonably complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the loan parameter is already described with its type, max length, and an example ID/name. The description does not add additional parameter-level meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Remove') with a clear resource ('one loan or lease') and states the consequence ('give its free-tier slot back'). This distinguishes it from sibling tools like loan_create, loan_list, and loan_journal, which serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool through its delete intent, and it provides a clear when-not condition: the deletion is refused if a journal has already been taken from the loan. However, it does not explicitly compare against alternatives or explain when another sibling like loan_repay_early might be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan_journalJournal a loan paymentAInspect
Return the double entry for one payment period or month: debit interest expense and loan liability, credit cash, in the cash book's account names, with an expense_add-ready payload. Give period or month, not both. Pro.
| Name | Required | Description | Default |
|---|---|---|---|
| loan | Yes | The loan id, e.g. LOAN-2026-0001, or its exact name | |
| month | No | Journal every payment falling in this month, YYYY-MM. Give this or period | |
| period | No | The payment period to journal. Give this or month | |
| category | No | Expense category for the expense_add payload. Default "interest" | |
| cash_account | No | Credit account for the payment. Default "cash" | |
| interest_account | No | Debit account for the interest. Default "interest_expense" | |
| liability_account | No | Debit account for the principal. Default "loan_liability" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations carry no hints (all false), so the description bears the full burden. It adds valuable context: the output uses 'cash book's account names' and is 'expense_add-ready'. However, it does not clarify whether the tool has side effects; 'Return' implies read-only, but readOnlyHint=false leaves ambiguity. No contradiction, but incomplete disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that states the output and key constraints. The trailing 'Pro' is odd but doesn't detract. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains what is returned (double entry with debits/credits) and the payload's purpose (expense_add-ready). It covers the mutual-exclusivity rule. It does not detail the exact payload structure, but that may be acceptable for a computational tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds the mutual-exclusivity constraint between 'period' and 'month', which is not in the schema. This helps the agent understand parameter relationships beyond individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Return') and resource ('double entry for one payment period or month'), and details the accounting entries (debit interest expense and loan liability, credit cash). It distinguishes itself from siblings like loan_schedule and loans_report by specifying it generates journal entries with an expense_add-ready payload.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage constraint: 'Give period or month, not both.' This guides parameter usage. However, it does not explicitly contrast with sibling tools or state when to prefer this over loan_schedule or loans_report, though the purpose itself is sufficiently distinct.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan_listList the loan registerARead-onlyIdempotentInspect
List the register with terms, level payment, effective annual rate and, at as_of, periods paid, balance outstanding, interest to date and the next payment, totalled per currency. Free; loans_report is the Pro roll-up.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | Only loans, or only leases | |
| as_of | No | Value the register at this date, YYYY-MM-DD. Default today | |
| limit | No | Maximum rows, default and ceiling 600 | |
| currency | No | Only agreements in this currency |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior, so the description does not need to restate safety. It adds behavioral context by showing the register is valued 'at as_of', includes interim interest/next-payment figures, and is totalled per currency, plus noting the free access tier. This complements rather than contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The key output fields are front-loaded, and the alternative tool is mentioned in a compact second sentence. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only listing tool with no output schema, the description enumerates the computed output fields, notes currency totals, and mentions the alternative Pro roll-up. All four optional parameters are fully documented in the schema, so nothing essential is missing for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds meaning by tying as_of to valuation of balances and interest, and by clarifying that results are totalled per currency, which enriches the currency parameter beyond its schema filter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource ('List the loan register') and explicitly enumerates the returned fields: terms, level payment, effective annual rate, periods paid, balance, interest to date, and next payment. It differentiates itself from the sibling loans_report by noting this is the free detail view while loans_report is the Pro roll-up.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states this is the free version and points to loans_report as the Pro roll-up alternative, giving agents a decision cue based on whether a rolled-up view is needed. It does not explicitly discuss other siblings like loan_schedule, but the context is clear enough for choosing between the two most similar list/report tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan_repay_earlySettle or overpay a loan earlyBInspect
Work out what settling or overpaying costs as of a period: the outstanding balance, the penalty if one is given, the recalculated remaining schedule and the interest saved, stated gross and net of the penalty. Pro.
| Name | Required | Description | Default |
|---|---|---|---|
| loan | Yes | The loan id, e.g. LOAN-2026-0001, or its exact name | |
| limit | No | Maximum remaining rows to return, ceiling 600 | |
| extra_minor | No | A partial overpayment in whole minor units. Omit to settle the loan in full | |
| as_of_period | Yes | The period the extra money is paid at the end of. Period 1 is the first payment | |
| keep_payment | No | On a partial overpayment, keep the same payment and shorten the term. Default false, which keeps the term and lowers the payment | |
| penalty_minor | No | Early repayment charge in whole minor units. Default 0 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are all false, so they do not establish a safety or side-effect profile. The description says 'work out what... costs,' which suggests a calculation, while the title says 'Settle or overpay a loan early,' which suggests an actual mutation. It never states whether the loan is modified, whether this is a quote/simulation, or whether separate confirmation or permissions are needed. This central behavioral ambiguity is not acceptable for a financial tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads the operation and enumerates the useful outputs. The trailing 'Pro.' fragment is unexplained and adds no actionable value, which keeps this from being a 5. Otherwise, the wording is efficient and focused.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the annotations are all false, so the description must carry the behavioral and return-value burden. It does enumerate several outputs and references the as-of-period concept, but it omits the critical question of whether the early repayment is actually executed or merely simulated, and it provides no failure, prerequisite, or alternative-tool context. This is incomplete for a six-parameter financial tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents every parameter clearly. The tool description adds some contextual meaning by tying the penalty and as-of-period concepts to the outputs, but it does not materially expand on the schema. Baseline 3 is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('work out') and resource ('settling or overpaying a loan') and lists concrete outputs: outstanding balance, penalty, recalculated schedule, and interest saved. It is clearly distinct from siblings like loan_schedule or loan_create, though it does not name a sibling to make that differentiation explicit. The title ('Settle or overpay') and description ('Work out what... costs') also create slight action-vs-quote ambiguity, so this is clear but not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied: when the user wants to know the cost or effect of settling or overpaying a loan as of a given period. However, there are no explicit when-to-use/when-not-to-use instructions, no prerequisites, and no mention of alternatives such as loan_schedule for normal amortization. The guidance remains implicit rather than directive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loan_scheduleBuild the amortization scheduleAInspect
Build one loan's schedule: opening balance, payment, interest, principal and closing per period, with total interest. The last period absorbs rounding, landing exactly on the balloon or zero. loans_report totals it.
| Name | Required | Description | Default |
|---|---|---|---|
| loan | Yes | The loan id, e.g. LOAN-2026-0001, or its exact name | |
| year | No | Only the periods falling in this calendar year, YYYY | |
| limit | No | Maximum rows, default and ceiling 600 | |
| from_period | No | First period to return. Default 1 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds useful behavioral detail beyond the all-false annotations: the last period absorbs rounding, the schedule lands exactly on the balloon or zero, and loans_report depends on it. However, one of these annotations is readOnlyHint=false while the description says 'Build,' which leaves it ambiguous whether this tool mutates persistent state or merely computes and returns a schedule. That side-effect ambiguity is not resolved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three compact sentences with zero waste. The core action and output fields are front-loaded, followed by the rounding guarantee and the sibling relationship. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description carries the burden of describing the return content, and it does: per-period columns plus total interest, with a rounding guarantee. It does not explicitly state the response shape or how filters like year/from_period affect rows, but the schema covers those and the tool is simple enough that an agent can invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the input schema fully documents loan, year, limit, and from_period. The description adds the concept of 'period' and 'total interest' but does not explain any parameter behavior beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Build') and resource ('one loan's schedule') and enumerates the exact output fields: opening balance, payment, interest, principal, closing, and total interest. It also distinguishes itself from the sibling loans_report by noting 'loans_report totals it,' so an agent can tell this tool produces the per-loan schedule rather than an aggregate report.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one loan's schedule' clearly scopes this tool to a single loan, and the closing note that loans_report totals it hints at the alternative for aggregate reporting. It does not explicitly state when not to use this tool, but the single-loan scope and sibling relationship provide sufficient decision context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
loans_reportReport what is owed and what it costsARead-onlyIdempotentInspect
The debt at as_of: per loan what is outstanding, whether it is settled, the next payment, and the interest and principal charged in a year, then totals per currency. Contractual balance, not cash paid. Pro.
| Name | Required | Description | Default |
|---|---|---|---|
| year | No | The calendar year to total the interest for, YYYY. Default the year of as_of | |
| as_of | No | Value the debt at this date, YYYY-MM-DD. Default today | |
| currency | No | Only agreements in this currency |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds meaningful context beyond that: balances are contractual, not cash-paid, results are grouped per currency, and the tool appears gated as 'Pro'. This gives useful behavioral expectations without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loads the key concept ('The debt at as_of') before enumerating outputs. However, the trailing 'Pro.' fragment is cryptic and the sentence fragment style is slightly telegraphic, though not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 a good job enumerating what the agent will receive: per-loan outstanding, settled status, next payment, yearly interest/principal, and per-currency totals. It is sufficient for a low-complexity report tool with three optional parameters; it does not need to repeat schema defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already fully documented. The description reinforces as_of semantics and mentions yearly interest/principal, but it does not add new parameter meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action and output: report debt at as_of, per-loan outstanding amount, settlement status, next payment, yearly interest/principal, and per-currency totals. It clearly distinguishes this from sibling tools like loan_list or loan_schedule by emphasizing it is a consolidated valuation/report rather than a list or schedule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for building a debt/cost report as of a date, but it does not explicitly say when to use it versus siblings such as loan_list or loan_schedule, nor does it state exclusions or alternatives. The context is understandable, but the routing guidance 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
9 tool updates
- First observed
license_activate - First observed
license_status - First observed
loan_create - First observed
loan_delete - First observed
loan_journal - First observed
loan_list - First observed
loan_repay_early - First observed
loan_schedule - First observed
loans_report
Related MCP Connectors
Loan and lease schedules: payment, interest, early settlement and the journal, to the minor unit.
Exact lease finance calculations: equipment structuring, solvers, amortization, auto lease & loan
Row-by-row loan amortization schedules: monthly or daily accrual, extra principal, PMI, biweekly.
Prepare an agreement obligation schedule
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables querying, extracting terms, and projecting rent from commercial lease documents via MCP tools.-
- AlicenseBqualityAmaintenanceAccounting MCP server for the French LMNP tax status (furnished rentals, e.g. Airbnb hosts). 44 tools to manage properties, income and expenses, compute component-based depreciation and fiscal results, and generate the official French tax return (2031/2033) and FEC accounting export.454AGPL 3.0
- AlicenseAqualityBmaintenanceLets users track equipment maintenance with service entries, costs, and automatically computed due and overdue schedules.8MIT
- AlicenseAqualityAmaintenanceFull double-entry accounting on local GnuCash books: transactions (single and batch), invoices and bills, budgets, investment lots, scheduled transactions, reconciliation, and reports. Multi-currency and multi-book aware, with a plain-text audit trail of every write. Your data never leaves your machine.8770MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.