# Find hospitals and published ratings

Use this when someone wants hospitals near a ZIP, optionally filtered by hospital name, with available CMS overall ratings or patient-experience measures. Searches the ZIP-prefix area in the selected state, not a guaranteed radius or every nearby hospital. Sort by approximate ZIP-center distance, stars or experience; explain rating fallback when distance is missing. Rankings apply only to returned matches. This does not check hospital plan networks, safety grades, live ER waits or driving distances. Use the app as the answer. Do not repeat its options in a list, table or explanation. Ask one short question if input is required; otherwise stop.

## Tool name

`find_medicare_hospitals`

## Input schema

```json
{
  "type": "object",
  "properties": {
    "zip": {
      "type": "string",
      "pattern": "^[0-9]{5}$",
      "description": "Required five-digit ZIP near the requested hospitals."
    },
    "county": {
      "type": "string",
      "minLength": 1,
      "maxLength": 60,
      "description": "Confirmed county from the ZIP lookup. Omit if unknown; multiple counties trigger a question."
    },
    "state": {
      "type": "string",
      "pattern": "^[A-Z]{2}$",
      "description": "Optional two-letter state from the confirmed county. Never guess from the ZIP prefix."
    },
    "q": {
      "type": "string",
      "minLength": 3,
      "maxLength": 100,
      "description": "Optional hospital name; preserve it together with the ZIP area and minimum rating."
    },
    "min_rating": {
      "type": "integer",
      "minimum": 1,
      "maximum": 5,
      "description": "Optional minimum CMS overall rating, 1–5 stars. Applies to overall rating, not patient experience."
    },
    "sort_by": {
      "type": "string",
      "enum": [
        "distance",
        "stars",
        "experience"
      ],
      "description": "Order returned matches by approximate distance, CMS overall stars, or patient experience. Omit to use distance when available, otherwise overall stars."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 10,
      "default": 10,
      "description": "Maximum displayed results, from 1 to 10 (default 10)."
    }
  },
  "required": [
    "zip"
  ],
  "additionalProperties": false
}
```

## Example request

Minimal synthetic request after initialization. A missing-input clarification is a valid result; do not invent personal facts to complete it. For content retrieval, replace the illustrative fixture ID with an ID returned by search.

```json
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "find_medicare_hospitals",
    "arguments": {
      "zip": "60614"
    }
  }
}
```

## Connection

POST JSON-RPC to https://tools.thepocketprotector.com/mcp with method `tools/call`, name `find_medicare_hospitals`, and arguments matching the schema above. Call `tools/list` to verify deployed availability.

## Results and errors

Read both `content` and `structuredContent`. Follow returned clarification or continuation steps. Preserve source attribution, dates, uncertainty and scope. `isError: true` means the lookup did not complete. HTTP 429 requires waiting for `Retry-After`; never repeatedly retry an unavailable lookup.

## Tool annotations

```json
{
  "title": "Find hospitals and published ratings",
  "readOnlyHint": true,
  "openWorldHint": true,
  "destructiveHint": false
}
```

Authentication: public, no account or API key required. Public tools perform no enrollment or account writes.
