MCP Server

Homecastr Remote MCP

io.github.dhardestylewis/homecastr-remote
Data & Analytics Real Estate Public & reachable MCP 2026-07-28

What this MCP does

Provides U.S. property value forecasts across addresses, parcels, units, ZIP codes, census geographies, and states, along with housing, permit, environmental, and benchmark datasets.

forecast_by_address
Forecast by Address
Get probabilistic home value forecasts for a US street address. Returns P10/P50/P90 bands, appreciation %, reliability score, and 5-year fan chart. Best coverage: Houston metro area.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['address'], 'properties': {'year': {'type': 'number', 'description': 'Target forecast year (2026-2030, default: 2030)'}, 'address': {'type': 'string', 'description': "US street address, e.g. '5000 Westheimer Rd Houston TX 77056'"}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
forecast_by_county
Forecast by County
Get county-level probabilistic forecasts by 5-digit FIPS. Nationwide coverage. Good for market-level analysis.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['fips'], 'properties': {'fips': {'type': 'string', 'description': '5-digit county FIPS. Harris County TX=48201, LA=06037, Manhattan=36061, Miami-Dade=12086, Cook County IL=17031, King County WA=53033.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
forecast_by_h3_cell
Forecast by H3 Cell (Houston)
Get neighborhood-level forecasts by H3 hex cell ID at resolution 8. Houston metro only. Prefer forecast_by_tabblock or forecast_by_tract for new integrations.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['h3_id'], 'properties': {'year': {'type': 'number', 'description': 'Target forecast year (default: 2026)'}, 'h3_id': {'type': 'string', 'description': "H3 cell ID at resolution 8, e.g. '882a100c65fffff'"}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
forecast_by_parcel
Forecast by Parcel ID
Get lot-level probabilistic forecasts by county tax parcel account number. Coverage: Florida statewide + Houston metro. Returns P10/P25/P50/P75/P90 fan chart across 1-5 year horizons.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['acct'], 'properties': {'acct': {'type': 'string', 'description': "County tax parcel account number. Florida: dash-separated (e.g. '00404328020003500'). Houston HCAD: 10-13 digits."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
forecast_by_state
Forecast by State
Get state-level probabilistic forecasts by 2-digit FIPS. All 50 US states. Use for macro market selection.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['fips'], 'properties': {'fips': {'type': 'string', 'description': '2-digit state FIPS. TX=48, FL=12, NY=36, CA=06, IL=17, WA=53.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
forecast_by_tabblock
Forecast by Census Tabulation Block
Get sub-neighborhood probabilistic forecasts by US Census tabulation block GEOID20 (15 digits). Coverage: NYC (32K tabblocks) and Houston metro (34K tabblocks). Highest geographic resolution available.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['geoid'], 'properties': {'geoid': {'type': 'string', 'description': "15-digit Census GEOID20 (state 2 + county 3 + tract 6 + block 4). NYC example: '360050002000001'. Houston example: '480717106001022'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
forecast_by_tract
Forecast by Census Tract
Get neighborhood-level probabilistic forecasts by US Census tract GEOID20 (11 digits). Coverage: Florida + Houston via jurisdiction model; all ~82K US tracts via ACS nationwide model. Useful for cross-market analysis.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['geoid'], 'properties': {'geoid': {'type': 'string', 'description': "11-digit Census tract GEOID20 (state 2 + county 3 + tract 6). Example: '48201231400' (Harris County, TX). '36061023100' (Manhattan, NY)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
forecast_by_unit
Forecast by Individual Unit
Get unit-level forecasts by assessor account. Finest resolution - individual condo units, SFRs, townhouses. Use include_siblings=true to get all units in the same condo building. Coverage: Florida + Houston.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['acct'], 'properties': {'acct': {'type': 'string', 'description': "Assessor account. FL DOR: '00404328020003500'. Houston HCAD: 10-13 digits."}, 'include_siblings': {'type': 'boolean', 'description': 'Return all condo sibling units (same condo_group). Default: false.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
forecast_by_zcta
Forecast by ZIP Code (ZCTA)
Get ZIP-level probabilistic forecasts by 5-digit ZCTA. Coverage: ~20,000 ZCTAs nationwide via ACS model with 6-year horizon (0-72 months). Use this for quick cross-market ZIP-level comparisons.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['zcta'], 'properties': {'zcta': {'type': 'string', 'description': "5-digit ZCTA / ZIP code. Examples: '77056' (Houston Galleria), '10001' (Manhattan), '94110' (SF Mission), '60614' (Chicago Lincoln Park)."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
forecast_by_zip3
Forecast by ZIP3
Get ZIP3-level forecasts (first 3 ZIP digits). 6,210 areas nationwide. Mid-size geography between ZCTA and county.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['zip3'], 'properties': {'zip3': {'type': 'string', 'description': 'First 3 digits of ZIP. Houston=770, Manhattan=100, Miami=331, Chicago=606, SF=941, Seattle=981, LA=900.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_analytics_events
Get Analytics Events
Get published aggregate product-event statistics with personally identifying fields removed.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'days': {'type': 'number', 'description': 'Optional lookback in days.'}, 'limit': {'type': 'number', 'description': 'Optional maximum number of records.'}, 'page_path': {'type': 'string', 'description': 'Optional page-path filter.'}, 'event_name': {'type': 'string', 'description': 'Optional event-name filter.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_api_status
Get API Status
Get the current published Homecastr API health status.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_api_usage
Get API Usage
Get usage statistics for the active Homecastr API identity.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_backtest_scores
Get Backtest Scores
Retrieve public-safe benchmark score summaries such as model-vs-persistence tables. Returns asset IDs, artifact IDs, model version labels, and per-target score rows.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'target': {'type': 'string', 'description': "Optional target filter such as 'total_population'."}, 'benchmark_id': {'type': 'string', 'description': "Optional benchmark identifier, e.g. 'acs_cutoff2016_horizon8_maricopa_realized_acs'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_benchmark_dataset
Get Benchmark Dataset
Get the catalog entry for one Homecastr public-data or benchmark asset by asset_id. Use this to discover the right REST path before calling vintages, backtests, or source manifests.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['asset_id'], 'properties': {'asset_id': {'type': 'string', 'description': "Stable Homecastr asset identifier, e.g. 'backtest.public_vintage_oeo_maricopa_2022'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_benchmark_result
Get Benchmark Result
Get one canonical benchmark result by benchmark_id. Returns standardized score rows, evaluation cutoff metadata, reproducibility references, and benchmark-only labeling.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['benchmark_id'], 'properties': {'target': {'type': 'string', 'description': "Optional target filter such as 'total_population'."}, 'benchmark_id': {'type': 'string', 'description': "Canonical benchmark identifier such as 'acs_cutoff2016_horizon8_maricopa_realized_acs'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_census_bps_county_monthly
Census BPS County Monthly Permits
Query normalized Census Building Permits Survey county-month rows from Homecastr's public R2-backed permit surface. Use this for independently verifiable county permit totals, monthly settlement checks, and builder/market data workflows.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'kind': {'enum': ['current_month', 'year_to_date'], 'type': 'string', 'description': 'Census BPS file kind. Defaults to current_month.'}, 'year': {'type': 'number', 'description': 'Optional four-digit survey year. Supply together with month unless history=true.'}, 'limit': {'type': 'number', 'description': 'Maximum rows to return, capped at 5000. Defaults to 100.'}, 'month': {'type': 'number', 'description': 'Optional survey month, 1-12. Supply together with year unless history=true.'}, 'history': {'type': 'boolean', 'description': 'If true, returns a county time series across available partitions. Requires county_fips.'}, 'summary': {'type': 'boolean', 'description': 'If true, returns manifest and partition metadata without row payloads.'}, 'state_fips': {'type': 'string', 'description': "Optional 2-digit state FIPS filter, e.g. '48' for Texas."}, 'county_fips': {'type': 'string', 'description': "Optional 5-digit county FIPS, e.g. '48201' for Harris County, TX."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_county_outlook
Get County Outlook
Get the published county outlook metrics for a 5-digit county FIPS code.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['fips'], 'properties': {'fips': {'type': 'string', 'description': '5-digit county FIPS code.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_data_artifact
Get Data Artifact
Get metadata for one reviewed public artifact by artifact_id. Returns format, media type, owner asset, retrieval metadata, and the canonical download path.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['artifact_id'], 'properties': {'artifact_id': {'type': 'string', 'description': "Artifact identifier such as 'public-data.full_data_surface_matrix_tsv' or 'benchmark.public_vintage_oeo_maricopa_2022_csv'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_data_asset
Get Data Asset
Get one canonical data-asset record by asset_id. Returns surface coverage, canonical contracts, provenance, access policy, and related artifact or provenance links.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['asset_id'], 'properties': {'asset_id': {'type': 'string', 'description': "Canonical data asset identifier, e.g. 'forecast.tract_home_value' or 'context.census_acs'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_data_coverage
Get Data Coverage
Summarize source, panel, source-to-geography index, and coverage-map posture across the source inventory. Returns counts by tier, status, family, geography, resolution, license status, panel lineage, coverage geometry role, native-boundary status, and top coverage-map regions.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_data_schema
Get Data Schema
Get one canonical schema definition by schema_id, including its JSON Schema definition and the data families or assets that reference it.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['schema_id'], 'properties': {'schema_id': {'type': 'string', 'description': "Canonical schema identifier, e.g. 'hc.dataset_asset.v1'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_data_source
Get Data Source
Get one original data source by source_id, including official outbound URLs, source family, panel links, provenance metadata, and access policy.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['source_id'], 'properties': {'source_id': {'type': 'string', 'description': "Canonical source identifier such as 'source.hcad_houston.assessor' or 'census.building_permits.county_month'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_entity
Get Entity
Get canonical metadata for one geography entity such as a tract, county, ZCTA, state, or tabblock. Returns normalized IDs, labels, parent hierarchy, and source asset links.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['entity_id'], 'properties': {'entity_id': {'type': 'string', 'description': "Canonical entity identifier such as '48201231400' for a tract, '48201' for a county, '77056' for a ZCTA, or '48' for a state."}, 'entity_type': {'type': 'string', 'description': "Optional explicit entity type such as 'tract', 'county', 'zcta', 'state', or 'tabblock'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_epa_echo_npdes_outfalls
EPA ECHO ICIS-NPDES Outfalls
Query normalized EPA ECHO ICIS-NPDES outfall, facility, permit-status, and compliance context rows from Homecastr's public R2-backed environmental permit surface. Use this for public construction stormwater, wastewater, waterbody, permit-component, and current-violation screening; full ICIS limits, effluent, and violation tables still need separate normalization before settlement use.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Maximum outfall rows to return, capped at 5000. Defaults to 100.'}, 'state': {'type': 'string', 'description': "Optional 2-character permit state prefix, e.g. 'TX', 'GA', 'WV', or 'CA'. Required unless permit_id or summary=true is supplied."}, 'status': {'type': 'string', 'description': "Optional permit status code or text filter, e.g. 'EFF', 'Effective', 'Admin Continued', or 'Terminated'."}, 'summary': {'type': 'boolean', 'description': 'If true, returns manifest and partition metadata without row payloads.'}, 'component': {'type': 'string', 'description': "Optional permit component text filter, e.g. 'Construction Stormwater', 'Industrial Stormwater', 'POTW', 'CSO', or 'CAFO'."}, 'permit_id': {'type': 'string', 'description': 'Optional exact NPDES permit identifier. If state is omitted, the first two permit characters are used as the state partition.'}, 'cwa_status': {'type': 'string', 'description': "Optional Clean Water Act status text filter, e.g. 'Violation Identified' or 'No Violation Identified'."}, 'with_coordinates': {'type': 'boolean', 'description': 'If true, return only rows with latitude and longitude.'}, 'current_violation': {'type': 'boolean', 'description': 'Optional current violation flag.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_epa_echo_npdes_sewer_overflow_history
EPA ECHO NPDES Sewer Overflow Event History
Query normalized EPA ECHO NPDES all-version sewer overflow and bypass event rows from Homecastr's public R2-backed environmental permit surface. Use this for public amendment/replacement history by permit, state, year, event type, volume, current-report flag, and replacing payload IDs; add refresh/checksum policy before autonomous settlement.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'year': {'type': 'number', 'description': 'Optional event year based on event start datetime or report start date.'}, 'limit': {'type': 'number', 'description': 'Maximum event-version rows to return, capped at 5000. Defaults to 100.'}, 'state': {'type': 'string', 'description': "Optional 2-character permit state prefix, e.g. 'IL', 'GA', 'PR', or 'TX'."}, 'summary': {'type': 'boolean', 'description': 'If true, returns manifest and count metadata without row payloads.'}, 'permit_id': {'type': 'string', 'description': 'Optional exact NPDES permit identifier.'}, 'event_type': {'type': 'string', 'description': "Optional event type text filter, e.g. 'Sanitary Sewer Overflow', 'Combined Sewer Overflow', or 'Bypass'."}, 'current_only': {'type': 'boolean', 'description': 'If true, return only rows where EPA marks the report form as current.'}, 'include_replaced': {'type': 'boolean', 'description': 'If false, exclude replaced or non-current report versions. Defaults to true.'}, 'with_coordinates': {'type': 'boolean', 'description': 'If true, return only events with latitude and longitude.'}, 'min_volume_gallons': {'type': 'number', 'description': 'Optional minimum reported discharge volume in gallons.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_epa_echo_npdes_sewer_overflows
EPA ECHO NPDES Sewer Overflow Events
Query normalized EPA ECHO NPDES current sewer overflow and bypass event rows from Homecastr's public R2-backed environmental permit surface. Use this for public event context by permit, state, year, event type, volume, and coordinates; add refresh/checksum policy before autonomous settlement.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'year': {'type': 'number', 'description': 'Optional event year based on event start datetime or report start date.'}, 'limit': {'type': 'number', 'description': 'Maximum events to return, capped at 5000. Defaults to 100.'}, 'state': {'type': 'string', 'description': "Optional 2-character permit state prefix, e.g. 'IL', 'GA', 'PR', or 'TX'."}, 'summary': {'type': 'boolean', 'description': 'If true, returns manifest and count metadata without row payloads.'}, 'permit_id': {'type': 'string', 'description': 'Optional exact NPDES permit identifier.'}, 'event_type': {'type': 'string', 'description': "Optional event type text filter, e.g. 'Sanitary Sewer Overflow', 'Combined Sewer Overflow', or 'Bypass'."}, 'with_coordinates': {'type': 'boolean', 'description': 'If true, return only events with latitude and longitude.'}, 'min_volume_gallons': {'type': 'number', 'description': 'Optional minimum reported discharge volume in gallons.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_epa_echo_npdes_violations
EPA ECHO ICIS-NPDES Violations
Query normalized EPA ECHO ICIS-NPDES non-effluent violation rows from Homecastr's public R2-backed environmental permit surface. Use this for permit-schedule, compliance-schedule, and single-event violation context by permit, state, year, violation code, RNC status, and linked-enforcement counts; full effluent violations, limits, and detailed enforcement action expansion still need separate normalization before settlement use.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'year': {'type': 'number', 'description': 'Optional calendar year based on the violation, schedule, RNC detection, or actual date.'}, 'limit': {'type': 'number', 'description': 'Maximum violation rows to return, capped at 5000. Defaults to 100.'}, 'state': {'type': 'string', 'description': "Optional 2-character permit state prefix, e.g. 'TX', 'IL', 'MO', or 'NY'. Required unless permit_id or summary=true is supplied."}, 'summary': {'type': 'boolean', 'description': 'If true, returns manifest and partition metadata without row payloads.'}, 'category': {'type': 'string', 'description': 'Optional violation category: permit_schedule, compliance_schedule, or single_event.'}, 'permit_id': {'type': 'string', 'description': 'Optional exact NPDES permit identifier. If state is omitted, the first two permit characters are used as the state partition.'}, 'violation_code': {'type': 'string', 'description': "Optional ICIS violation code filter, e.g. 'A0011' or 'C40'."}, 'rnc_detection_code': {'type': 'string', 'description': 'Optional RNC detection code filter.'}, 'rnc_resolution_code': {'type': 'string', 'description': 'Optional RNC resolution code filter.'}, 'has_linked_enforcement': {'type': 'boolean', 'description': 'If true, return only violation rows linked to one or more enforcement-action rows; if false, return only rows without linked enforcement.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_fast41_projects
FAST-41 Federal Permitting Projects
Query normalized FAST-41 federal permitting project inventory rows from Homecastr's public R2-backed permit surface. Use this for project status, sector, agency, state, and location filters; do not use it for milestone-date settlement until the full FAST-41 dataset is normalized.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Maximum projects to return, capped at 5000. Defaults to 100.'}, 'state': {'type': 'string', 'description': "Optional 2-letter state abbreviation, e.g. 'TX' or 'CA'."}, 'sector': {'type': 'string', 'description': "Optional sector text filter, e.g. 'Electricity Transmission', 'Renewable Energy', or 'Surface Transportation'."}, 'status': {'type': 'string', 'description': "Optional status text filter, e.g. 'In Progress', 'Complete', or 'Paused'."}, 'summary': {'type': 'boolean', 'description': 'If true, returns manifest and count metadata without row payloads.'}, 'project_id': {'type': 'string', 'description': 'Optional numeric FAST-41 project id.'}, 'lead_agency': {'type': 'string', 'description': 'Optional lead agency text filter.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_forecast_vintage
Get Forecast Vintage
Get one canonical public forecast vintage by vintage_id. Returns grouped same-vintage public forecast series with provenance-heavy labeling for benchmark use.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['vintage_id'], 'properties': {'target': {'type': 'string', 'description': "Optional target filter such as 'total_population'."}, 'vintage_id': {'type': 'string', 'description': "Canonical forecast vintage identifier such as 'az_oeo_maricopa_medium_2022_report'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_geography_crosswalk
Get Geography Crosswalk
Resolve canonical geography crosswalk rows such as tract-to-county, tract-to-state, tract-to-ZCTA, or tabblock-to-tract mappings.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['source_entity_id'], 'properties': {'source_entity_id': {'type': 'string', 'description': "Source entity identifier such as tract GEOID20 '48201231400' or tabblock GEOID20 '480717106001022'."}, 'source_entity_type': {'type': 'string', 'description': "Optional explicit source entity type such as 'tract', 'county', or 'tabblock'."}, 'target_entity_type': {'type': 'string', 'description': "Optional target entity type such as 'state', 'county', 'tract', or 'zcta'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_panel_lineage
Get Panel Lineage
Get the source-to-panel lineage for a canonical panel. Returns source roles, join keys, transforms, output fields, and official source URLs.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['panel_id'], 'properties': {'panel_id': {'type': 'string', 'description': "Canonical panel identifier such as 'panel.acs_nationwide' or 'panel.az_maricopa_mag_multires_enriched'."}, 'source_id': {'type': 'string', 'description': 'Optional source identifier filter for one lineage edge or source family member.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_permit_zoning_readiness
Permit and Zoning Readiness
Get permit, zoning, energy, and public-record data readiness metadata. Use this before building permit/zoning markets or agent workflows; it reports verified R2 evidence, gaps, and whether raw rows are exposed.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'summary': {'type': 'boolean', 'description': 'Return only aggregate source and market readiness counts.'}, 'market_id': {'type': 'string', 'description': "Optional market-template id to inspect, e.g. 'monthly_county_permit_pulse'."}, 'source_id': {'type': 'string', 'description': "Optional source id to inspect, e.g. 'census_bps_county_monthly_ascii'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_provenance
Get Provenance
Get one reviewed provenance manifest or source ledger by provenance_id. Returns retrieval and publication metadata, benchmark role, summary counts, and any public-safe details.
Read only Idempotent
Input schema
{'type': 'object', 'required': ['provenance_id'], 'properties': {'provenance_id': {'type': 'string', 'description': "Reviewed provenance identifier such as 'provenance.arizona_archive_status_ledger' or 'benchmark.raw_single_source_registry'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_public_forecast_vintage
Get Public Forecast Vintage
Retrieve validated public forecast vintage rows, starting with the Arizona OEO Maricopa 2022 county-control fixture. Every row carries provenance and benchmark-only labeling.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'target': {'type': 'string', 'description': "Optional target filter such as 'total_population'."}, 'vintage_id': {'type': 'string', 'description': "Optional vintage identifier, e.g. 'az_oeo_maricopa_medium_2022_report'."}, 'support_level': {'type': 'string', 'description': "Optional support-level filter such as 'county'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
get_source_coverage_map
Get Source Coverage Map
Return the public source coverage GeoJSON layer used by the interactive docs map. Features carry public reference boundaries or generalized selection regions, associated source IDs, official upstream URLs, panel links, readiness, license metadata, and geometry notes.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
list_benchmark_datasets
List Benchmark Datasets
List Homecastr benchmark and public-data assets. Returns release phase, support level, benchmark role, and the recommended public surface for each asset.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'phase': {'type': 'string', 'description': "Optional release phase filter. Common values: 'phase_1', 'phase_2', 'phase_3', or 'hold'."}, 'asset_class': {'type': 'string', 'description': "Optional asset class filter. Common values: 'forecast_outputs', 'backtest_vintage_outputs', 'benchmark_panels', 'provenance_manifests', 'holdback_assets'."}, 'public_readiness': {'type': 'string', 'description': "Optional readiness filter. Values: 'launch', 'draft', or 'hold'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
list_benchmark_sources
List Benchmark Sources
List reviewed public benchmark source manifests and their provenance metadata.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'asset_id': {'type': 'string', 'description': 'Optional benchmark asset identifier.'}, 'include_details': {'type': 'boolean', 'description': 'Include reviewed manifest details when available.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
list_data_assets
List Data Assets
List the canonical Homecastr data-asset catalog across public, metadata-only, restricted, and unavailable rows. Use this to discover the full standardized surface, not just currently launched endpoints.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'visibility': {'type': 'string', 'description': "Optional visibility filter such as 'public', 'metadata_only', 'restricted', or 'unavailable'."}, 'data_family': {'type': 'string', 'description': "Optional family filter such as 'forecast_output', 'input_panel', 'source_metadata', or 'provenance_manifest'."}, 'public_status': {'type': 'string', 'description': "Optional public status filter such as 'launch', 'draft', 'metadata_only', 'hold', or 'not_public'."}, 'inventory_asset': {'type': 'string', 'description': "Optional public-data inventory asset filter such as 'forecast.aggregate_surfaces' or 'benchmark.normalized_training_panels_candidate'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
list_data_schemas
List Data Schemas
List canonical Homecastr schema contracts from the public schema bundle. Use this to discover dataset, provenance, panel, forecast, benchmark, and artifact contract IDs.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'schema_id': {'type': 'string', 'description': "Optional canonical schema filter such as 'hc.dataset_asset.v1' or 'hc.panel_row.v1'."}, 'data_family': {'type': 'string', 'description': "Optional family filter such as 'forecast_output' or 'training_panel'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
list_data_sources
List Data Sources
List original data sources used, staged, or reviewed for Homecastr panels. Returns official outbound source URLs, source tier, source status, panel links, license status, and public readiness.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'panel_id': {'type': 'string', 'description': "Optional canonical panel filter such as 'panel.acs_nationwide' or 'panel.az_maricopa_mag_multires_enriched'."}, 'source_id': {'type': 'string', 'description': "Optional exact source identifier such as 'census.acs.county_5yr' or 'az.mag_2023_official_mpa_raz_taz_projections'."}, 'data_family': {'type': 'string', 'description': "Optional source-family filter such as 'assessor_tax', 'hazard_context', 'permits', or 'mag_public_projection_and_planning_surfaces'."}, 'source_status': {'type': 'string', 'description': "Optional status filter such as 'used', 'candidate', 'blocked', or 'mentioned'."}, 'license_status': {'type': 'string', 'description': "Optional license or policy filter such as 'public_source_reviewed', 'public_source_metadata_only', or 'source_specific_review_required'."}, 'public_readiness': {'type': 'string', 'description': "Optional readiness filter such as 'metadata_public', 'metadata_public_raw_hold', or 'summary_public_rows_missing'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
list_public_records_acquisition
List Public Records Acquisition
List metadata-only public-records acquisition evidence lanes. Returns durable cloud evidence, public-route checks, records-law gate posture, holdbacks, and next safe action without exposing raw payloads or send-ready request copy.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'lane_id': {'type': 'string', 'description': "Optional exact acquisition lane identifier such as 'georgia_permit_public_routes'."}, 'geography': {'type': 'string', 'description': "Optional geography token filter such as 'US-FL-Orange' or 'US-AZ-Maricopa'."}, 'source_family': {'type': 'string', 'description': "Optional source-family filter such as 'utility_energy_infrastructure' or 'assessor_tax'."}, 'current_status': {'type': 'string', 'description': "Optional acquisition status filter such as 'public_r2_partial_downstream_screen_complete'."}, 'records_law_gate': {'type': 'string', 'description': "Optional request-gate posture such as 'closed_no_send_ready_candidate' or 'draft_only_no_live_request'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
list_source_coverage_index
List Source Coverage Index
List source-to-coverage geography index rows. Returns one row per source with coverage feature IDs, declared geography, coverage geometry role, reference boundary IDs/names when available, native-boundary review status, official URLs, and geometry redistribution policy.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'panel_id': {'type': 'string', 'description': "Optional panel identifier such as 'panel.az_maricopa_mag_multires_enriched'."}, 'source_id': {'type': 'string', 'description': "Optional exact source identifier such as 'az.maricopa_parcels'."}, 'source_family': {'type': 'string', 'description': "Optional source-family filter such as 'maricopa_assessor_parcels' or 'assessor_tax'."}, 'license_status': {'type': 'string', 'description': 'Optional license or policy status filter.'}, 'public_readiness': {'type': 'string', 'description': "Optional public-readiness filter such as 'metadata_public'."}, 'coverage_feature_id': {'type': 'string', 'description': "Optional coverage-map feature identifier such as 'coverage.arizona_phoenix_maricopa_pinal'."}, 'coverage_geometry_role': {'type': 'string', 'description': "Optional coverage geometry role such as 'reference_boundary' or 'generalized_selection_region'."}, 'native_boundary_status': {'type': 'string', 'description': "Optional native-boundary status such as 'native_boundary_candidate_terms_review_required' or 'reference_boundary_join_required'."}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
list_training_runs
List Training Runs
List the published training-run history and cost metadata with optional jurisdiction and year filters.
Read only Idempotent
Input schema
{'type': 'object', 'properties': {'year': {'type': 'number', 'description': 'Optional year filter.'}, 'limit': {'type': 'number', 'description': 'Optional maximum number of records.'}, 'jurisdiction': {'type': 'string', 'description': 'Optional jurisdiction filter.'}}, 'additionalProperties': False}
Output schema
{'type': 'object', 'required': ['result'], 'properties': {'result': {}}, 'additionalProperties': False}
Added
get_api_usage
Sept. 29, 2026, 2:41 a.m.
Added
get_api_status
Sept. 29, 2026, 2:41 a.m.
Added
get_analytics_events
Sept. 29, 2026, 2:41 a.m.
Added
list_training_runs
Sept. 29, 2026, 2:41 a.m.
Added
list_benchmark_sources
Sept. 29, 2026, 2:41 a.m.
Added
get_county_outlook
Sept. 29, 2026, 2:41 a.m.
Added
get_benchmark_result
Sept. 29, 2026, 2:41 a.m.
Added
get_forecast_vintage
Sept. 29, 2026, 2:41 a.m.
Added
get_data_artifact
Sept. 29, 2026, 2:41 a.m.
Added
get_provenance
Sept. 29, 2026, 2:41 a.m.
Added
get_geography_crosswalk
Sept. 29, 2026, 2:41 a.m.
Added
get_entity
Sept. 29, 2026, 2:41 a.m.
Added
get_data_schema
Sept. 29, 2026, 2:41 a.m.
Added
list_data_schemas
Sept. 29, 2026, 2:41 a.m.
Added
get_source_coverage_map
Sept. 29, 2026, 2:41 a.m.
Added
list_public_records_acquisition
Sept. 29, 2026, 2:41 a.m.
Added
list_source_coverage_index
Sept. 29, 2026, 2:41 a.m.
Added
get_data_coverage
Sept. 29, 2026, 2:41 a.m.
Added
get_panel_lineage
Sept. 29, 2026, 2:41 a.m.
Added
get_data_source
Sept. 29, 2026, 2:41 a.m.
Added
list_data_sources
Sept. 29, 2026, 2:41 a.m.
Added
get_data_asset
Sept. 29, 2026, 2:41 a.m.
Added
list_data_assets
Sept. 29, 2026, 2:41 a.m.
Added
get_backtest_scores
Sept. 29, 2026, 2:41 a.m.
Added
get_public_forecast_vintage
Sept. 29, 2026, 2:41 a.m.
Added
get_benchmark_dataset
Sept. 29, 2026, 2:41 a.m.
Added
list_benchmark_datasets
Sept. 29, 2026, 2:41 a.m.
Added
get_epa_echo_npdes_violations
Sept. 29, 2026, 2:41 a.m.
Added
get_epa_echo_npdes_sewer_overflow_history
Sept. 29, 2026, 2:41 a.m.
Added
get_epa_echo_npdes_outfalls
Sept. 29, 2026, 2:41 a.m.