Skip to main content
Glama

Stackup: Fannie, Freddie and HUD multifamily loan sizing

Size one apartment building under Fannie Mae, Freddie Mac and HUD loans

compare_programs
Read-onlyIdempotent

Runs the multifamily.online comparison app on one 5+ unit building: for Fannie Mae DUS and Small Loans, Freddie Mac Optigo Conventional and Conventional Small, and HUD 223(f), 221(d)(4) and 223(a)(7), returns whether it fits the published limits (or why not), max loan by LTV/LTC and by DSCR, the binding limit, estimated monthly payment incl. HUD MIP, term, and warnings, ranked by max loan. SBA, bank, CMBS, bridge and DSCR loans are listed as ineligible or unpublished.

Input Schema

NameRequiredDescriptionDefault
noiNoNet operating income in dollars per year (projected stabilized NOI for construction). Omit and give gross_rent + operating_expenses instead to compute it.
unitsYesNumber of residential units (5 or more).
valueYesPurchase price (purchase), current value (refinance or cash-out) or total development cost (construction), in dollars.
closingNoWhen you need to close.60_to_120_days
purposeYesWhat the loan is for. construction = new construction or substantial rehab.
rate_pctNoOptional all-in interest rate in percent. Replaces Treasury + spread when given.
recourseNoWhether you need a non-recourse loan.need_non_recourse
gross_rentNoGross scheduled rent per year, used only when noi is omitted.
hold_yearsNoHow long you plan to keep the loan or property, in years. Drives Freddie Mac term choice and prepayment warnings. Default 10.
spread_pctNoSpread over the Treasury, in percent. Default 1.75 is the site's example, not a quote; lenders do not publish spreads.
stabilizedNoWhether the property is at stabilized occupancy now.
fha_insuredNoWhether the current loan is already FHA-insured (needed for HUD 223(a)(7)).
vacancy_pctNoVacancy and credit loss as a percent of rent plus other income, used only when noi is omitted. Default 5.
assisted_pctNoPercent of units under project-based rental assistance (HAP/Section 8). 90+ gets HUD's assisted limits.
desired_loanNoLoan amount you want, in dollars. 0 or omitted = the most each program allows.
other_incomeNoOther income per year (parking, laundry), used only when noi is omitted.
property_typeNomarket_rate, or affordable (rent-restricted, e.g. LIHTC).market_rate
fha_years_leftNoYears left on the FHA-insured loan, for 223(a)(7). Default 25.
rent_advantageNoAffordable only: restricted rents sit below market rents (HUD calls this a rent advantage; it gets HUD's affordable limits). Default true.
treasury_tenorNoTreasury tenor the rate is built on: 5, 7 or 10 years. Default 10.
current_balanceNoCurrent loan balance in dollars (refinance and cash-out).
amortization_yearsNo0 = each program's maximum amortization (the default), or 25, 30 or 35 years for every program.
operating_expensesNoOperating expenses per year, used only when noi is omitted.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover safety (readOnly, idempotent, non-destructive, closed-world), so the description's job is to add context beyond that — and it does, enumerating the return payload (fit/no-fit with reason, max loan by LTV/LTC and DSCR, binding constraint, payment incl. HUD MIP, term, warnings, ranked by max loan). This is valuable since there is no output schema.

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?

Two sentences, no filler, and the program scope is front-loaded before the payoff list. The first sentence is long and clause-heavy (nested program enumerations), which slightly hurts scannability, but every element earns its place.

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

Completeness5/5

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

For a 23-parameter computation tool with no output schema, the description is complete: it names the programs, the eligibility verdicts, the computed outputs, the ranking, and the excluded product types. An agent knows what it will get back and what the tool will not tell it.

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?

Schema description coverage is 100%, including defaults, ranges, enum meanings and conditional usage ('used only when noi is omitted'), so the schema already carries parameter meaning. The description adds no parameter-level guidance of its own beyond mentioning HUD MIP, so 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?

Specific verb ('Runs the multifamily.online comparison app'), precise resource (one 5+ unit building), and explicit program scope (Fannie DUS/Small, Freddie Optigo Conventional/Small, HUD 223(f)/221(d)(4)/223(a)(7)). It also states which loan types are out of scope, so an agent can tell it apart from get_program_terms and get_treasury_yields without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

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

The description makes the use case clear (size/compare one deal across agency and HUD programs) and rules out SBA, bank, CMBS, bridge and DSCR products. It does not, however, explicitly route the agent to get_program_terms or get_treasury_yields, so the sibling relationship is left implicit.

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