Skip to main content

medicaid-mcp

An MCP server that lets Claude, or any MCP client, explore US Medicaid and CHIP open data from data.medicaid.gov and the Medicaid datasets CMS publishes on data.cms.gov. It runs on your own computer, reads only public data, and needs no account or API key.

Ask things like "How has Ohio's Medicaid enrollment changed over the last year?", "What have pharmacies paid for metformin lately?" or "Which datasets were updated this month?"

Setup instructions are also on the docs page.

Install

Install uv (curl -LsSf https://astral.sh/uv/install.sh | sh on macOS or Linux). Then run the server once in a terminal, so the first download doesn't happen while your client waits. Press Ctrl-C to stop it.

uvx medicaid-mcp@0.1.1

Claude Code:

claude mcp add --scope user medicaid -- uvx medicaid-mcp@0.1.1

Claude Desktop: add this to claude_desktop_config.json (Settings → Developer → Edit Config), then restart. Desktop apps don't get your shell's PATH, so use the full path that which uvx prints.

{
  "mcpServers": {
    "medicaid": {
      "command": "/absolute/path/to/uvx",
      "args": ["medicaid-mcp@0.1.1"]
    }
  }
}

Other MCP clients: any client that launches stdio servers works. The command is uvx and the argument is medicaid-mcp@0.1.1. claude.ai on the web isn't supported, because it needs a hosted URL. So far this has been tested on macOS only.

Updating: replace 0.1.1 in your config with the newest version on PyPI.

What it does

A server over two open, unauthenticated CMS APIs:

  • data.medicaid.gov, the primary source, covering its whole catalog.
  • data.cms.gov, limited to three Medicaid datasets that live only there: Medicaid Spending by Drug, Medicaid Opioid Prescribing Rates, and Medicaid Managed Care service utilization. Their dataset ids are prefixed cms:. Medicare program data is out of scope.

It is distinct from Anthropic's CMS Coverage connector, which covers Medicare Part B coverage policy (NCDs/LCDs, billing articles). The two are complementary: whether Medicare covers a drug there, what Medicaid pays for it (NADAC) here.

General tools

Tool Purpose
search_datasets Search the catalog by query, publisher, keyword, or theme.
get_dataset Full metadata for one dataset, plus a synthesized columns array.
list_dataset_columns Just the columns — the cheap orientation call.
query_dataset Filter, select, sort, and paginate rows via a friendly filter DSL.

The usual pattern is search_datasets → list_dataset_columns → query_dataset, or one of the shortcuts below.

Shortcuts for common questions

  1. get_state_enrollment_snapshot — recent monthly Medicaid/CHIP enrollment for one state.
  2. compare_states_enrollment_trend — multi-state trend, shaped for summarization or charting.
  3. get_state_eligibility_renewals — renewal/termination churn.
  4. get_drug_price_nadac — National Average Drug Acquisition Cost lookups.
  5. get_state_drug_utilization — units, prescriptions, and amounts reimbursed.
  6. get_managed_care_enrollment — enrollment by plan and program type.
  7. get_quality_measures — Child/Adult Core Set performance measures.
  8. whats_new_medicaid — recently modified datasets.
  9. get_medicaid_drug_spending — Medicaid spending, claims, and units by drug, 2020–2024 (data.cms.gov).
  10. get_opioid_prescribing_rates — Medicaid opioid prescribing rates by state and plan type (data.cms.gov).

How it handles the data

  • Results are the published figures, with notes on the rules applied (e.g. updated months preferred over preliminary ones).
  • Suppressed values (NR, DS, *, nulls) are passed through as published, never turned into zero.
  • Most numeric-looking columns are published as text, which compares as text ("9" > "10"). Range filters (<, >) are refused on those columns rather than returning wrong rows.
  • Unknown column names, operators and arguments are errors, never silently ignored. Every error says what to call next.
  • The data is only as current as what the agencies publish. Most datasets update monthly or yearly.

Configuration

Optional environment variables. None are secrets — the upstream APIs are open.

Variable Default Purpose
MEDICAID_MCP_BASE_URL https://data.medicaid.gov Upstream API root
MEDICAID_MCP_CMS_BASE_URL https://data.cms.gov data.cms.gov root, for the cms: registry datasets
MEDICAID_MCP_TIMEOUT 30 Request timeout, seconds
MEDICAID_MCP_CACHE_TTL_SEARCH 900 Search-result cache lifetime, seconds
MEDICAID_MCP_CACHE_TTL_META 3600 Dataset-metadata cache lifetime, seconds
MEDICAID_MCP_LOG_LEVEL INFO Log level
PORT 8000 HTTP listen port; unprefixed because hosting platforms set it

Row data is never cached.

License

MIT — free to use, modify, and redistribute, including commercially. Copyright (c) 2026 Anna Lulushi.

Metadata

Release files for medicaid-mcp 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for medicaid-mcp 0.1.1
File Size Uploaded Provenance Actions
medicaid_mcp-0.1.1.tar.gz 39.8 kB With provenance Details for medicaid_mcp-0.1.1.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for medicaid-mcp 0.1.1
File Interpreter ABI Platform Actions
medicaid_mcp-0.1.1-py3-none-any.whl Python 3 none any Details for medicaid_mcp-0.1.1-py3-none-any.whl

Total release size: 86.5 kB

Release files / medicaid_mcp-0.1.1.tar.gz

Download URL medicaid_mcp-0.1.1.tar.gz
Size 39.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c651ad3c7eca6aaad0d16a51b6ad76cdadab30efb6af0916823e4a11a657dc66
BLAKE2b-256 checksum
How to use checksums
ef9dc1e698b1b8782a46885e6ceb0822e23e0a4925190548259680351a33af87
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 9, 2026.

Transparency log

Release files / medicaid_mcp-0.1.1-py3-none-any.whl

Download URL medicaid_mcp-0.1.1-py3-none-any.whl
Size 46.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9aaf0a8ecb6607c26a08323b8fb23ef6097caab75f27b6313f96769692a25de2
BLAKE2b-256 checksum
How to use checksums
b6bc3aa0455d819fe23b9daf5d4b3578e38d6940b2e6b2f78066db6c2d00a921
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 9, 2026.

Transparency log

Security for medicaid-mcp 0.1.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for medicaid_mcp-0.1.1.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 9, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page