CMS Healthcare Data MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP health endpoint port (default: 3000). | 3000 |
| API_KEY | No | Optional API key for authentication. | |
| DEMO_MODE | No | Set to 'true' to run with embedded sample data (no database required). Default is 'true'. | true |
| DATABASE_URL | No | PostgreSQL connection string. Required only when DEMO_MODE=false. | |
| RATE_LIMIT_PER_MINUTE | No | Rate limit per minute (default: 100). | 100 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_datasetsA | List all available CMS healthcare datasets with metadata including source, update frequency, row count, key fields, and available filters. Always call this first to understand what data is available. |
| get_schemaA | Return the full field schema (names, types, descriptions, examples) for a specific CMS dataset. Use this before get_data to understand available fields and filter parameters. |
| get_dataA | Retrieve filtered records from a CMS dataset. Supports filtering by date range, geography, diagnosis codes, provider identifiers, and more. Results are cached (24h for reference data, 5min for transactional). Returns JSON with data lineage metadata. |
| run_queryA | Execute a pre-approved named query template with parameters. Templates cover common RWE analyses: HCC grouping, readmission benchmarks, MIPS performance summaries, drug cost trends. Use get_sample_queries to see available templates. |
| cache_statusB | Return current cache statistics: key count, hit/miss ratio, memory usage. Useful for understanding whether responses are served from cache vs live data. |
| get_sample_queriesA | Return example queries and query templates for a given dataset. Includes realistic RWE use cases with parameter examples. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 6 tools
Each tool has a clearly distinct purpose: cache status, data retrieval, sample queries, schema, listing datasets, and executing named queries. No overlap or ambiguity.
All tools follow a consistent verb_noun pattern in snake_case (e.g., cache_status, get_data, list_datasets). No mixing of conventions.
6 tools is well-scoped for a healthcare data server, covering discovery, schema, data retrieval, queries, and cache monitoring. Neither too few nor too many.
Covers key operations: listing datasets, getting schema, retrieving data, executing pre-built queries, and cache info. Missing clear cache or dataset-level metadata beyond list, but sufficient for its read-only purpose.