RentalAnalytics rent tools
by rentalanalytics.com · remote · no sign-in to list tools · v1.0.0 · published by com.rentalanalytics
Read-only HUD rent lookup and the site's existing rental calculators.
16 tools: 10 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things10Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http rent-tools https://rentalanalytics.com/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
16 tools
Changes things 10Claude Code: ask
advise_lease_renewalLease renewal advisor.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Lease renewal advisor. Market rent is estimate_rent for the ZIP. The recommended rent follows the page's gap bands: hold inside 5%, blend 65% of the gap when under market, blend 50% when over market. Turnover cost is the page's illustrative 1 to 2 months of current rent, not a measured local figure. If the rent estimate has no median, this tool stops.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
calculate_amortizationFully amortizing mortgage schedule from the amortization calculator.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Fully amortizing mortgage schedule from the amortization calculator. Interest is rounded to the cent each month. Pass include_schedule true to get every row. Otherwise the tool returns the payment, payoff date, total interest, and total paid.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
calculate_cap_rateCap rate calculator: NOI divided by purchase price, compared with the band stored in cap-rate-benchmarks.json for the ZIP's metro tier.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Cap rate calculator: NOI divided by purchase price, compared with the band stored in cap-rate-benchmarks.json for the ZIP's metro tier. Unknown ZIPs use the file's Tier 2 band, which is what the page does. Cash-on-cash, when financed, uses the page's 3% closing estimate. Bands are the file's estimated survey ranges, not a new comp.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
calculate_cash_flowCash flow analyzer.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Cash flow analyzer. Itemized P&L, cap rate, gross yield, cash-on-cash, and break-even occupancy from the inputs you pass. Closing costs in the cash-on-cash line are the page's 3% estimate. Taxes and insurance are annual; maintenance is monthly.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
calculate_dscrDSCR calculator.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it DSCR calculator. NOI is rent times 12 times (1 minus vacancy) minus taxes, insurance, HOA, and other annual costs. Debt service is the fully amortizing payment times 12. DSCR is NOI divided by debt service. Max loan is the principal whose payment equals NOI divided by the target DSCR you pass. 1.25 is not assumed.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
calculate_gross_yieldGross yield for a monthly rent and value you pass, using the site's half-up hundredths formula: floor((rent * 12 * 10000 + floor(value / 2)) / value).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Gross yield for a monthly rent and value you pass, using the site's half-up hundredths formula: floor((rent * 12 * 10000 + floor(value / 2)) / value). It does not look up a price.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
calculate_opexOperating-expense lines as a percent of effective gross income, compared with the illustrative national bands in opex-benchmarks.json.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Operating-expense lines as a percent of effective gross income, compared with the illustrative national bands in opex-benchmarks.json. Those bands are labeled illustrative in the file. They are not a metro measurement.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
estimate_rentThe rent estimator on /tools/rent-estimator.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it The rent estimator on /tools/rent-estimator. Hero is the HUD FY2027 50th-percentile area rent scaled onto the ZIP FMR or SAFMR when that area is in hud-50th-sample.json, then aged with the BLS CPI Shelter rate in the script and a property-type multiplier. FMR stays the labeled 40th-percentile voucher figure. ACS B25031 is a second anchor when the sample has that ZIP. A ZIP missing from both the sample and the Section 8 extract returns an error. No national rent is invented for a missing ZIP.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
illustrate_1031_exchangePartial Form 8824 illustration from the 1031 calculator (lines 15, 16, 18, 19, 20, and 24 when line 23 equals line 20).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Partial Form 8824 illustration from the 1031 calculator (lines 15, 16, 18, 19, 20, and 24 when line 23 equals line 20). Line 21 recapture is not computed. This is a planning illustration, not a filed return and not tax advice.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
illustrate_cost_segregationYear-1 cost segregation worksheet.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Year-1 cost segregation worksheet. Land percent and cost-segregation percent are required because the form has no default for them. Bonus percent comes from tax-params.json when you pass acquired_date and placed_year. Otherwise it uses the form field's stored default. Estimates for planning; not tax advice.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 6Claude Code: allow
compare_str_ltrSTR vs long-term comparison.No findings
Why it is in this group
- The name "compare_str_ltr" says "compare": a word for reading.
Description, as the server wrote it STR vs long-term comparison. Short-term revenue is nightly rate times occupied nights. Long-term rent is the monthly rent you pass, or, if you omit it, the ACS B25031 cell for that ZIP and bedroom when the sample has one, otherwise the HUD FMR for bedrooms 0 through 4. If neither source has a rent, pass monthly_rent. The tool does not invent one.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
lookup_city_rulesPlain-English landlord-tenant digest stored in regulations.json for the cities that file covers.Reads private dataNo findings
Why it is in this group
- The name "lookup_city_rules" says "lookup": a word for reading.
What it can reach
- private-dataThe description's first sentence says "file": it reads files.
Description, as the server wrote it Plain-English landlord-tenant digest stored in regulations.json for the cities that file covers. If the city is not in the file, the tool says so. Estimates for planning; not legal advice.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
lookup_covered_marketCity rows stored in markets.json (the 15-city sample behind the rent-growth tracker and vacancy panel), plus the sample median and mean those pages compute.No findings
Why it is in this group
- The name "lookup_covered_market" says "lookup": a word for reading.
Description, as the server wrote it City rows stored in markets.json (the 15-city sample behind the rent-growth tracker and vacancy panel), plus the sample median and mean those pages compute. YoY, vacancy, and cap rate on each row are the file's labeled estimates. The 12-month illustration multiplies the stored 2-bedroom FMR by the script's CPI Shelter rate. It is not a metro forecast. An unknown city returns an error.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
lookup_gross_yieldGross rent yield stored for a state or county in gross-yield.json.No findings
Why it is in this group
- The name "lookup_gross_yield" says "lookup": a word for reading.
Description, as the server wrote it Gross rent yield stored for a state or county in gross-yield.json. The yield is the file's stored figure. A county that is not in the file returns an error.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
lookup_hud_rentPublished FY2027 HUD Fair Market Rent or Small Area FMR for a ZIP and bedroom count (studio through 4).No findings
Why it is in this group
- The name "lookup_hud_rent" says "lookup": a word for reading.
Description, as the server wrote it Published FY2027 HUD Fair Market Rent or Small Area FMR for a ZIP and bedroom count (studio through 4). This is the 40th-percentile voucher rent stored in the site's Section 8 extract, not a market-rent estimate. If the ZIP is absent, or the extract has more than one town rent, the tool says so and does not pick a number.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
lookup_rent_to_incomeCensus median rent, renter income, and HUD income limits stored for a state or county in rent-to-income.json.No findings
Why it is in this group
- The name "lookup_rent_to_income" says "lookup": a word for reading.
Description, as the server wrote it Census median rent, renter income, and HUD income limits stored for a state or county in rent-to-income.json. The ratio is the file's stored hundredths, which uses the site's half-up formula. A county that is not in the file returns an error.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged untrusted-input or outbound.
- Reads private data1
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write0
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http rent-tools https://rentalanalytics.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__rent-tools__lookup_hud_rent",
"mcp__rent-tools__compare_str_ltr",
"mcp__rent-tools__lookup_covered_market",
"mcp__rent-tools__lookup_rent_to_income",
"mcp__rent-tools__lookup_gross_yield",
"mcp__rent-tools__lookup_city_rules"
],
"ask": [
"mcp__rent-tools__estimate_rent",
"mcp__rent-tools__calculate_cap_rate",
"mcp__rent-tools__calculate_cash_flow",
"mcp__rent-tools__calculate_dscr",
"mcp__rent-tools__calculate_amortization",
"mcp__rent-tools__advise_lease_renewal",
"mcp__rent-tools__calculate_opex",
"mcp__rent-tools__calculate_gross_yield",
"mcp__rent-tools__illustrate_1031_exchange",
"mcp__rent-tools__illustrate_cost_segregation"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as rent-tools. Review it before you use it.
Capability tags behind 1 rule
- mcp__rent-tools__lookup_city_rules private-data