Multifamily Today: HUD Fair Market Rents
Server Details
HUD FY 2027 Fair Market Rents by county and ZIP, with history and state summaries.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 4 tools
Each tool targets a distinct query shape: multi-county comparison, single county/town, single ZIP (Small Area FMR), and state/national aggregate. Overlap between get_fmr_by_county and get_fmr_by_zip is explicitly resolved by geography (county vs. ZIP-level SAFMR), so an agent can select reliably.
All names follow a predictable verb_resource pattern (compare_fmr, get_fmr_by_county, get_fmr_by_zip, get_state_fmr_summary), with consistent snake_case and consistent 'fmr' domain token. The single 'compare_' verb is a meaningful, not arbitrary, deviation.
Four tools is well within the ideal 3-15 range and each covers a non-redundant access path (compare, county, ZIP, state/national). Nothing feels padded or missing at the interface level.
Core read paths for FMR data are covered: county, ZIP/SAFMR, state/national summary, and multi-county comparison, including history and change metrics. Minor gaps exist, e.g. no metro/HUD FMR area-level lookup, no ZIP-to-ZIP comparison, and county history is limited to the 2-bedroom series.
Available Tools
4 toolscompare_fmrCompare fair market rents across countiesARead-onlyIdempotentInspect
Side-by-side HUD FY 2027 Fair Market Rents for 2 to 10 counties (studio to 4-bedroom) with one- and five-year 2-bedroom change, sorted by the bedroom count you choose. Useful for comparing rental markets or voucher rent ceilings.
| Name | Required | Description | Default |
|---|---|---|---|
| places | Yes | Counties to compare, e.g. [{"state":"TX","county":"Travis"},{"state":"TX","county":"Harris"}]. | |
| bedrooms | No | Bedroom count to sort by, 0 = studio. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, closed-world behavior, so the safety profile is covered. The description adds context annotations cannot: the data vintage (FY 2027), the bedroom range covered, that output includes one- and five-year 2-bedroom change, and that results are sorted by the chosen bedroom count.
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?
A single dense sentence carries the operation, scope, and output shape, followed by one short usage sentence. No filler, and the most decision-relevant detail (counties compared, bedroom sorting) 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 does the work of conveying what comes back: FMRs by bedroom count plus one- and five-year 2-bedroom changes, sorted. That is close to complete for a two-parameter read tool, though it could say more about error behavior for unknown counties.
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%, with minItems/maxItems and the bedroom sort semantics already documented in the schema. The description restates the 2–10 county bound and the studio-to-4-bedroom range but adds no format examples or edge-case behavior beyond that baseline.
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 (compare) and resource (HUD FY 2027 Fair Market Rents), plus the exact scope: 2 to 10 counties, studio to 4-bedroom. This scope naturally separates it from siblings like get_fmr_by_county, get_fmr_by_zip, and get_state_fmr_summary, which are single-place or aggregate lookups.
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 closing sentence gives concrete usage contexts — comparing rental markets or voucher rent ceilings — which tells an agent when this multi-county comparison is the right pick. It stops short of explicitly naming the sibling tools and when not to use this one, so it is clear context without full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fmr_by_countyFair market rent for a countyARead-onlyIdempotentInspect
HUD FY 2027 Fair Market Rents (effective Oct 1, 2026) for one county, parish or New England town: studio to 4-bedroom, the HUD FMR area it belongs to, whether FY 2026 rents stay in effect there, one- and five-year change in the 2-bedroom FMR, and the 2-bedroom history back to FY 2017.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Two-letter state code, e.g. TX. | |
| county | Yes | County, parish or town name, e.g. "Travis" or "Travis County". |
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 description rightly spends its words on substance the annotations cannot: dataset vintage (FY 2027, effective Oct 1, 2026), the FY 2026 carry-over flag, and the depth of historical data (back to FY 2017). It omits any note on error/not-found behavior for unresolvable counties, which is the main remaining gap.
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?
A single dense sentence with zero filler, front-loaded with the dataset and geography before the field list. It is long but each clause carries distinct information; a slight structural cost is that the returned-field list is a comma run rather than a scannable breakdown.
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 correctly takes on the burden of enumerating return contents (bedroom range, FMR area, carry-over flag, 1- and 5-year change, 2BR history). Missing is any mention of behavior when the county cannot be resolved or when FMR data is unavailable for a given area.
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% — both parameters carry their own format guidance (two-letter state code; 'Travis' or 'Travis County'). The description adds no additional parameter meaning, so the baseline of 3 applies.
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+resource: retrieve HUD FY 2027 FMRs for a single county/parish/New England town, and enumerates the exact fields returned. Geographic scope ('one county') implicitly separates it from get_fmr_by_zip and get_state_fmr_summary, but no sibling is named explicitly.
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 is only implied by the scope of the data (single county lookup). There is no statement of when to choose this over get_fmr_by_zip or compare_fmr, nor any prerequisite or exclusion such as what to do if the county name is ambiguous or unmatched.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fmr_by_zipSmall Area Fair Market Rent for a ZIP codeARead-onlyIdempotentInspect
HUD FY 2027 Small Area Fair Market Rents (ZIP-level, effective Oct 1, 2026) for one ZIP code, studio to 4-bedroom, with the HUD FMR area. A ZIP that crosses areas returns one row per area. Small Area FMRs set voucher payment standards in the 65 mandatory metros and are optional elsewhere.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | Yes | Five-digit ZIP code, e.g. 78704. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent and non-destructive, so the safety profile is handled. The description adds genuinely non-obvious behavior: a ZIP crossing HUD FMR areas returns one row per area, plus effective date (Oct 1, 2026) and the bedroom range returned. It does not describe formatting or empty/ZIP-not-found handling, but that is a minor gap.
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 tight sentences, front-loaded with vintage and scope, then return shape, then domain context. Efficient overall, though the mandatory-metro/voucher-payment sentence is background color rather than invocation-critical.
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 the work of explaining returns: studio to 4-bedroom rents, one row per area, and the accompanying HUD FMR area. For a single-param read tool with rich annotations, that is close to sufficient; only error/empty-result behavior is unstated.
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 is a single parameter with 100% schema description coverage including a regex pattern and example, so the schema carries full burden. The description only restates 'for one ZIP code' and adds no format, normalization or edge-case detail beyond the schema; baseline 3 applies.
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 (get Small Area FMR) plus the exact scope: one ZIP code, ZIP-level, studio to 4-bedroom. The ZIP-granularity framing implicitly separates it from get_fmr_by_county and get_state_fmr_summary, so an agent can route 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The FY/vintage and the note that SAFMRs set voucher payment standards in 65 mandatory metros and are optional elsewhere gives useful applicability context. But it never explicitly says when to prefer this over get_fmr_by_county or compare_fmr, and there is no when-not guidance; usage is only implied by the ZIP-level framing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_state_fmr_summaryFair market rent summary for a stateARead-onlyIdempotentInspect
A state's FY 2027 Fair Market Rent picture: number of counties or towns, median, lowest and highest 2-bedroom FMR, median one- and five-year change, and the places that rose or fell most. Omit state for the national summary.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Two-letter state code, e.g. FL. Omit for the whole US. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is fully covered. The description adds the payoff: the exact set of metrics and extremes returned, plus the national fallback when state is omitted. It does not mention pagination or precision/rounding, but for a read-only aggregate that is minor.
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, zero waste: the metric inventory is front-loaded and the fallback rule trails immediately after. Every listed item earns its place because no output schema exists to carry that 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?
With no output schema, the description correctly takes on the burden of describing returns and does it thoroughly, and it explains the zero-required-parameter case. The remaining gap is sibling disambiguation, which matters given three adjacent FMR tools.
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 parameter's description already says 'Omit for the whole US.' The description's 'Omit state for the national summary' restates that, adding only the word 'national summary' framing rather than new semantics. Baseline 3 is appropriate for a one-parameter tool whose schema is fully documented.
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 the resource (a state's FY 2027 Fair Market Rent picture) and enumerates exactly what the summary contains: county/town counts, median, low/high 2-bedroom FMR, one- and five-year change, and biggest movers. That aggregate framing implicitly separates it from the per-county and per-zip siblings, but no sibling is named explicitly.
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 only usage instruction is 'Omit state for the national summary,' which is parameter guidance rather than tool-selection guidance. Nothing tells the agent when to pick this over compare_fmr, get_fmr_by_county, or get_fmr_by_zip, so the routing has to be inferred from the word 'summary.'
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.
4 tool updates
- First observed
compare_fmr - First observed
get_fmr_by_county - First observed
get_fmr_by_zip - First observed
get_state_fmr_summary
Related MCP Connectors
Fair Market Rents, income limits, public housing, vouchers, and homeless counts
HUD Section 8 HAP contract expirations, below-FMR screen and property lookup by state.
LIHTC data: HUD income and rent limits, 2027 QCT/DDA checks, LIHTC properties, credit math.
101HUD RAD conversions, housing authority records, 2026 RAD rents, program facts and debt sizing.
Related MCP Servers
- AlicenseAqualityAmaintenanceMCP server for HUD housing data, enabling Fair Market Rent lookups, Section 8 income limits, and ZIP-to-county crosswalk mapping for affordable housing assessments.613 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides access to U.S. HUD datasets covering fair market rents, income limits, USPS vacancy data, public housing, homelessness counts, and CHAS housing statistics.387 npmMIT
- AlicenseNot gradedqualityDmaintenanceLive real estate market data for 895 US metros. Ask your AI assistant about home prices, rental yields, investment health scores, migration trends, and affordability. Free tier covers top 50 markets (no account needed). Premium tier unlocks all 895 markets, HUD Fair Market Rents, side-by-side market comparison, and filtered market search.MIT
- AlicenseNot gradedqualityDmaintenanceSubmarket-level US residential rental intelligence for AI agents. Search, compare, rank, and analyze rent data, trends, vacancy, affordability, and days on market across 1,000+ named submarkets in the 20+ largest US metros. ZIP-level and metro-level queries included. Always current, always expanding. Free tier available.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.