Nursing Home Database MCP
An official MCP server providing access to CMS data for US Medicare-certified skilled nursing facilities. It enables agents to search for facilities by location or ownership, retrieve detailed metrics like nurse hours and inspection scores, compare up to 25 homes, and track data changes over time without requiring authentication.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mcp.nursinghomedatabase.com/mcpWhat its tools do
12 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Passed Official MCP Registry namespace is tied to nursinghomedatabase.com ·
- Passed Endpoint is on the registry namespace domain ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Search for certified US skilled nursing facilities by name, city, state, or ZIP code
- Retrieve detailed facility metrics including nurse hours, turnover, and inspection scores
- Compare up to 25 facilities side-by-side using their CMS CCN identifiers
- Identify facility ownership and management entities
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- nhd-mcp 1.4.0
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 12 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
12 advertised
search_facilities — Search facilities
Find certified US skilled nursing facilities near an address or in a city. Filter by ownership type, 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 map links. distance_miles is straight-line miles, not drive time. An address is geocoded on the server.
{
"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 monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest loaded file."
},
"ownership": {
"type": "string",
"description": "Ownership type from ProviderInfo.ownership. Case-insensitive. Prefixes For profit, Non profit, and Government match that kind. Exact labels look like \"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)."
}
}
}{
"title": "Search facilities",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_facilities_by_ownership — Search nursing homes by ownership type
Find certified US nursing homes by ownership type (ProviderInfo.ownership). The result rows match a facility search. Combine with state, city, ZIP, or address.
{
"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 monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest loaded file."
},
"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"
}
}
}{
"title": "Search nursing homes by ownership type",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}summarize_facilities — Summarize nursing home statistics
Aggregate numeric ProviderInfo fields (n, mean, min, max; optional median) across certified nursing homes. Facility-equal means, not bed-weighted. Missing values are excluded per metric. Not causal. A named home still needs a single-facility lookup.
{
"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 monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest loaded file."
},
"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"
}
}
}{
"title": "Summarize nursing home statistics",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}compare_facilities — Compare facilities
Compare up to 25 certified skilled nursing facilities by CMS CCN or web slug. Returns ratings, nurse hours, turnover, inspection score, beds, fines, and map links in one table.
{
"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 monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest loaded file."
}
}
}{
"title": "Compare facilities",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_facility_changes — Show what changed
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.
{
"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."
}
}
}{
"title": "Show what changed",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_facility — Get nursing home details
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.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"filedate": {
"type": "string",
"description": "Optional monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest loaded file."
}
}
}{
"title": "Get nursing home details",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_facility_ownership — Get nursing home owners
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.
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string"
},
"filedate": {
"type": "string",
"description": "Optional monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest loaded file."
}
}
}{
"title": "Get nursing home owners",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}search_owners — Search nursing home owners
Search nursing-home owners by name. Defaults to the latest CMS monthly snapshot; pass filedate from list_file_dates to query a prior month.
{
"type": "object",
"required": [
"q"
],
"properties": {
"q": {
"type": "string"
},
"limit": {
"type": "integer"
},
"offset": {
"type": "integer"
},
"filedate": {
"type": "string",
"description": "Optional monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest loaded file."
}
}
}{
"title": "Search nursing home owners",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_owner — Get an owner portfolio
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.
{
"type": "object",
"required": [
"web_owner"
],
"properties": {
"filedate": {
"type": "string",
"description": "Optional monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest loaded file."
},
"web_owner": {
"type": "string"
}
}
}{
"title": "Get an owner portfolio",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_file_dates — List snapshot dates
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.
{
"type": "object",
"properties": {}
}{
"title": "List snapshot dates",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}list_distinct_values — List filter values
List distinct ProviderInfo values and counts for a field. Omit field to see the catalog. ownership returns the ownership labels. city requires state.
{
"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 returns the ownership labels."
},
"state": {
"type": "string",
"description": "Optional two-letter state. Required when field=city."
},
"filedate": {
"type": "string",
"description": "Optional monthly snapshot (YYYY-MM-DD or YYYY-MM). Defaults to the latest loaded file."
}
}
}{
"title": "List filter values",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}get_data_freshness — Check data freshness
Latest source dataset dates and row counts for the nursing-home files.
{
"type": "object",
"properties": {}
}{
"title": "Check data freshness",
"readOnlyHint": true,
"openWorldHint": false,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
Not advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 418 ms
- 95th percentile latency
- 418 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 418 ms · metadata changed · 12 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http nursing-home-database-mcp https://mcp.nursinghomedatabase.com/mcpCodex
codex mcp add nursing-home-database-mcp --url https://mcp.nursinghomedatabase.com/mcpCursor
{
"mcpServers": {
"nursing-home-database-mcp": {
"url": "https://mcp.nursinghomedatabase.com/mcp"
}
}
}Cline
{
"mcpServers": {
"nursing-home-database-mcp": {
"type": "streamableHttp",
"url": "https://mcp.nursinghomedatabase.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"nursing-home-database-mcp": {
"type": "http",
"url": "https://mcp.nursinghomedatabase.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http nursing-home-database-mcp https://mcp.nursinghomedatabase.com/mcpClaude Desktop
https://mcp.nursinghomedatabase.com/mcpWindsurf
{
"mcpServers": {
"nursing-home-database-mcp": {
"serverUrl": "https://mcp.nursinghomedatabase.com/mcp"
}
}
}Let your agent find its tools
Find servers like Nursing Home Database MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other data and analytics servers
Do you run Nursing Home Database MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.