Dog API · Capability

Dog API — Images

Dog API — Images. 13 operations. Lead operation: List Images by Breed. Self-contained Naftiko capability covering one Dog API business surface.

Run with Naftiko Dog APIImages

What You Can Do

GET
Listimagesbybreed — List Images by Breed
/v1/breed/{breed}/images
GET
Randomimagebybreed — Random Image by Breed
/v1/breed/{breed}/images/random
GET
Randomimagesbybreed — Multiple Random Images by Breed
/v1/breed/{breed}/images/random/{amount}
GET
Listimagesbysubbreed — List Images by Sub-Breed
/v1/breed/{breed}/{subbreed}/images
GET
Randomimagebysubbreed — Random Image by Sub-Breed
/v1/breed/{breed}/{subbreed}/images/random
GET
Randomimagesbysubbreed — Multiple Random Images by Sub-Breed
/v1/breed/{breed}/{subbreed}/images/random/{amount}
GET
Randomimage — Random Image From Any Breed
/v1/breeds/image/random
GET
Randomimages — Multiple Random Images From Any Breed
/v1/breeds/image/random/{amount}
GET
Randomimageswithalt — Multiple Random Images From Any Breed With Alt Text
/v1/breeds/image/random/{amount}/alt
GET
Listimagesbybreedwithalt — List Images by Breed With Alt Text
/v1/breed/{breed}/images/alt
GET
Randomimagesbybreedwithalt — Multiple Random Images by Breed With Alt Text
/v1/breed/{breed}/images/random/{amount}/alt
GET
Listimagesbysubbreedwithalt — List Images by Sub-Breed With Alt Text
/v1/breed/{breed}/{subbreed}/images/alt
GET
Randomimagesbysubbreedwithalt — Multiple Random Images by Sub-Breed With Alt Text
/v1/breed/{breed}/{subbreed}/images/random/{amount}/alt

MCP Tools

list-images-breed

List Images by Breed

read-only idempotent
random-image-breed

Random Image by Breed

read-only idempotent
multiple-random-images-breed

Multiple Random Images by Breed

read-only idempotent
list-images-sub-breed

List Images by Sub-Breed

read-only idempotent
random-image-sub-breed

Random Image by Sub-Breed

read-only idempotent
multiple-random-images-sub-breed

Multiple Random Images by Sub-Breed

read-only idempotent
random-image-any-breed

Random Image From Any Breed

read-only idempotent
multiple-random-images-any-breed

Multiple Random Images From Any Breed

read-only idempotent
multiple-random-images-any-breed-2

Multiple Random Images From Any Breed With Alt Text

read-only idempotent
list-images-breed-alt-text

List Images by Breed With Alt Text

read-only idempotent
multiple-random-images-breed-alt

Multiple Random Images by Breed With Alt Text

read-only idempotent
list-images-sub-breed-alt

List Images by Sub-Breed With Alt Text

read-only idempotent
multiple-random-images-sub-breed-2

Multiple Random Images by Sub-Breed With Alt Text

read-only idempotent

Capability Spec

dog-api-images.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Dog API — Images
  description: 'Dog API — Images. 13 operations. Lead operation: List Images by Breed. Self-contained Naftiko capability covering one Dog API business surface.'
  tags:
  - Dog API
  - Images
  created: '2026-05-30'
  modified: '2026-05-30'
