LIHTC API and MCP server
AI assistants and your own code can query this site's LIHTC data directly. Connect any MCP client to https://lihtc.loans/mcp, or call the JSON endpoints below. It's free, read-only and needs no key: HUD's FY2026 income and rent limits for every county, QCT and DDA checks on HUD's 2027 lists, HUD's LIHTC property database, state ceilings and agencies, IRS credit rates, equity pricing and the credit and rent math. Every answer names its source, its as-of date and the lihtc.loans page to cite.
Connect an AI assistant
The server speaks the Model Context Protocol over Streamable HTTP at https://lihtc.loans/mcp, with no authentication. Protocol versions 2025-06-18, 2025-03-26 and 2024-11-05.
- Claude (claude.ai and Claude Desktop): Settings, Connectors, Add custom connector. Name it LIHTC Atlas and paste
https://lihtc.loans/mcp. No OAuth settings needed. - Claude Code:
claude mcp add --transport http lihtc-atlas https://lihtc.loans/mcp - ChatGPT: add it as a custom connector (an MCP server URL with no authentication). ChatGPT puts custom connectors behind developer mode in its settings, on plans that allow it.
- Other clients (Cursor, VS Code, agent frameworks): use the URL as a remote HTTP server. A typical config:
{
"mcpServers": {
"lihtc-atlas": {
"type": "http",
"url": "https://lihtc.loans/mcp"
}
}
} Server card: /.well-known/mcp.json. A GET to /mcp returns a short description and the tool list.
Things to ask once it's connected:
- What is the maximum 60% AMI rent for a two-bedroom in Maricopa County, Arizona, with a $140 utility allowance?
- Is 1200 Main St, Kansas City, MO 64105 in a QCT or DDA for a 2027 allocation?
- Estimate equity on a 4% deal with $28 million of eligible basis, 100% low-income, in a DDA.
- List the largest tax credit properties in Brooklyn and when their compliance periods end.
- What is Georgia's 2026 credit ceiling, and where is DCA's current QAP?
Tools
All ten are read-only. Each returns a text answer and the same data as structuredContent, with source, source_url, as_of and url (the page to cite).
get_income_limits
HUD FY2026 MTSP income limits for a county (a town in New England): 20% to 80% of area median for 1 to 8 persons, HERA Special limits where HUD lists them, the median family income and the maximum gross rent by bedroom count at each level.
Input {"state":"TX","county":"Harris","household_size":4,"ami_level":60}
Result Harris County, Texas: median family income $104,000. 60% AMI, 4 persons: $62,400. Max gross rent: studio $1,092, 1 BR $1,170, 2 BR $1,404, 3 BR $1,623.
calculate_max_rent
Maximum gross and tenant-paid rent for one unit, by county, bedrooms, AMI level and utility allowance, with the formula (IRS Publication 5913 method).
Input {"state":"AL","county":"Autauga","bedrooms":1,"ami_level":60,"utility_allowance":150}
Result 1 BR at 60%: 30% of the limit for 1.5 persons ($39,990) / 12 = $999 gross; $849 tenant-paid after the $150 allowance.
check_qct_dda
Is a site in a Qualified Census Tract or Difficult Development Area on HUD's 2027 lists (plus any newer year HUD posts)? Takes an address (geocoded by the Census Bureau), a latitude and longitude, or an 11-digit census tract.
Input {"address":"2321 4th St NE, Washington, DC 20002"}
Result Tract 11001009204, ZCTA 20017, Washington metro area. 2027 lists: QCT yes; DDA no.
search_properties
HUD-listed LIHTC properties still monitored for compliance, by state, city and words from the name or street, largest first, with page URLs and HUD project ids.
Input {"state":"IL","city":"Chicago","name":"senior","limit":3}
Result 54 matches in Chicago. 1. Greenwood Senior Living, 801 E 61st St: 218 income-restricted of 218 units, placed in service 2006. ...
get_property
One property's HUD record (units, bedrooms, placed-in-service and allocation years, credit type, bonds, income test, targeting), its compliance and extended-use years, 2027 QCT/DDA status, its county's 2026 limits and rents, and nearby properties. By page URL or HUD project id.
Input {"id":"ALA19940016"}
Result Athens Square, 1601 W Elm St, Athens, AL: 40 of 40 units income-restricted, placed in service 1994, 9% credits. 2027 QCT: yes.
get_state_lihtc
A state's allocating agency, Qualified Allocation Plan, state credit, 2026 9% credit ceiling and private activity bond cap, and its 2027 QCT and nonmetro DDA counts.
Input {"state":"CA"}
Result California: CTCAC. 2026 9% ceiling $134,437,736; bond cap $5,312,966,715; 1,719 QCTs on the 2027 list.
get_applicable_percentages
The monthly 70% (9%) and 30% (4%) present value rates from the IRS revenue ruling, with the 9% and 4% floors. Latest month by default.
Input {"month":"2026-11"}
Result November 2026 (Rev. Rul. 2026-21): 8.24% and 3.53% computed; floors 9% and 4%.
get_equity_pricing
Median net equity price per $1 of federal credit from CohnReznick's Housing Tax Credit Monitor, the series since late 2024, and national fund pricing.
Input {}
Result $0.823 per credit dollar, June to July 2026 (93 properties).
calculate_credits
Annual and 10-year credits and equity from eligible basis, applicable fraction, 4% or 9%, the 130% basis boost and a credit price. The same arithmetic as the credit estimator.
Input {"eligible_basis":15000000,"applicable_fraction":1,"credit_type":"9","boost":true,"credit_price":0.85}
Result Qualified basis $19,500,000; annual credit $1,755,000; $17,550,000 over 10 years; equity $14,917,500.
get_financing_quote_link
The financing quote page for a 4% or 9% deal and what the desk handles. It returns a link for the user; nothing is submitted through the server.
Input {}
Result https://lihtc.loans/get-financing/
Examples were run against the live data on October 30, 2026. Limits: HUD FY2026 MTSP files dated March 27, 2026. Designations: HUD 2027 lists, FR Doc. 2026-20390. Properties: HUD LIHTCPUB revised May 28, 2026. Rates: IRS revenue rulings. Pricing: CohnReznick Housing Tax Credit Monitor.
Calling it without a client
Each POST carries one JSON-RPC 2.0 message (or a batch of up to 20) and gets a JSON reply. The server is stateless: no session id, no event stream.
curl -s https://lihtc.loans/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' curl -s https://lihtc.loans/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/call",
"params":{"name":"calculate_max_rent",
"arguments":{"state":"TX","county":"Harris","bedrooms":3,
"ami_level":50,"utility_allowance":120}}}' The reply, shortened:
{"jsonrpc":"2.0","id":2,"result":{"content":[{"type":"text","text":
"Maximum 50% AMI LIHTC rent, 3 BR, Harris County, Texas (FY2026): gross $1,352/month;
less a $120 utility allowance, tenant-paid rent at most $1,232. ..."}],
"structuredContent":{"max_gross_rent":1352,"max_tenant_paid_rent":1232,
"imputed_household_size":4.5,"income_limit_used":54100,
"formula":"floor(0.30 x 54100 / 12) = 1352; minus utility allowance 120 = 1232",
"source":"HUD FY2026 Multifamily Tax Subsidy Project (MTSP) income limits, ...",
"as_of":"2026-03-27","url":"https://lihtc.loans/income-limits/texas/harris-county/", ...},
"isError":false}} REST endpoints
All GET, JSON, CORS open, no key. Errors come back as {"error": "..."} with status 400 (bad or ambiguous input; the message lists the matches and their fips), 404 (not found) or 502 (the Census geocoder didn't answer).
| Endpoint | Returns |
|---|---|
/api/locate?address=2321 4th St NE, Washington, DC 20002 | QCT and DDA status for one address (the check_qct_dda logic). Not cached. |
/api/limits?state=TX&county=Harris | FY2026 limits and maximum gross rents for one area; or ?fips=48201; add &household_size=4 or &ami_level=60. |
/api/state?st=CA | A state's agency, QAP, state credit, 2026 ceiling and bond cap, and 2027 QCT count. |
/api-data/mtsp/tx.json | One state's full MTSP limits file, every area (two-letter code, lower case); /api-data/mtsp/index.json lists them. |
/market/applicable-percentages.json | Every monthly IRS rate since January 2024, with the floors and the ruling for each month. |
/data/downloads/manifest.json | The bulk CSV and JSON files: MTSP limits, QCT/DDA lists and LIHTC properties. |
/openapi.json | OpenAPI 3.1 description of the endpoints above. |
Full schema: /openapi.json (OpenAPI 3.1). Bulk files and the column dictionary are on the data downloads page.
Rate limits and caching
There's no key and no fixed quota. Please stay near one request a second, cache what you fetch, and use the bulk downloads for whole-table work. /api/limits and /api/state send Cache-Control: public, max-age=3600; the data behind them changes when HUD or the IRS publishes (MTSP limits each spring, QCT/DDA lists each fall, IRS rates monthly). /api/locate and the address and coordinate checks in check_qct_dda call the Census Bureau geocoder each time and aren't cached. MCP responses are no-store. Cloudflare's standard abuse protections apply to all of it.
License and attribution
The underlying HUD, IRS and Census data is a U.S. government work and in the public domain. This site's compilation (the joins, the computed rents and credit math, and the file layout) is offered under CC BY 4.0: use it for anything, commercial included, with the credit "Data: LIHTC Atlas (lihtc.loans)" and a link. When an assistant answers from these tools, please cite the url each result gives. No warranty: these are copies of HUD's and the IRS's figures, and their own files, your state agency's charts and the recorded agreements govern. For a bulk or commercial feed, write to hello@lihtc.loans.
LIHTC Atlas is operated by Janover Capital LLC, not by HUD, the IRS or any state agency. The tools give data and arithmetic, not tax or legal advice. The financing tool only returns a link to the quote form; nothing is submitted for anyone.