naftiko: 1.0.0-alpha2 info: label: Docker HUB API — repositories description: 'Docker HUB API — repositories. 11 operations. Lead operation: List repositories in a namespace. Self-contained Naftiko capability covering one Docker Hub business surface.' tags: - Docker Hub - repositories created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: DOCKER_HUB_API_KEY: DOCKER_HUB_API_KEY capability: consumes: - type: http namespace: docker-hub-repositories baseUri: https://hub.docker.com description: Docker HUB API — repositories business capability. Self-contained, no shared references. resources: - name: v2-namespaces-namespace-repositories path: /v2/namespaces/{namespace}/repositories operations: - name: listnamespacerepositories method: GET description: List repositories in a namespace outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer description: Page number to get. Defaults to 1. - name: page_size in: query type: integer description: Number of repositories to get per page. Defaults to 10. Max of 100. - name: name in: query type: string description: Filter repositories by name (partial match). - name: ordering in: query type: string description: Order repositories by the specified field. Prefix with '-' for descending order. - name: createrepository method: POST description: Create a new repository outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: v2-namespaces-namespace-repositories-repository path: /v2/namespaces/{namespace}/repositories/{repository} operations: - name: getrepository method: GET description: Get repository in a namespace outputRawFormat: json outputParameters: - name: result type: object value: $. - name: checkrepository method: HEAD description: Check repository in a namespace outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-namespaces-namespace-repositories-repository-immutabletags path: /v2/namespaces/{namespace}/repositories/{repository}/immutabletags operations: - name: updaterepositoryimmutabletags method: PATCH description: Update repository immutable tags outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: v2-namespaces-namespace-repositories-repository-immutabletags-verify path: /v2/namespaces/{namespace}/repositories/{repository}/immutabletags/verify operations: - name: verifyrepositoryimmutabletags method: POST description: Verify repository immutable tags outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: false - name: v2-namespaces-namespace-repositories-repository-tags path: /v2/namespaces/{namespace}/repositories/{repository}/tags operations: - name: listrepositorytags method: GET description: List repository tags outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer description: Page number to get. Defaults to 1. - name: page_size in: query type: integer description: Number of items to get per page. Defaults to 10. Max of 100. - name: head method: HEAD description: Check repository tags outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-namespaces-namespace-repositories-repository-tags-tag path: /v2/namespaces/{namespace}/repositories/{repository}/tags/{tag} operations: - name: getrepositorytag method: GET description: Read repository tag outputRawFormat: json outputParameters: - name: result type: object value: $. - name: head method: HEAD description: Check repository tag outputRawFormat: json outputParameters: - name: result type: object value: $. - name: v2-repositories-namespace-repository-groups path: /v2/repositories/{namespace}/{repository}/groups operations: - name: createrepositorygroup method: POST description: Assign a group (Team) to a repository for access outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true authentication: type: bearer token: '{{env.DOCKER_HUB_API_KEY}}' exposes: - type: rest namespace: docker-hub-repositories-rest port: 8080 description: REST adapter for Docker HUB API — repositories. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v2/namespaces/{namespace}/repositories name: v2-namespaces-namespace-repositories description: REST surface for v2-namespaces-namespace-repositories. operations: - method: GET name: listnamespacerepositories description: List repositories in a namespace call: docker-hub-repositories.listnamespacerepositories with: page: rest.page page_size: rest.page_size name: rest.name ordering: rest.ordering outputParameters: - type: object mapping: $. - method: POST name: createrepository description: Create a new repository call: docker-hub-repositories.createrepository with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v2/namespaces/{namespace}/repositories/{repository} name: v2-namespaces-namespace-repositories-repository description: REST surface for v2-namespaces-namespace-repositories-repository. operations: - method: GET name: getrepository description: Get repository in a namespace call: docker-hub-repositories.getrepository outputParameters: - type: object mapping: $. - method: HEAD name: checkrepository description: Check repository in a namespace call: docker-hub-repositories.checkrepository outputParameters: - type: object mapping: $. - path: /v1/v2/namespaces/{namespace}/repositories/{repository}/immutabletags name: v2-namespaces-namespace-repositories-repository-immutabletags description: REST surface for v2-namespaces-namespace-repositories-repository-immutabletags. operations: - method: PATCH name: updaterepositoryimmutabletags description: Update repository immutable tags call: docker-hub-repositories.updaterepositoryimmutabletags with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v2/namespaces/{namespace}/repositories/{repository}/immutabletags/verify name: v2-namespaces-namespace-repositories-repository-immutabletags-verify description: REST surface for v2-namespaces-namespace-repositories-repository-immutabletags-verify. operations: - method: POST name: verifyrepositoryimmutabletags description: Verify repository immutable tags call: docker-hub-repositories.verifyrepositoryimmutabletags with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v2/namespaces/{namespace}/repositories/{repository}/tags name: v2-namespaces-namespace-repositories-repository-tags description: REST surface for v2-namespaces-namespace-repositories-repository-tags. operations: - method: GET name: listrepositorytags description: List repository tags call: docker-hub-repositories.listrepositorytags with: page: rest.page page_size: rest.page_size outputParameters: - type: object mapping: $. - method: HEAD name: head description: Check repository tags call: docker-hub-repositories.head outputParameters: - type: object mapping: $. - path: /v1/v2/namespaces/{namespace}/repositories/{repository}/tags/{tag} name: v2-namespaces-namespace-repositories-repository-tags-tag description: REST surface for v2-namespaces-namespace-repositories-repository-tags-tag. operations: - method: GET name: getrepositorytag description: Read repository tag call: docker-hub-repositories.getrepositorytag outputParameters: - type: object mapping: $. - method: HEAD name: head description: Check repository tag call: docker-hub-repositories.head outputParameters: - type: object mapping: $. - path: /v1/v2/repositories/{namespace}/{repository}/groups name: v2-repositories-namespace-repository-groups description: REST surface for v2-repositories-namespace-repository-groups. operations: - method: POST name: createrepositorygroup description: Assign a group (Team) to a repository for access call: docker-hub-repositories.createrepositorygroup with: body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: docker-hub-repositories-mcp port: 9090 transport: http description: MCP adapter for Docker HUB API — repositories. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: list-repositories-namespace description: List repositories in a namespace hints: readOnly: true destructive: false idempotent: true call: docker-hub-repositories.listnamespacerepositories with: page: tools.page page_size: tools.page_size name: tools.name ordering: tools.ordering outputParameters: - type: object mapping: $. - name: create-new-repository description: Create a new repository hints: readOnly: false destructive: false idempotent: false call: docker-hub-repositories.createrepository with: body: tools.body outputParameters: - type: object mapping: $. - name: get-repository-namespace description: Get repository in a namespace hints: readOnly: true destructive: false idempotent: true call: docker-hub-repositories.getrepository outputParameters: - type: object mapping: $. - name: check-repository-namespace description: Check repository in a namespace hints: readOnly: false destructive: false idempotent: false call: docker-hub-repositories.checkrepository outputParameters: - type: object mapping: $. - name: update-repository-immutable-tags description: Update repository immutable tags hints: readOnly: false destructive: false idempotent: true call: docker-hub-repositories.updaterepositoryimmutabletags with: body: tools.body outputParameters: - type: object mapping: $. - name: verify-repository-immutable-tags description: Verify repository immutable tags hints: readOnly: false destructive: false idempotent: false call: docker-hub-repositories.verifyrepositoryimmutabletags with: body: tools.body outputParameters: - type: object mapping: $. - name: list-repository-tags description: List repository tags hints: readOnly: true destructive: false idempotent: true call: docker-hub-repositories.listrepositorytags with: page: tools.page page_size: tools.page_size outputParameters: - type: object mapping: $. - name: check-repository-tags description: Check repository tags hints: readOnly: false destructive: false idempotent: false call: docker-hub-repositories.head outputParameters: - type: object mapping: $. - name: read-repository-tag description: Read repository tag hints: readOnly: true destructive: false idempotent: true call: docker-hub-repositories.getrepositorytag outputParameters: - type: object mapping: $. - name: check-repository-tag description: Check repository tag hints: readOnly: false destructive: false idempotent: false call: docker-hub-repositories.head outputParameters: - type: object mapping: $. - name: assign-group-team-repository-access description: Assign a group (Team) to a repository for access hints: readOnly: false destructive: false idempotent: false call: docker-hub-repositories.createrepositorygroup with: body: tools.body outputParameters: - type: object mapping: $.