binds: []
capability:
  consumes:
  - type: http
    namespace: dog-api-images
    baseUri: https://dog.ceo/api
    description: Dog API — Images business capability. Self-contained, no shared references.
    resources:
    - name: breed-breed-images
      path: /breed/{breed}/images
      operations:
      - name: listImagesByBreed
        method: GET
        description: List Images by Breed
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
    - name: breed-breed-images-random
      path: /breed/{breed}/images/random
      operations:
      - name: randomImageByBreed
        method: GET
        description: Random Image by Breed
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
    - name: breed-breed-images-random-amount
      path: /breed/{breed}/images/random/{amount}
      operations:
      - name: randomImagesByBreed
        method: GET
        description: Multiple Random Images by Breed
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
        - name: amount
          in: path
          type: integer
          required: true
          description: Number of random images to return.
    - name: breed-breed-subbreed-images
      path: /breed/{breed}/{subBreed}/images
      operations:
      - name: listImagesBySubBreed
        method: GET
        description: List Images by Sub-Breed
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
        - name: subBreed
          in: path
          type: string
          required: true
          description: Sub-breed name.
    - name: breed-breed-subbreed-images-random
      path: /breed/{breed}/{subBreed}/images/random
      operations:
      - name: randomImageBySubBreed
        method: GET
        description: Random Image by Sub-Breed
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
        - name: subBreed
          in: path
          type: string
          required: true
          description: Sub-breed name.
    - name: breed-breed-subbreed-images-random-amount
      path: /breed/{breed}/{subBreed}/images/random/{amount}
      operations:
      - name: randomImagesBySubBreed
        method: GET
        description: Multiple Random Images by Sub-Breed
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
        - name: subBreed
          in: path
          type: string
          required: true
          description: Sub-breed name.
        - name: amount
          in: path
          type: integer
          required: true
          description: Number of random images to return.
    - name: breeds-image-random
      path: /breeds/image/random
      operations:
      - name: randomImage
        method: GET
        description: Random Image From Any Breed
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: breeds-image-random-amount
      path: /breeds/image/random/{amount}
      operations:
      - name: randomImages
        method: GET
        description: Multiple Random Images From Any Breed
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: amount
          in: path
          type: integer
          required: true
          description: Number of random images to return.
    - name: breeds-image-random-amount-alt
      path: /breeds/image/random/{amount}/alt
      operations:
      - name: randomImagesWithAlt
        method: GET
        description: Multiple Random Images From Any Breed With Alt Text
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: amount
          in: path
          type: integer
          required: true
          description: Number of random images to return.
    - name: breed-breed-images-alt
      path: /breed/{breed}/images/alt
      operations:
      - name: listImagesByBreedWithAlt
        method: GET
        description: List Images by Breed With Alt Text
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
    - name: breed-breed-images-random-amount-alt
      path: /breed/{breed}/images/random/{amount}/alt
      operations:
      - name: randomImagesByBreedWithAlt
        method: GET
        description: Multiple Random Images by Breed With Alt Text
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
        - name: amount
          in: path
          type: integer
          required: true
          description: Number of random images to return.
    - name: breed-breed-subbreed-images-alt
      path: /breed/{breed}/{subBreed}/images/alt
      operations:
      - name: listImagesBySubBreedWithAlt
        method: GET
        description: List Images by Sub-Breed With Alt Text
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
        - name: subBreed
          in: path
          type: string
          required: true
          description: Sub-breed name.
    - name: breed-breed-subbreed-images-random-amount-alt
      path: /breed/{breed}/{subBreed}/images/random/{amount}/alt
      operations:
      - name: randomImagesBySubBreedWithAlt
        method: GET
        description: Multiple Random Images by Sub-Breed With Alt Text
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: breed
          in: path
          type: string
          required: true
          description: Master breed name.
        - name: subBreed
          in: path
          type: string
          required: true
          description: Sub-breed name.
        - name: amount
          in: path
          type: integer
          required: true
          description: Number of random images to return.
  exposes:
  - type: rest
    namespace: dog-api-images-rest
    port: 8080
    description: REST adapter for Dog API — Images. One Spectral-compliant resource per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/breed/{breed}/images
      name: v1-breed-breed-images
      description: REST surface for breed-breed-images.
      operations:
      - method: GET
        name: listImagesByBreed
        description: List Images by Breed
        call: dog-api-images.listImagesByBreed
        with:
          breed: rest.breed
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/images/random
      name: v1-breed-breed-images-random
      description: REST surface for breed-breed-images-random.
      operations:
      - method: GET
        name: randomImageByBreed
        description: Random Image by Breed
        call: dog-api-images.randomImageByBreed
        with:
          breed: rest.breed
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/images/random/{amount}
      name: v1-breed-breed-images-random-amount
      description: REST surface for breed-breed-images-random-amount.
      operations:
      - method: GET
        name: randomImagesByBreed
        description: Multiple Random Images by Breed
        call: dog-api-images.randomImagesByBreed
        with:
          breed: rest.breed
          amount: rest.amount
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/{subbreed}/images
      name: v1-breed-breed-subbreed-images
      description: REST surface for breed-breed-subbreed-images.
      operations:
      - method: GET
        name: listImagesBySubBreed
        description: List Images by Sub-Breed
        call: dog-api-images.listImagesBySubBreed
        with:
          breed: rest.breed
          subBreed: rest.subBreed
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/{subbreed}/images/random
      name: v1-breed-breed-subbreed-images-random
      description: REST surface for breed-breed-subbreed-images-random.
      operations:
      - method: GET
        name: randomImageBySubBreed
        description: Random Image by Sub-Breed
        call: dog-api-images.randomImageBySubBreed
        with:
          breed: rest.breed
          subBreed: rest.subBreed
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/{subbreed}/images/random/{amount}
      name: v1-breed-breed-subbreed-images-random-amount
      description: REST surface for breed-breed-subbreed-images-random-amount.
      operations:
      - method: GET
        name: randomImagesBySubBreed
        description: Multiple Random Images by Sub-Breed
        call: dog-api-images.randomImagesBySubBreed
        with:
          breed: rest.breed
          subBreed: rest.subBreed
          amount: rest.amount
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breeds/image/random
      name: v1-breeds-image-random
      description: REST surface for breeds-image-random.
      operations:
      - method: GET
        name: randomImage
        description: Random Image From Any Breed
        call: dog-api-images.randomImage
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breeds/image/random/{amount}
      name: v1-breeds-image-random-amount
      description: REST surface for breeds-image-random-amount.
      operations:
      - method: GET
        name: randomImages
        description: Multiple Random Images From Any Breed
        call: dog-api-images.randomImages
        with:
          amount: rest.amount
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breeds/image/random/{amount}/alt
      name: v1-breeds-image-random-amount-alt
      description: REST surface for breeds-image-random-amount-alt.
      operations:
      - method: GET
        name: randomImagesWithAlt
        description: Multiple Random Images From Any Breed With Alt Text
        call: dog-api-images.randomImagesWithAlt
        with:
          amount: rest.amount
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/images/alt
      name: v1-breed-breed-images-alt
      description: REST surface for breed-breed-images-alt.
      operations:
      - method: GET
        name: listImagesByBreedWithAlt
        description: List Images by Breed With Alt Text
        call: dog-api-images.listImagesByBreedWithAlt
        with:
          breed: rest.breed
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/images/random/{amount}/alt
      name: v1-breed-breed-images-random-amount-alt
      description: REST surface for breed-breed-images-random-amount-alt.
      operations:
      - method: GET
        name: randomImagesByBreedWithAlt
        description: Multiple Random Images by Breed With Alt Text
        call: dog-api-images.randomImagesByBreedWithAlt
        with:
          breed: rest.breed
          amount: rest.amount
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/{subbreed}/images/alt
      name: v1-breed-breed-subbreed-images-alt
      description: REST surface for breed-breed-subbreed-images-alt.
      operations:
      - method: GET
        name: listImagesBySubBreedWithAlt
        description: List Images by Sub-Breed With Alt Text
        call: dog-api-images.listImagesBySubBreedWithAlt
        with:
          breed: rest.breed
          subBreed: rest.subBreed
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/breed/{breed}/{subbreed}/images/random/{amount}/alt
      name: v1-breed-breed-subbreed-images-random-amount-alt
      description: REST surface for breed-breed-subbreed-images-random-amount-alt.
      operations:
      - method: GET
        name: randomImagesBySubBreedWithAlt
        description: Multiple Random Images by Sub-Breed With Alt Text
        call: dog-api-images.randomImagesBySubBreedWithAlt
        with:
          breed: rest.breed
          subBreed: rest.subBreed
          amount: rest.amount
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: dog-api-images-mcp
    port: 9090
    transport: http
    description: MCP adapter for Dog API — Images. One tool per consumed operation, routed inline through this capability's consumes block.
    tools:
    - name: list-images-breed
      description: List Images by Breed
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.listImagesByBreed
      with:
        breed: tools.breed
      outputParameters:
      - type: object
        mapping: $.
    - name: random-image-breed
      description: Random Image by Breed
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.randomImageByBreed
      with:
        breed: tools.breed
      outputParameters:
      - type: object
        mapping: $.
    - name: multiple-random-images-breed
      description: Multiple Random Images by Breed
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.randomImagesByBreed
      with:
        breed: tools.breed
        amount: tools.amount
      outputParameters:
      - type: object
        mapping: $.
    - name: list-images-sub-breed
      description: List Images by Sub-Breed
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.listImagesBySubBreed
      with:
        breed: tools.breed
        subBreed: tools.subBreed
      outputParameters:
      - type: object
        mapping: $.
    - name: random-image-sub-breed
      description: Random Image by Sub-Breed
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.randomImageBySubBreed
      with:
        breed: tools.breed
        subBreed: tools.subBreed
      outputParameters:
      - type: object
        mapping: $.
    - name: multiple-random-images-sub-breed
      description: Multiple Random Images by Sub-Breed
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.randomImagesBySubBreed
      with:
        breed: tools.breed
        subBreed: tools.subBreed
        amount: tools.amount
      outputParameters:
      - type: object
        mapping: $.
    - name: random-image-any-breed
      description: Random Image From Any Breed
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.randomImage
      outputParameters:
      - type: object
        mapping: $.
    - name: multiple-random-images-any-breed
      description: Multiple Random Images From Any Breed
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.randomImages
      with:
        amount: tools.amount
      outputParameters:
      - type: object
        mapping: $.
    - name: multiple-random-images-any-breed-2
      description: Multiple Random Images From Any Breed With Alt Text
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.randomImagesWithAlt
      with:
        amount: tools.amount
      outputParameters:
      - type: object
        mapping: $.
    - name: list-images-breed-alt-text
      description: List Images by Breed With Alt Text
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.listImagesByBreedWithAlt
      with:
        breed: tools.breed
      outputParameters:
      - type: object
        mapping: $.
    - name: multiple-random-images-breed-alt
      description: Multiple Random Images by Breed With Alt Text
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.randomImagesByBreedWithAlt
      with:
        breed: tools.breed
        amount: tools.amount
      outputParameters:
      - type: object
        mapping: $.
    - name: list-images-sub-breed-alt
      description: List Images by Sub-Breed With Alt Text
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.listImagesBySubBreedWithAlt
      with:
        breed: tools.breed
        subBreed: tools.subBreed
      outputParameters:
      - type: object
        mapping: $.
    - name: multiple-random-images-sub-breed-2
      description: Multiple Random Images by Sub-Breed With Alt Text
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: dog-api-images.randomImagesBySubBreedWithAlt
      with:
        breed: tools.breed
        subBreed: tools.subBreed
        amount: tools.amount
      outputParameters:
      - type: object
        mapping: $.