CMS Provider Data Catalog

Query CMS Compare datasets — hospitals, nursing homes, home health, hospice, dialysis, physicians — via the Provider Data Catalog CKAN/DKAN endpoints.

CMS Provider Data Catalog is a Naftiko capability published by CMS — Centers for Medicare & Medicaid Services, one of 10 capabilities the APIs.io network indexes for this provider. It bundles 3 operations.

The capability includes 3 read-only operations. Lead operation: List provider compare datasets. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include CMS, Quality, Compare, and ProviderData.

Run with Naftiko CMSQualityCompareProviderData

MCP Tools

cms-provider-data-list-datasets

List provider compare datasets.

read-only idempotent
cms-provider-data-query-distribution

Query a provider dataset distribution with conditions.

read-only idempotent
cms-provider-data-run-sql

Execute a SQL query against the provider data store.

read-only idempotent

Capability Spec

provider-data-catalog.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: CMS Provider Data Catalog
  description: Query CMS Compare datasets — hospitals, nursing homes, home health, hospice, dialysis,
    physicians — via the Provider Data Catalog CKAN/DKAN endpoints.
  tags:
  - CMS
  - Quality
  - Compare
  - ProviderData
  created: '2026-05-25'
  modified: '2026-05-25'
capability:
  consumes:
  - type: http
    namespace: provider-data-catalog
    baseUri: https://data.cms.gov/provider-data/api/1
    description: CMS Provider Data Catalog (CKAN/DKAN) surface.
    resources:
    - name: dataset-items
      path: /metastore/schemas/dataset/items
      operations:
      - name: listproviderdatasets
        method: GET
        description: List provider compare datasets.
        outputRawFormat: json
        outputParameters:
        - { name: result, type: object, value: $. }
    - name: dataset-item
      path: /metastore/schemas/dataset/items/{datasetId}
      operations:
      - name: getproviderdataset
        method: GET
        description: Get provider dataset metadata.
        inputParameters:
        - { name: datasetId, in: path, type: string, required: true }
        outputRawFormat: json
        outputParameters:
        - { name: result, type: object, value: $. }
    - name: distribution-query
      path: /datastore/query/{distributionId}
      operations:
      - name: querydistribution
        method: GET
        description: Query a provider dataset distribution with conditions.
        inputParameters:
        - { name: distributionId, in: path, type: string, required: true }
        - { name: conditions, in: query, type: string }
        - { name: limit, in: query, type: integer }
        outputRawFormat: json
        outputParameters:
        - { name: result, type: object, value: $. }
    - name: sql
      path: /datastore/sql
      operations:
      - name: runsql
        method: GET
        description: Execute a constrained SQL query against the provider data store.
        inputParameters:
        - { name: query, in: query, type: string, required: true }
        outputRawFormat: json
        outputParameters:
        - { name: result, type: object, value: $. }
  exposes:
  - type: mcp
    namespace: provider-data-mcp
    port: 9090
    transport: http
    description: MCP adapter for CMS Provider Data Catalog.
    tools:
    - name: cms-provider-data-list-datasets
      description: List provider compare datasets.
      hints: { readOnly: true, destructive: false, idempotent: true }
      call: provider-data-catalog.listproviderdatasets
      outputParameters: [ { type: object, mapping: $. } ]
    - name: cms-provider-data-query-distribution
      description: Query a provider dataset distribution with conditions.
      hints: { readOnly: true, destructive: false, idempotent: true }
      call: provider-data-catalog.querydistribution
      outputParameters: [ { type: object, mapping: $. } ]
    - name: cms-provider-data-run-sql
      description: Execute a SQL query against the provider data store.
      hints: { readOnly: true, destructive: false, idempotent: true }
      call: provider-data-catalog.runsql
      outputParameters: [ { type: object, mapping: $. } ]