# Texas Health Help — MCP Server

Public Model Context Protocol server exposing Texas benefit guides, county health
resource hubs, published blog articles and contact details.

- Endpoint: `https://texashealthhelp.com/mcp`
- Transport: Streamable HTTP (MCP 2025-06-18)
- Authentication: none (public server)
- Tools: 6, all read-only and idempotent
- HTML version of this document: https://texashealthhelp.com/mcp-docs

Everything returned is already published on texashealthhelp.com. Private data
(volunteer signups, contact form submissions, unpublished drafts) is not reachable.

## Connecting

```json
{
  "mcpServers": {
    "texas-health-help": {
      "type": "http",
      "url": "https://texashealthhelp.com/mcp"
    }
  }
}
```

```bash
curl -s https://texashealthhelp.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'
```

## Response conventions

- Each tool returns a human-readable summary in `content[0].text` and a
  machine-readable object in `structuredContent`. Schemas below describe
  `structuredContent`.
- Every result carries a `url` on texashealthhelp.com — surface it so people can verify details.
- Failures return an MCP tool error with a plain-language message.
- Eligibility rules and income limits change; guides carry the year verified.

---

## search_guides

Keyword search across statewide benefit and healthcare guides (Medicaid, CHIP,
SNAP, WIC, free clinics, transportation, senior and respite care).

| Parameter | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `query` | string | yes | — | Topic or question, e.g. `pregnancy medicaid income limit`. Words of 3+ characters are matched against title, summary and topics. |
| `limit` | integer | no | 5 | Max guides returned; clamped to 1–15. |

Returns: `matched` (boolean — false when nothing scored and a default list was
returned), `results[]` of `{ title, summary, topics[], url }`, and `keyPages[]`
of `{ path, title, description, url }`.

```json
{ "name": "search_guides", "arguments": { "query": "pregnancy medicaid income limit", "limit": 3 } }
```

```json
{
  "matched": true,
  "results": [
    {
      "title": "Pregnancy Medicaid Texas 2026: Income Limits & How to Apply",
      "summary": "How pregnant Texans qualify for Medicaid, what documents to bring, and how fast coverage starts.",
      "topics": ["pregnancy medicaid", "maternity", "prenatal", "eligibility", "apply"],
      "url": "https://texashealthhelp.com/resources/pregnancy-medicaid-texas"
    }
  ],
  "keyPages": [{ "path": "/get-help", "title": "Get Help", "url": "https://texashealthhelp.com/get-help" }]
}
```

Errors: none — an unmatched query returns default guides with `matched: false`.

---

## find_county_resources

Local healthcare resources for a covered Texas county, by county name, city or ZIP.

| Parameter | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `location` | string | yes | — | County name, city, or 5-digit ZIP (`Polk County`, `Livingston`, `77351`). Match order: ZIP, exact county name/slug, exact city, county seat, then partial matches. |

Returns: `county`, `seat`, `region`, `url`, `citiesServed[]`, `zips[]`,
`clinics[]`, `hospitals[]`, `mentalHealth[]`, `transportation[]`, `medicaid[]`,
`seniorServices[]`, `community[]` (each place is
`{ name, type, address, phone, website|null, note|null }`), and `faqs[]` of
`{ question, answer }`.

```json
{ "name": "find_county_resources", "arguments": { "location": "77351" } }
```

```json
{
  "county": "Polk County",
  "seat": "Livingston",
  "region": "East Texas",
  "url": "https://texashealthhelp.com/polk-county-health-resources",
  "zips": ["77351", "77360", "75939", "77335", "77364"],
  "clinics": [
    { "name": "Example Community Clinic", "type": "FQHC", "address": "Livingston, TX", "phone": "…", "website": "https://…", "note": null }
  ],
  "faqs": [{ "question": "…", "answer": "…" }]
}
```

Errors: tool error when no covered county matches; the message lists all covered
counties and points to `/resources`.

---

## list_counties

Lists every Texas county with a dedicated resource hub. No parameters — call with
an empty arguments object.

Returns: `counties[]` of `{ name, seat, region, citiesServed[], zips[], url }`.

```json
{ "name": "list_counties", "arguments": {} }
```

Covered counties: Polk, Walker, Liberty, San Jacinto, Brazoria, Fort Bend.

---

## search_blog_posts

Search published blog articles by keyword, or list the newest posts. Metadata only.

| Parameter | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `query` | string | no | — | Keyword matched case-insensitively against title and excerpt. Omit to list newest posts. |
| `limit` | integer | no | 10 | Max posts returned; clamped to 1–25. |

Returns: `count`, and `posts[]` of
`{ slug, title, excerpt, tags[], author, publishedAt, coverImageUrl, url }`,
newest first. Drafts are never returned.

```json
{ "name": "search_blog_posts", "arguments": { "query": "volunteer driver", "limit": 5 } }
```

Errors: no matches returns `count: 0` with an empty list, not an error.

---

## get_blog_post

Full text of one published article.

| Parameter | Type | Required | Default | Description |
| --- | --- | --- | --- | --- |
| `slug` | string | yes | — | Kebab-case slug, e.g. `free-low-cost-healthcare-texas`. A leading `/` or `blog/` prefix and trailing slashes are stripped. |

Returns: `slug`, `title`, `excerpt`, `content` (full markdown body),
`metaDescription`, `tags[]`, `author`, `publishedAt`, `coverImageUrl`, `url`.

```json
{ "name": "get_blog_post", "arguments": { "slug": "/blog/free-low-cost-healthcare-texas" } }
```

Errors: tool error for a malformed slug, or when no published article carries it.

---

## get_contact_info

Public contact details and ways to request free one-on-one navigation help. No parameters.

Returns: `organization`, `phone`, `email`, `address`, `website`, `getHelpUrl`,
`eligibilityScreenerUrl`, `contactUrl`, `cost`.

```json
{
  "organization": "Texas Health Help — Community Health Access Hub",
  "phone": "678-789-6953",
  "email": "info@texashealthhelp.com",
  "address": "711 Mudd St, Coldspring, TX 77331",
  "website": "https://texashealthhelp.com",
  "getHelpUrl": "https://texashealthhelp.com/get-help",
  "eligibilityScreenerUrl": "https://texashealthhelp.com/check-eligibility",
  "contactUrl": "https://texashealthhelp.com/contact",
  "cost": "All navigation help is free."
}
```
