MCP server for Medicaid public data access via data.medicaid.gov Socrata SODA API. Provides enrollment trends, drug pricing (NADAC), quality measures, and program performance indicators from CMS Medicaid open data.
Single unified tool with comprehensive schema and well-structured parameters. Good naming (medicaid_info verb-noun style), detailed descriptions including examples. Schema is well-defined with enums, proper types, and parameter descriptions. However, output schema is not documented (critical gap), and error handling guidance is minimal. The tool aggregates 10 distinct operations into one interface, which violates single-responsibility principle but is partially mitigated by the method enum pattern.
Unified tool for Medicaid data operations: access enrollment trends, drug pricing (NADAC), quality measures, and program performance from data.medicaid.gov via Socrata SODA API. Provides state-level aggregates (NOT provider-level like Medicare).
Output schema not documented. Tool description does not specify what fields are returned for each method variant (get_nadac_pricing returns different structure than get_enrollment_trends). LLMs cannot plan downstream tool calls or extract data reliably without knowing response structure.
Single tool with 10 distinct methods violates single-responsibility principle. medicaid_info combines pricing queries, enrollment analysis, rebate lookups, formulary searches, utilization reports, and dataset discovery. Should split into 5-6 focused tools: get_drug_pricing, get_enrollment_data, get_rebate_info, search_formularies, get_utilization, explore_datasets.
No error handling guidance in code. The try-catch in index.js catches errors generically but does not return actionable recovery hints. If search_datasets fails with malformed SoQL WHERE clause, the agent receives a raw error with no guidance on valid syntax or alternatives.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 58 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
Parameter dependency documentation incomplete. Several parameters are conditionally required (e.g., state required only for get_enrollment_trends, ndc_code OR drug_name for get_nadac_pricing), but the schema does not express these constraints. LLMs cannot know which combinations are valid without trial-and-error.
No pagination guarantees documented. Parameters limit (max 5000) and offset exist, but tool description does not specify: what is the default limit? Does each method honor it? How many results should agents expect for large queries? This invites context window exhaustion.