Incus · Capability

Incus external REST API — profiles

Incus external REST API — profiles. 8 operations. Lead operation: Get the profiles. Self-contained Naftiko capability covering one Incus business surface.

Run with Naftiko Incusprofiles

What You Can Do

GET
Profilesget — Get the profiles
/v1/1-0/profiles
POST
Profilespost — Add a profile
/v1/1-0/profiles
DELETE
Profiledelete — Delete the profile
/v1/1-0/profiles/{name}
GET
Profileget — Get the profile
/v1/1-0/profiles/{name}
PATCH
Profilepatch — Partially update the profile
/v1/1-0/profiles/{name}
POST
Profilepost — Rename the profile
/v1/1-0/profiles/{name}
PUT
Profileput — Update the profile
/v1/1-0/profiles/{name}
GET
Profilesgetrecursion1 — Get the profiles
/v1/1-0/profiles-recursion-1

MCP Tools

get-profiles

Get the profiles

read-only idempotent
add-profile

Add a profile

delete-profile

Delete the profile

idempotent
get-profile

Get the profile

read-only idempotent
partially-update-profile

Partially update the profile

idempotent
rename-profile

Rename the profile

update-profile

Update the profile

idempotent
get-profiles-2

Get the profiles

read-only idempotent

Capability Spec

incus-profiles.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Incus external REST API — profiles
  description: 'Incus external REST API — profiles. 8 operations. Lead operation: Get the profiles. Self-contained Naftiko
    capability covering one Incus business surface.'
  tags:
  - Incus
  - profiles
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    INCUS_API_KEY: INCUS_API_KEY
capability:
  consumes:
  - type: http
    namespace: incus-profiles
    baseUri: ''
    description: Incus external REST API — profiles business capability. Self-contained, no shared references.
    resources:
    - name: 1.0-profiles
      path: /1.0/profiles
      operations:
      - name: profilesget
        method: GET
        description: Get the profiles
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project
          in: query
          type: string
          description: Project name
        - name: all-projects
          in: query
          type: boolean
          description: Retrieve profiles from all projects
        - name: filter
          in: query
          type: string
          description: Collection filter
      - name: profilespost
        method: POST
        description: Add a profile
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project
          in: query
          type: string
          description: Project name
        - name: profile
          in: body
          type: string
          description: Profile
          required: true
    - name: 1.0-profiles-name
      path: /1.0/profiles/{name}
      operations:
      - name: profiledelete
        method: DELETE
        description: Delete the profile
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: Profile name
          required: true
        - name: project
          in: query
          type: string
          description: Project name
      - name: profileget
        method: GET
        description: Get the profile
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: Profile name
          required: true
        - name: project
          in: query
          type: string
          description: Project name
      - name: profilepatch
        method: PATCH
        description: Partially update the profile
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: Profile name
          required: true
        - name: project
          in: query
          type: string
          description: Project name
        - name: profile
          in: body
          type: string
          description: Profile configuration
          required: true
      - name: profilepost
        method: POST
        description: Rename the profile
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: Profile name
          required: true
        - name: project
          in: query
          type: string
          description: Project name
        - name: profile
          in: body
          type: string
          description: Profile rename request
          required: true
      - name: profileput
        method: PUT
        description: Update the profile
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: name
          in: path
          type: string
          description: Profile name
          required: true
        - name: project
          in: query
          type: string
          description: Project name
        - name: profile
          in: body
          type: string
          description: Profile configuration
          required: true
    - name: 1.0-profiles?recursion=1
      path: /1.0/profiles?recursion=1
      operations:
      - name: profilesgetrecursion1
        method: GET
        description: Get the profiles
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: project
          in: query
          type: string
          description: Project name
        - name: all-projects
          in: query
          type: boolean
          description: Retrieve profiles from all projects
        - name: filter
          in: query
          type: string
          description: Collection filter
  exposes:
  - type: rest
    namespace: incus-profiles-rest
    port: 8080
    description: REST adapter for Incus external REST API — profiles. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/1-0/profiles
      name: 1-0-profiles
      description: REST surface for 1.0-profiles.
      operations:
      - method: GET
        name: profilesget
        description: Get the profiles
        call: incus-profiles.profilesget
        with:
          project: rest.project
          all-projects: rest.all-projects
          filter: rest.filter
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: profilespost
        description: Add a profile
        call: incus-profiles.profilespost
        with:
          project: rest.project
          profile: rest.profile
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/1-0/profiles/{name}
      name: 1-0-profiles-name
      description: REST surface for 1.0-profiles-name.
      operations:
      - method: DELETE
        name: profiledelete
        description: Delete the profile
        call: incus-profiles.profiledelete
        with:
          name: rest.name
          project: rest.project
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: profileget
        description: Get the profile
        call: incus-profiles.profileget
        with:
          name: rest.name
          project: rest.project
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: profilepatch
        description: Partially update the profile
        call: incus-profiles.profilepatch
        with:
          name: rest.name
          project: rest.project
          profile: rest.profile
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: profilepost
        description: Rename the profile
        call: incus-profiles.profilepost
        with:
          name: rest.name
          project: rest.project
          profile: rest.profile
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: profileput
        description: Update the profile
        call: incus-profiles.profileput
        with:
          name: rest.name
          project: rest.project
          profile: rest.profile
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/1-0/profiles-recursion-1
      name: 1-0-profiles-recursion-1
      description: REST surface for 1.0-profiles?recursion=1.
      operations:
      - method: GET
        name: profilesgetrecursion1
        description: Get the profiles
        call: incus-profiles.profilesgetrecursion1
        with:
          project: rest.project
          all-projects: rest.all-projects
          filter: rest.filter
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: incus-profiles-mcp
    port: 9090
    transport: http
    description: MCP adapter for Incus external REST API — profiles. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: get-profiles
      description: Get the profiles
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: incus-profiles.profilesget
      with:
        project: tools.project
        all-projects: tools.all-projects
        filter: tools.filter
      outputParameters:
      - type: object
        mapping: $.
    - name: add-profile
      description: Add a profile
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: incus-profiles.profilespost
      with:
        project: tools.project
        profile: tools.profile
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-profile
      description: Delete the profile
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: incus-profiles.profiledelete
      with:
        name: tools.name
        project: tools.project
      outputParameters:
      - type: object
        mapping: $.
    - name: get-profile
      description: Get the profile
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: incus-profiles.profileget
      with:
        name: tools.name
        project: tools.project
      outputParameters:
      - type: object
        mapping: $.
    - name: partially-update-profile
      description: Partially update the profile
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: incus-profiles.profilepatch
      with:
        name: tools.name
        project: tools.project
        profile: tools.profile
      outputParameters:
      - type: object
        mapping: $.
    - name: rename-profile
      description: Rename the profile
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: incus-profiles.profilepost
      with:
        name: tools.name
        project: tools.project
        profile: tools.profile
      outputParameters:
      - type: object
        mapping: $.
    - name: update-profile
      description: Update the profile
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: incus-profiles.profileput
      with:
        name: tools.name
        project: tools.project
        profile: tools.profile
      outputParameters:
      - type: object
        mapping: $.
    - name: get-profiles-2
      description: Get the profiles
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: incus-profiles.profilesgetrecursion1
      with:
        project: tools.project
        all-projects: tools.all-projects
        filter: tools.filter
      outputParameters:
      - type: object
        mapping: $.