Need Help? Text 678-789-6953

Developer docs

Texas Health Help MCP Server

Connect Claude, ChatGPT, Cursor or any Model Context Protocol client to our public Texas benefit guides, county health resource hubs and published articles. Six read-only tools, no API key.

Server overview

Endpoint
https://texashealthhelp.com/mcp
Transport
Streamable HTTP (MCP 2025-06-18)
Authentication
None — public server
Tools
6, all read-only and idempotent

This server is public: anyone with the URL can call these tools without signing in. Everything it returns is already published on this website. Nothing private — volunteer signups, contact form submissions and unpublished drafts — is reachable through it.

Connecting a client

Add the server to your MCP client config (Claude Desktop, Cursor, Codex and ChatGPT connectors all accept a remote HTTP URL):

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

Or call it directly over JSON-RPC to list the tools:

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

  • Every tool returns a human-readable summary in content[0].text plus a machine-readable object in structuredContent. The schemas below describe structuredContent.
  • Every result includes a page url on texashealthhelp.com — always surface it so people can verify details.
  • Failures return an MCP tool error with a plain-language message, never a silent empty object.
  • Eligibility rules and income limits change; the guides carry the year they were verified.

Tools

search_guides

read-only

Search benefit guides

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

Parameters

NameTypeRequiredDefaultDescription
querystringYesTopic or question, e.g. "pregnancy medicaid income limit" or "free rides". Words of 3+ characters are matched against guide titles, summaries and topics.
limitintegerNo5Maximum guides to return. Values are clamped to 1–15.

Returns

  • matched — boolean; false when nothing scored and a default list was returned instead
  • results[] — { title: string, summary: string, topics: string[], url: string }
  • keyPages[] — { path: string, title: string, description: string, url: string } for the site's main entry points

Example call

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

Example structuredContent (trimmed)

{
  "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

Never errors on a miss — an unmatched query returns the first guides with matched: false.

find_county_resources

read-only

Find county health resources

Look up local healthcare resources for a covered Texas county by county name, city, or ZIP code.

Parameters

NameTypeRequiredDefaultDescription
locationstringYesCounty name, city, or 5-digit ZIP code — e.g. "Polk County", "Livingston", or "77351". Matching order: ZIP, exact county name or slug, exact city, county seat, then partial matches.

Returns

  • county, seat, region, url — county identity and its page on this site
  • citiesServed: string[], zips: string[]
  • clinics[], hospitals[], mentalHealth[] — { name, type, address, phone, website | null, note | null }
  • transportation, medicaid, seniorServices, community — same place shape, grouped by service type
  • faqs[] — { question, answer } pairs published on the county hub

Example call

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

Example structuredContent (trimmed)

{
  "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 }
  ],
  "hospitals": [ /* … */ ],
  "faqs": [ { "question": "…", "answer": "…" } ]
}

Errors

Returns a tool error when no covered county matches. The message lists every covered county and points to the statewide guides at /resources.

list_counties

read-only

List covered counties

List every Texas county with a dedicated resource hub on this site. Useful before calling find_county_resources.

Parameters

None. Call with an empty arguments object.

Returns

  • counties[] — { name, seat, region, citiesServed: string[], zips: string[], url }

Example call

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

Example structuredContent (trimmed)

{
  "counties": [
    {
      "name": "Polk County",
      "seat": "Livingston",
      "region": "East Texas",
      "citiesServed": ["Livingston", "Onalaska", "Corrigan", "…"],
      "zips": ["77351", "77360", "75939", "77335", "77364"],
      "url": "https://texashealthhelp.com/polk-county-health-resources"
    }
  ]
}

search_blog_posts

read-only

Search blog posts

Search published blog articles by keyword, or list the newest posts. Returns metadata only — use get_blog_post for the full text.

Parameters

NameTypeRequiredDefaultDescription
querystringNoKeyword or topic, matched case-insensitively against article title and excerpt. Omit to list the newest posts.
limitintegerNo10Maximum posts to return. Values are clamped to 1–25.

Returns

  • count — number of posts returned
  • posts[] — { slug, title, excerpt, tags: string[], author, publishedAt (ISO date), coverImageUrl, url }
  • Sorted newest first by publish date. Draft and unpublished posts are never returned.

Example call

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

Example structuredContent (trimmed)

{
  "count": 1,
  "posts": [
    {
      "slug": "become-volunteer-driver-texas",
      "title": "How to Become a Volunteer Driver & Change Lives",
      "excerpt": "It's easier than you think — here's what it takes…",
      "tags": ["volunteer", "transportation"],
      "author": "Texas Health Help",
      "publishedAt": "2026-03-14",
      "coverImageUrl": "https://…",
      "url": "https://texashealthhelp.com/blog/become-volunteer-driver-texas"
    }
  ]
}

Errors

A search with no matches returns count: 0 and an empty list, not an error.

get_blog_post

read-only

Get blog post

Read the full text of one published blog article by slug.

Parameters

NameTypeRequiredDefaultDescription
slugstringYesArticle slug in kebab-case, e.g. "free-low-cost-healthcare-texas". A leading "/" or "blog/" prefix and trailing slashes are stripped automatically.

Returns

  • slug, title, excerpt, content (full markdown body), metaDescription
  • tags: string[], author, publishedAt, coverImageUrl, url

Example call

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

Example structuredContent (trimmed)

{
  "slug": "free-low-cost-healthcare-texas",
  "title": "How to Find Free or Low-Cost Healthcare in Texas (Even Without Insurance)",
  "excerpt": "Sliding-scale clinics, FQHCs, and programs that don't check insurance…",
  "content": "# How to Find Free or Low-Cost Healthcare in Texas\n\n…",
  "tags": ["free clinics", "uninsured"],
  "publishedAt": "2026-02-02",
  "url": "https://texashealthhelp.com/blog/free-low-cost-healthcare-texas"
}

Errors

Returns a tool error for a malformed slug, or when no published article carries that slug (unpublished drafts are treated as missing).

get_contact_info

read-only

Get contact info

Get public contact details and the ways a Texan can request free one-on-one navigation help.

Parameters

None. Call with an empty arguments object.

Returns

  • organization, phone, email, address, website
  • getHelpUrl, eligibilityScreenerUrl, contactUrl
  • cost — always states that navigation help is free

Example call

{ "name": "get_contact_info", "arguments": {} }

Example structuredContent (trimmed)

{
  "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."
}

Machine-readable copy

The same specification is published as plain markdown at /mcp.md for agents that prefer fetching text over parsing HTML. Counties currently covered: Polk, Walker, Liberty, San Jacinto, Brazoria and Fort Bend.

Need a human instead? Request free navigation help or contact us.

We use cookies to understand how visitors interact with our site and improve our services. By clicking "Accept", you consent to the use of analytics cookies.