StudentLoan.help: federal repayment plan calculator
Server Details
Federal student loan repayment estimates: RAP, IBR, Standard, Tiered Standard, PSLF, refinance.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP ยท MCP 2025-11-25
- URL
TDQS
Scored across 3 tools
The three tools have clearly distinct roles: evaluating a lender refinance offer, comparing federal repayment plans, and retrieving published plan rules. Although both comparison tools involve federal plans, their inputs and decision contexts are explicitly separated in the descriptions.
All names use consistent snake_case with a verb-first pattern: compare_refinance_offer, compare_repayment_plans, and get_plan_rules. The two compare_ tools and one get_ tool are predictable for their actions.
Three tools are well matched to a focused federal repayment calculator: compare federal plans, compare a refinance offer, and look up the underlying rules. Each tool earns its place without unnecessary surface area.
The core workflows are covered: plan comparison, refinance comparison, PSLF timing within the plan comparison, and rules lookup. A minor gap is that PSLF is folded into compare_repayment_plans rather than offered as a dedicated eligibility or projection tool, but agents can still work around it.
Available Tools
3 toolscompare_refinance_offerCompare a private refinance offer with federal plansARead-onlyIdempotentInspect
Given an APR and term a lender has offered, returns the refinanced monthly payment and total, compares it with the cheapest federal plan (or with PSLF, which refinancing would end), and lists the federal protections lost. Same math as the studentloan.help calculator. It shows no lender rates of its own.
| Name | Required | Description | Default |
|---|---|---|---|
| agi | Yes | Borrower's adjusted gross income in dollars per year. | |
| loans | Yes | Each loan: type, balance in dollars and annual interest rate in percent, e.g. [{"type":"direct","balance":38000,"rate_pct":6.39}]. Direct includes Grad PLUS and Direct Consolidation loans. | |
| region | No | Poverty guideline region: contiguous_48_or_dc, alaska or hawaii. | contiguous_48_or_dc |
| employer | No | for_profit (or self-employed), government, nonprofit_501c3 or nonprofit_other. Government and 501(c)(3) add the PSLF projection. | for_profit |
| full_time | No | Works at least 30 hours a week for a qualifying employer (needed for PSLF). | |
| refinance | No | everything (federal and private) or private_only. | everything |
| dependents | No | Dependents claimed; RAP subtracts $50 a month for each. | |
| loan_dates | No | owed_before_2014_07_01 (IBR at 15%), first_loan_2014_to_2026 (IBR at 10%), or loan_on_or_after_2026_07_01 (only RAP and Tiered Standard). | first_loan_2014_to_2026 |
| spouse_agi | No | Spouse's AGI in dollars; counted only when married_joint. | |
| term_years | No | Refinance term in years: 5, 7, 10, 15 or 20. | |
| filing_status | No | single (or head of household), married_joint or married_separate. | single |
| household_size | No | Household size (borrower, spouse, dependents); sets the poverty line for IBR. | |
| offered_apr_pct | Yes | APR the lender actually offered, in percent, e.g. 5.5. | |
| income_growth_pct | No | Assumed yearly income growth in percent (calculator default 3). | |
| poverty_growth_pct | No | Assumed yearly poverty guideline growth in percent (calculator default 2.5). | |
| pslf_payments_made | No | PSLF qualifying payments already counted, 0 to 120. | |
| spouse_federal_loan_balance | No | Spouse's federal loan balance; prorates the payment when married_joint. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a read-only, idempotent, non-destructive calculation. The description adds useful behavioral context: it computes both monthly payment and total, compares against the cheapest federal plan or PSLF, lists lost federal protections, and clarifies that it does not provide lender rates itself.
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 three tight sentences, front-loads the core computation, and each sentence adds useful information. The final sentence about not showing lender rates prevents a likely misunderstanding without wasting space.
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 complex 17-parameter simulation with no output schema, the description adequately explains the return values and comparison behavior. It could say more about assumptions or edge cases, but annotations and the fully documented schema cover most remaining context.
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 structured schema already documents all 17 parameters. The description adds contextual framing around the offered APR and term, but does not meaningfully explain the many household, loan, and PSLF-related parameters beyond what the schema provides.
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 and resource: compare a lender offer with federal plans and return refinanced payments, savings comparison, and lost protections. The framing around a lender-offered APR and term distinguishes it from a general federal repayment-plan comparison tool.
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 establishes the triggering context: the user has an APR and term offered by a lender. However, it does not explicitly state when to use this instead of compare_repayment_plans or get_plan_rules, nor does it list exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_repayment_plansCompare federal student loan repayment plansARead-onlyIdempotentInspect
Estimates each federal repayment plan on the borrower's own numbers (RAP, IBR, 10-year Standard, Tiered Standard under the 2026 rules): first monthly payment, total paid, years to payoff or forgiveness, amount forgiven, which plans are open given loan dates, the cheapest plan, PSLF timing for government or 501(c)(3) workers, and Parent PLUS options. Same math as the studentloan.help calculator. Estimates only.
| Name | Required | Description | Default |
|---|---|---|---|
| agi | Yes | Borrower's adjusted gross income in dollars per year. | |
| loans | Yes | Each loan: type, balance in dollars and annual interest rate in percent, e.g. [{"type":"direct","balance":38000,"rate_pct":6.39}]. Direct includes Grad PLUS and Direct Consolidation loans. | |
| region | No | Poverty guideline region: contiguous_48_or_dc, alaska or hawaii. | contiguous_48_or_dc |
| employer | No | for_profit (or self-employed), government, nonprofit_501c3 or nonprofit_other. Government and 501(c)(3) add the PSLF projection. | for_profit |
| full_time | No | Works at least 30 hours a week for a qualifying employer (needed for PSLF). | |
| dependents | No | Dependents claimed; RAP subtracts $50 a month for each. | |
| loan_dates | No | owed_before_2014_07_01 (IBR at 15%), first_loan_2014_to_2026 (IBR at 10%), or loan_on_or_after_2026_07_01 (only RAP and Tiered Standard). | first_loan_2014_to_2026 |
| spouse_agi | No | Spouse's AGI in dollars; counted only when married_joint. | |
| filing_status | No | single (or head of household), married_joint or married_separate. | single |
| household_size | No | Household size (borrower, spouse, dependents); sets the poverty line for IBR. | |
| income_growth_pct | No | Assumed yearly income growth in percent (calculator default 3). | |
| poverty_growth_pct | No | Assumed yearly poverty guideline growth in percent (calculator default 2.5). | |
| pslf_payments_made | No | PSLF qualifying payments already counted, 0 to 120. | |
| spouse_federal_loan_balance | No | Spouse's federal loan balance; prorates the payment when married_joint. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), and the description adds genuinely new context: the results are projections, not authoritative determinations ('Estimates only'), and the math matches a named external calculator, which signals reproducibility. It does not cover input-validation failures or edge cases such as what happens with unsupported loan types.
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?
Purpose is front-loaded in the first clause, and the output enumeration is dense but each item is distinct and useful. The trailing two sentences ('Same math as...', 'Estimates only.') are short and earn their place as provenance and disclaimer.
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 14-parameter tool with no output schema, listing the returned figures (first payment, total paid, payoff years, forgiveness, cheapest plan, PSLF) is exactly the missing information an agent needs. What remains unstated is minor: nothing about computation cost, whether any plan can be omitted from results, or how private loans are treated in the comparison.
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% and already explains every enum, default and bound, so the baseline is 3. The description's references to loan dates gating plan availability and PSLF timing for government/501(c)(3) workers restate what the schema's employer and loan_dates descriptions already say, adding little beyond it.
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?
States a specific verb and resource ('Estimates each federal repayment plan') and enumerates the exact outputs it computes, so an agent knows precisely what it gets back. Siblings (get_plan_rules, compare_refinance_offer) are not named or contrasted, so differentiation is left to inference.
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?
No explicit when-to-use, when-not-to-use, or alternative routing. Nothing tells the agent to prefer get_plan_rules for authoritative plan rules or compare_refinance_offer for private refinancing, so the boundary between the three tools must be guessed from names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_plan_rulesFederal repayment plan rules and sourcesARead-onlyIdempotentInspect
The published rules behind each federal student loan plan as studentloan.help states them: RAP, IBR, Standard, Tiered Standard, PSLF, Parent PLUS, the end of SAVE and the 2026 poverty guidelines. Returns the formulas, dates and limits with the statute or regulation and a page link. Omit topic for the list of topics.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | One of: rap, ibr, standard, tiered_standard, pslf, parent_plus, save_ending, poverty_guidelines. Omit for a one-line summary of each. |
TDQS
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 adds genuine value beyond them by disclosing the return contents (formulas, dates, limits, statutory/regulatory citation, page link) and the source of truth, which lets an agent judge whether the output is authoritative enough to cite. It stops short of noting staleness or that the rules are snapshot/point-in-time reference data.
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, front-loaded with the purpose and followed by the return shape and the optional-parameter behavior. The enumeration of eight plan topics is somewhat listy but maps directly to the enum values and is therefore informative rather than filler.
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 one optional parameter, no output schema, and full annotation coverage, the description does the needed work: it explains what comes back and where the rules originate. The only gap is a lack of any statement about data freshness or effective dates for time-sensitive items like SAVE's end and the 2026 poverty guidelines, which an agent citing these rules would want to know.
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 single enum parameter is fully documented with all eight allowed values, so the schema carries the semantics and the baseline of 3 applies. The description adds only a marginal note about omitting the topic. That note also diverges slightly from the schema, which says omitting returns 'a one-line summary of each' while the description says 'the list of topics,' a small ambiguity about what the no-argument call actually yields.
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 and resource: it returns the published rules (formulas, dates, limits) behind each named federal repayment plan, plus the statute/regulation and a page link. It enumerates the covered topics, which concretely bounds the scope. Sibling differentiation is only implicit โ it is clearly the reference-lookup tool rather than compare_repayment_plans or compare_refinance_offer, but no sibling is named.
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?
Usage context is implied by the source framing ('as studentloan.help states them') and by the 'Omit topic for the list of topics' line, which tells the agent how to start exploring. There is no explicit when-to-use vs. when-not statement and no mention of the comparison siblings, so an agent must infer that this is for looking up rules, not for evaluating a borrower's options.
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.
3 tool updates
- First observed
compare_refinance_offer - First observed
compare_repayment_plans - First observed
get_plan_rules
Related MCP Connectors
For borrowers: payments on every federal plan, RAP to PSLF. Free login, 5 questions, no credit card
Student loan RAP payment calculator, 2026 federal loan limits, SAVE/PAYE/ICR end dates (OBBBA).
41For advisors: every federal plan on your clients' loan files, RAP to PSLF. Sign in or use an API key
US federal + state quarterly estimated tax estimates, SE tax, and quarterly payment due dates.
Related MCP Servers
- AlicenseAqualityBmaintenanceUS federal student loan repayment math for AI agents, from a parity-verified engine rather than estimated. RAP, IBR, ICR, PAYE and tiered Standard payments with forgiveness timing and tax on forgiveness, plus the plans a borrower is excluded from and the rule why, such as Parent PLUS not qualifying for RAP. No key to start; keyed answers at mcp.finology.tech/mcp add citations.377 npmMIT
- FlicenseNot gradedqualityBmaintenanceEnables users to calculate alternative-income student loan repayment estimates, generate supporting-documentation templates, and check versioned federal repayment policy status.-
- AlicenseAqualityCmaintenanceGives an AI assistant the post-OBBBA federal student loan rules, so it can compute monthly payments under the Repayment Assistance Plan, compare them with standard plans, look up 2026 borrowing limits, and track when SAVE, PAYE and ICR borrowers must move. Results come back as structured JSON with plain-English summaries, effective dates and cited statute or StudentAid.gov sources.4MIT
- FlicenseNot gradedqualityDmaintenanceProvides educational fixed-rate loan estimates with mortgage and auto loan calculators.-
Glama MCP Gateway
Add one secure layer between your agents and this server.