Skip to main content
Glama

Year Fifteen: LIHTC Year 15 properties and exits

LIHTC properties reaching Year 15 in a state

find_year15_properties
Read-onlyIdempotent

Lists tax credit properties in one state from HUD's LIHTC database (placed in service 2009 to 2018) with name, HUD id, city, units, low-income units, credit type and estimated compliance-period end year. Filter by end year (2023 to 2032), city, minimum units or credit type; returns the total matched and a page of rows.

Input Schema

NameRequiredDescriptionDefault
cityNoCity as HUD lists it, e.g. "Houston".
limitNoRows to return (default 10, max 50). Sorted by units, largest first.
stateYesTwo-letter state or territory code, e.g. TX.
offsetNoRows to skip, for paging.
min_unitsNoOnly properties with at least this many total units.
credit_typeNoCredit type decoded from HUD's CREDIT field.
compliance_end_yearNoEstimated year the 15-year compliance period ends (placed-in-service year + 14), e.g. 2027.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety bar is low. The description adds genuinely useful non-annotation context: the HUD LIHTC source database and the 2009-2018 placed-in-service cohort, plus the fact that results are split into a total count and a paged row set. It does not disclose the sort order or paging limits (those live only in the schema).

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero filler: the first front-loads what the tool returns and its source, the second enumerates filters and output shape. Nothing is repeated from the schema verbatim beyond necessary framing.

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

Completeness4/5

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

For a 7-parameter read-only query with full schema coverage, the description covers source, cohort, filters, and return shape, which is enough to call it correctly. The only meaningful gap is routing: it does not explain how it relates to year15_summary or year15_exit_options, leaving sibling selection to inference.

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%, so the baseline is 3. The description restates the filterable parameters (end year, city, min units, credit type) but adds no semantics beyond the schema, and it omits limit/offset entirely except via the loose phrase 'a page of rows'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb + resource + scope: 'Lists tax credit properties in one state from HUD's LIHTC database', and adds the placed-in-service window (2009-2018) and the fields returned. The parenthetical provenance and the 'total matched + page of rows' phrasing implicitly separate it from year15_summary (aggregates) and get_property (single record), but no sibling is named, so an agent must infer the split.

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

Usage Guidelines3/5

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

The description states the available filters (end year, city, min units, credit type), which implies the retrieval use case, but never says when to choose this over year15_summary or get_property. No exclusions, prerequisites, or 'use X instead when' guidance is given.

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