{"serverId":"mcp-registry/com.nursinghomedatabase/mcp","tools":[{"name":"compare_facilities","fixed":{"name":"compare_facilities","description":"Compare up to 25 certified skilled nursing facilities by CMS CCN or web slug. Returns the same decision fields as search_facilities (ratings, nurse hours, turnover, inspection score, beds, fines, maps) as a table. Prefer this over looping get_facility against the 60 requests/minute limit.","inputSchema":{"type":"object","required":["ids"],"properties":{"ids":{"type":"array","items":{"type":"string"},"description":"CMS CCNs (provnum) or web slugs. Max 25."},"filedate":{"type":"string","description":"Optional CMS monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest file. Call list_file_dates first for available dates."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":190,"tokensAfter":190},{"name":"get_data_freshness","fixed":{"name":"get_data_freshness","description":"Get latest source dataset dates and row counts. For prior months, call list_file_dates and pass filedate to other tools.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":60,"tokensAfter":60},{"name":"get_facility","fixed":{"name":"get_facility","description":"Get one certified skilled nursing facility by CMS CCN (provnum) or web slug. Returns the same decision fields as search_facilities: ratings, nurse hours (HPRD), nurse/RN turnover, weighted inspection score, beds, fines, abuse/SFF flags, and maps deep-links. Use data_as_of as the CMS vintage; do not invent ratings or hours that are missing. Defaults to the latest monthly snapshot; pass filedate from list_file_dates for a prior month.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"filedate":{"type":"string","description":"Optional CMS monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest file. Call list_file_dates first for available dates."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":206,"tokensAfter":206},{"name":"get_facility_changes","fixed":{"name":"get_facility_changes","description":"Monitor one skilled nursing facility across two CMS monthly files. Defaults to latest vs the prior snapshot. Returns field-level diffs for stars, nurse hours, turnover, inspection score, abuse icon, high-performing icon, fines, and occupancy. Care Compare shows this month only — rerun after the next file.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"CMS CCN (provnum) or web slug"},"to":{"type":"string","description":"Later filedate. Omit to use the latest CMS file."},"from":{"type":"string","description":"Earlier filedate YYYY-MM-DD. Omit to use the snapshot before to."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":190,"tokensAfter":190},{"name":"get_facility_ownership","fixed":{"name":"get_facility_ownership","description":"Get CMS ownership records for one facility — who owns or manages the building. Defaults to the latest CMS monthly snapshot; pass filedate from list_file_dates to query a prior month.","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"},"filedate":{"type":"string","description":"Optional CMS monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest file. Call list_file_dates first for available dates."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":139,"tokensAfter":139},{"name":"get_owner","fixed":{"name":"get_owner","description":"Get an owner portfolio by web_owner slug, including facility names, locations, and overall stars. Defaults to the latest CMS monthly snapshot; pass filedate from list_file_dates to query a prior month.","inputSchema":{"type":"object","required":["web_owner"],"properties":{"filedate":{"type":"string","description":"Optional CMS monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest file. Call list_file_dates first for available dates."},"web_owner":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":144,"tokensAfter":144},{"name":"list_distinct_values","fixed":{"name":"list_distinct_values","description":"List distinct CMS ProviderInfo values and counts for a field. Omit field to see the catalog. Use field=ownership before search_facilities to get the 13 ownership types. city requires state.","inputSchema":{"type":"object","properties":{"field":{"enum":["ownership","state","city","sffstatus","abuse_icon","icon_hi_perf","certification","inhosp","ccrc_facil","overall_rating","survey_rating","quality_rating","staffing_rating","oldsurvey","chow_last_12mos","chainname","chain_name","chainid","chain_id"],"type":"string","description":"ProviderInfo field. Omit to list allowed fields. ownership is the search_facilities filter."},"state":{"type":"string","description":"Optional two-letter state. Required when field=city."},"filedate":{"type":"string","description":"Optional CMS monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest file. Call list_file_dates first for available dates."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":264,"tokensAfter":264},{"name":"list_file_dates","fixed":{"name":"list_file_dates","description":"List CMS monthly snapshot dates available in the database (newest first), plus the current filedate and known unpublished months. Use a returned date as filedate on other tools to retrieve a prior month instead of the latest data.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":90,"tokensAfter":90},{"name":"search_facilities","fixed":{"name":"search_facilities","description":"Find certified US skilled nursing facilities near an address or in a city. Filter by CMS ownership type (call list_distinct_values field=ownership first), star rating, abuse flag, high-performing icon, or Special Focus status. Returns ownership, ratings, nurse hours (HPRD), nurse/RN turnover, weighted inspection score, beds, fines, straight-line distance_miles, and maps deep-links. distance_miles is crow-flies, not drive time — use maps.google_dir / a mapping service for minutes.","inputSchema":{"type":"object","properties":{"q":{"type":"string"},"zip":{"type":"string"},"city":{"type":"string"},"sort":{"enum":["overall_rating","survey_rating","quality_rating","staffing_rating","distance","tothrd","total_nurse_hours","totalnursingstaffturnover","nurse_turnover","weighted_all_cycles_score","survey_score"],"type":"string","description":"Sort key: overall_rating (default, desc), survey_rating, quality_rating, staffing_rating, distance (asc, straight-line miles), tothrd or total_nurse_hours (desc), totalnursingstaffturnover or nurse_turnover (asc), weighted_all_cycles_score or survey_score (asc). Unknown values fall back to overall_rating."},"limit":{"type":"integer"},"state":{"type":"string"},"offset":{"type":"integer"},"address":{"type":"string","description":"Street address with city and state, or a street and ZIP. Geocoded by the Census Bureau as the distance origin. A city, place name, or ZIP alone will not match."},"filedate":{"type":"string","description":"Optional CMS monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest file. Call list_file_dates first for available dates."},"ownership":{"type":"string","description":"CMS ownership type from ProviderInfo.ownership. Case-insensitive. Prefixes For profit, Non profit, and Government match that kind. Call list_distinct_values with field=ownership for the 13 exact values (e.g. \"For profit - Limited Liability company\")."},"sffstatus":{"type":"string","description":"When truthy, keep only Special Focus Facility or candidate homes (non-empty sffstatus)."},"abuse_icon":{"type":"string","description":"CMS abuse icon filter. Y/yes/true/1 keeps only flagged homes; other values keep homes without the flag."},"icon_hi_perf":{"type":"string","description":"CMS high-performing icon (Risk-Based Survey eligibility). Y/yes/true/1 keeps only homes with the icon; other values keep homes without it. Point-in-time, not a permanent award."},"radius_miles":{"type":"number"},"max_overall_rating":{"type":"integer","description":"Maximum CMS overall star rating (1-5)."},"min_overall_rating":{"type":"integer","description":"Minimum CMS overall star rating (1-5)."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":749,"tokensAfter":749},{"name":"search_facilities_by_ownership","fixed":{"name":"search_facilities_by_ownership","description":"Find certified US SNFs by CMS ownership type (ProviderInfo.ownership). Call list_distinct_values with field=ownership first. Same result schema as search_facilities; combine with state, city, ZIP, or address.","inputSchema":{"type":"object","required":["ownership"],"properties":{"q":{"type":"string"},"zip":{"type":"string"},"city":{"type":"string"},"sort":{"enum":["overall_rating","survey_rating","quality_rating","staffing_rating","distance","tothrd","total_nurse_hours","totalnursingstaffturnover","nurse_turnover","weighted_all_cycles_score","survey_score"],"type":"string"},"limit":{"type":"integer"},"state":{"type":"string"},"offset":{"type":"integer"},"address":{"type":"string","description":"Street address with city and state, or a street and ZIP. Geocoded by the Census Bureau as the distance origin. A city, place name, or ZIP alone will not match."},"filedate":{"type":"string","description":"Optional CMS monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest file. Call list_file_dates first for available dates."},"ownership":{"type":"string","description":"CMS ownership type. Case-insensitive. Prefixes For profit, Non profit, and Government match that kind. Exact values from list_distinct_values field=ownership, e.g. \"For profit - Limited Liability company\"."},"radius_miles":{"type":"number"},"max_overall_rating":{"type":"integer"},"min_overall_rating":{"type":"integer"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":408,"tokensAfter":408},{"name":"search_owners","fixed":{"name":"search_owners","description":"Search nursing-home owners by name. Defaults to the latest CMS monthly snapshot; pass filedate from list_file_dates to query a prior month.","inputSchema":{"type":"object","required":["q"],"properties":{"q":{"type":"string"},"limit":{"type":"integer"},"offset":{"type":"integer"},"filedate":{"type":"string","description":"Optional CMS monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest file. Call list_file_dates first for available dates."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":139,"tokensAfter":139},{"name":"summarize_facilities","fixed":{"name":"summarize_facilities","description":"Aggregate numeric CMS ProviderInfo fields (n, mean, min, max; optional median) across certified SNFs. Prefer this over paging search_facilities for national or grouped stats. Call list_distinct_values for ownership catalogs; call list_file_dates for filedate. Facility-equal means — not bed-weighted. Missing values excluded per metric. Not causal. Not a substitute for get_facility on a named home. Rate limit 60 requests/minute.","inputSchema":{"type":"object","required":["metrics"],"properties":{"zip":{"type":"string"},"city":{"type":"string","description":"City filter. Requires state."},"state":{"type":"string"},"metrics":{"type":"array","items":{"type":"string"},"maxItems":20,"minItems":1,"description":"Metric keys: tothrd, rnhrd, weekend_tothrd, weekend_rnhrd, totalnursingstaffturnover, registerednurseturnover, weighted_all_cycles_score, overall_rating, survey_rating, staffing_rating, quality_rating, bedcert, restot, fine_tot, fine_cnt, occupancy (and documented synonyms)."},"filedate":{"type":"string","description":"Optional CMS monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest file. Call list_file_dates first for available dates."},"group_by":{"enum":["ownership","ownership_kind","state","overall_rating","staffing_rating","survey_rating","quality_rating","sffstatus","abuse_icon","icon_hi_perf"],"type":"string","description":"Omit for one national (or filter-scoped) row per metric. ownership_kind is Government | For profit | Non profit."},"ownership":{"type":"string","description":"CMS ownership type. Prefixes For profit, Non profit, and Government match that kind. Applied before aggregation."},"sffstatus":{"type":"string"},"abuse_icon":{"type":"string"},"icon_hi_perf":{"type":"string","description":"CMS high-performing icon. Y keeps homes currently eligible for a Risk-Based Survey."},"include_median":{"type":"boolean","description":"When true, each stats object also includes median. Default false."},"max_overall_rating":{"type":"integer"},"min_overall_rating":{"type":"integer"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":578,"tokensAfter":578}],"toolsChanged":12,"tokensSaved":0,"todo":[{"tool":"get_facility","params":["id"]},{"tool":"get_facility_ownership","params":["id"]},{"tool":"get_owner","params":["web_owner"]},{"tool":"search_facilities","params":["q","zip","city","limit","state","offset","radius_miles"]},{"tool":"search_facilities_by_ownership","params":["q","zip","city","sort","limit","state","offset","radius_miles","max_overall_rating","min_overall_rating"]},{"tool":"search_owners","params":["q","limit","offset"]},{"tool":"summarize_facilities","params":["zip","state","sffstatus","abuse_icon","max_overall_rating","min_overall_rating"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}