CMS Data at the Point of Care (DPC) Bulk FHIR

Manage Practitioner, Patient, and Group attribution rosters in the CMS Data at the Point of Care (DPC) API and initiate bulk FHIR exports for fee-for-service providers.

CMS Data at the Point of Care (DPC) Bulk FHIR 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 5 operations.

The capability includes 1 read-only operation and 4 state-changing operations. Lead operation: Register a Practitioner with the DPC organization. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include CMS, Medicare, FHIR, BulkData, and Provider.

Run with Naftiko CMSMedicareFHIRBulkDataProviderDPC

MCP Tools

cms-dpc-create-practitioner

Register a Practitioner with the DPC organization.

cms-dpc-create-patient

Register a Patient with the DPC organization.

cms-dpc-create-group

Create an attribution roster Group.

cms-dpc-export-group

Initiate a Group-scoped DPC bulk export.

cms-dpc-get-job

Poll a DPC bulk export job for status.

read-only idempotent

Capability Spec

dpc-bulk-fhir.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: CMS Data at the Point of Care (DPC) Bulk FHIR
  description: Manage Practitioner, Patient, and Group attribution rosters in the CMS Data at the Point of
    Care (DPC) API and initiate bulk FHIR exports for fee-for-service providers.
  tags:
  - CMS
  - Medicare
  - FHIR
  - BulkData
  - Provider
  - DPC
  created: '2026-05-25'
  modified: '2026-05-25'
binds:
- namespace: env
  keys:
    DPC_ACCESS_TOKEN: DPC_ACCESS_TOKEN
capability:
  consumes:
  - type: http
    namespace: dpc-bulk-fhir
    baseUri: https://sandbox.dpc.cms.gov/api/v1
    description: CMS DPC bulk FHIR surface — attribution + export.
    resources:
    - name: practitioner
      path: /Practitioner
      operations:
      - name: createpractitioner
        method: POST
        description: Register a Practitioner with the DPC organization.
        inputParameters:
        - { name: body, in: body, type: object, required: true }
        outputRawFormat: json
        outputParameters:
        - { name: result, type: object, value: $. }
      - name: searchpractitioner
        method: GET
        description: Search Practitioner resources.
        outputRawFormat: json
        outputParameters:
        - { name: result, type: object, value: $. }
    - name: patient
      path: /Patient
      operations:
      - name: createpatient
        method: POST
        description: Register a Patient with the DPC organization.
        inputParameters:
        - { name: body, in: body, type: object, required: true }
        outputRawFormat: json
        outputParameters:
        - { name: result, type: object, value: $. }
    - name: group
      path: /Group
      operations:
      - name: creategroup
        method: POST
        description: Create an attribution roster Group with Practitioner + Patient members.
        inputParameters:
        - { name: body, in: body, type: object, required: true }
        outputRawFormat: json
        outputParameters:
        - { name: result, type: object, value: $. }
    - name: group-export
      path: /Group/{groupId}/$export
      operations:
      - name: exportgroup
        method: GET
        description: Initiate a Group-scoped DPC bulk FHIR export.
        inputParameters:
        - { name: groupId, in: path, type: string, required: true }
        outputRawFormat: json
        outputParameters:
        - { name: result, type: object, value: $. }
    - name: jobs
      path: /Jobs/{jobId}
      operations:
      - name: getjob
        method: GET
        description: Poll a DPC bulk export job for status.
        inputParameters:
        - { name: jobId, in: path, type: string, required: true }
        outputRawFormat: json
        outputParameters:
        - { name: result, type: object, value: $. }
    authentication:
      type: bearer
      value: '{{env.DPC_ACCESS_TOKEN}}'
      placement: header
  exposes:
  - type: mcp
    namespace: dpc-mcp
    port: 9090
    transport: http
    description: MCP adapter for DPC attribution and bulk export.
    tools:
    - name: cms-dpc-create-practitioner
      description: Register a Practitioner with the DPC organization.
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: dpc-bulk-fhir.createpractitioner
      outputParameters: [ { type: object, mapping: $. } ]
    - name: cms-dpc-create-patient
      description: Register a Patient with the DPC organization.
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: dpc-bulk-fhir.createpatient
      outputParameters: [ { type: object, mapping: $. } ]
    - name: cms-dpc-create-group
      description: Create an attribution roster Group.
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: dpc-bulk-fhir.creategroup
      outputParameters: [ { type: object, mapping: $. } ]
    - name: cms-dpc-export-group
      description: Initiate a Group-scoped DPC bulk export.
      hints: { readOnly: false, destructive: false, idempotent: false }
      call: dpc-bulk-fhir.exportgroup
      outputParameters: [ { type: object, mapping: $. } ]
    - name: cms-dpc-get-job
      description: Poll a DPC bulk export job for status.
      hints: { readOnly: true, destructive: false, idempotent: true }
      call: dpc-bulk-fhir.getjob
      outputParameters: [ { type: object, mapping: $. } ]