Strimzi · Capability

Strimzi Kafka Bridge REST API — Consumer

Strimzi Kafka Bridge REST API — Consumer. 7 operations. Lead operation: Create Consumer. Self-contained Naftiko capability covering one Strimzi business surface.

Run with Naftiko StrimziConsumer

What You Can Do

POST
Createconsumer — Create Consumer
/v1/consumers/{groupid}
DELETE
Deleteconsumer — Delete Consumer
/v1/consumers/{groupid}/instances/{name}
POST
Commit — Commit Offsets
/v1/consumers/{groupid}/instances/{name}/offsets
GET
Poll — Poll for Records
/v1/consumers/{groupid}/instances/{name}/records
POST
Subscribe — Subscribe to Topics
/v1/consumers/{groupid}/instances/{name}/subscription
GET
Listsubscriptions — List Topic Subscriptions
/v1/consumers/{groupid}/instances/{name}/subscription
DELETE
Unsubscribe — Unsubscribe from Topics
/v1/consumers/{groupid}/instances/{name}/subscription

MCP Tools

create-consumer

Create Consumer

delete-consumer

Delete Consumer

idempotent
commit-offsets

Commit Offsets

poll-records

Poll for Records

read-only idempotent
subscribe-topics

Subscribe to Topics

list-topic-subscriptions

List Topic Subscriptions

read-only idempotent
unsubscribe-topics

Unsubscribe from Topics

idempotent

Capability Spec

kafka-bridge-consumer.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Strimzi Kafka Bridge REST API — Consumer
  description: 'Strimzi Kafka Bridge REST API — Consumer. 7 operations. Lead operation: Create Consumer. Self-contained Naftiko
    capability covering one Strimzi business surface.'
  tags:
  - Strimzi
  - Consumer
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    STRIMZI_API_KEY: STRIMZI_API_KEY
capability:
  consumes:
  - type: http
    namespace: kafka-bridge-consumer
    baseUri: http://localhost:8080
    description: Strimzi Kafka Bridge REST API — Consumer business capability. Self-contained, no shared references.
    resources:
    - name: consumers-groupid
      path: /consumers/{groupid}
      operations:
      - name: createconsumer
        method: POST
        description: Create Consumer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: groupid
          in: path
          type: string
          description: The consumer group ID
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: consumers-groupid-instances-name
      path: /consumers/{groupid}/instances/{name}
      operations:
      - name: deleteconsumer
        method: DELETE
        description: Delete Consumer
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: groupid
          in: path
          type: string
          description: The consumer group ID
          required: true
        - name: name
          in: path
          type: string
          description: The unique name for the consumer instance
          required: true
    - name: consumers-groupid-instances-name-offsets
      path: /consumers/{groupid}/instances/{name}/offsets
      operations:
      - name: commit
        method: POST
        description: Commit Offsets
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: groupid
          in: path
          type: string
          description: The consumer group ID
          required: true
        - name: name
          in: path
          type: string
          description: The unique name for the consumer instance
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: consumers-groupid-instances-name-records
      path: /consumers/{groupid}/instances/{name}/records
      operations:
      - name: poll
        method: GET
        description: Poll for Records
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: groupid
          in: path
          type: string
          description: The consumer group ID
          required: true
        - name: name
          in: path
          type: string
          description: The unique name for the consumer instance
          required: true
        - name: timeout
          in: query
          type: integer
          description: Maximum time in milliseconds to wait for records
        - name: max_bytes
          in: query
          type: integer
          description: Maximum total bytes to return in the response
    - name: consumers-groupid-instances-name-subscription
      path: /consumers/{groupid}/instances/{name}/subscription
      operations:
      - name: subscribe
        method: POST
        description: Subscribe to Topics
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: groupid
          in: path
          type: string
          description: The consumer group ID
          required: true
        - name: name
          in: path
          type: string
          description: The unique name for the consumer instance
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: listsubscriptions
        method: GET
        description: List Topic Subscriptions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: groupid
          in: path
          type: string
          description: The consumer group ID
          required: true
        - name: name
          in: path
          type: string
          description: The unique name for the consumer instance
          required: true
      - name: unsubscribe
        method: DELETE
        description: Unsubscribe from Topics
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: groupid
          in: path
          type: string
          description: The consumer group ID
          required: true
        - name: name
          in: path
          type: string
          description: The unique name for the consumer instance
          required: true
  exposes:
  - type: rest
    namespace: kafka-bridge-consumer-rest
    port: 8080
    description: REST adapter for Strimzi Kafka Bridge REST API — Consumer. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/consumers/{groupid}
      name: consumers-groupid
      description: REST surface for consumers-groupid.
      operations:
      - method: POST
        name: createconsumer
        description: Create Consumer
        call: kafka-bridge-consumer.createconsumer
        with:
          groupid: rest.groupid
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/consumers/{groupid}/instances/{name}
      name: consumers-groupid-instances-name
      description: REST surface for consumers-groupid-instances-name.
      operations:
      - method: DELETE
        name: deleteconsumer
        description: Delete Consumer
        call: kafka-bridge-consumer.deleteconsumer
        with:
          groupid: rest.groupid
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/consumers/{groupid}/instances/{name}/offsets
      name: consumers-groupid-instances-name-offsets
      description: REST surface for consumers-groupid-instances-name-offsets.
      operations:
      - method: POST
        name: commit
        description: Commit Offsets
        call: kafka-bridge-consumer.commit
        with:
          groupid: rest.groupid
          name: rest.name
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/consumers/{groupid}/instances/{name}/records
      name: consumers-groupid-instances-name-records
      description: REST surface for consumers-groupid-instances-name-records.
      operations:
      - method: GET
        name: poll
        description: Poll for Records
        call: kafka-bridge-consumer.poll
        with:
          groupid: rest.groupid
          name: rest.name
          timeout: rest.timeout
          max_bytes: rest.max_bytes
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/consumers/{groupid}/instances/{name}/subscription
      name: consumers-groupid-instances-name-subscription
      description: REST surface for consumers-groupid-instances-name-subscription.
      operations:
      - method: POST
        name: subscribe
        description: Subscribe to Topics
        call: kafka-bridge-consumer.subscribe
        with:
          groupid: rest.groupid
          name: rest.name
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: listsubscriptions
        description: List Topic Subscriptions
        call: kafka-bridge-consumer.listsubscriptions
        with:
          groupid: rest.groupid
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: unsubscribe
        description: Unsubscribe from Topics
        call: kafka-bridge-consumer.unsubscribe
        with:
          groupid: rest.groupid
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: kafka-bridge-consumer-mcp
    port: 9090
    transport: http
    description: MCP adapter for Strimzi Kafka Bridge REST API — Consumer. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: create-consumer
      description: Create Consumer
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kafka-bridge-consumer.createconsumer
      with:
        groupid: tools.groupid
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-consumer
      description: Delete Consumer
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: kafka-bridge-consumer.deleteconsumer
      with:
        groupid: tools.groupid
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: commit-offsets
      description: Commit Offsets
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kafka-bridge-consumer.commit
      with:
        groupid: tools.groupid
        name: tools.name
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: poll-records
      description: Poll for Records
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: kafka-bridge-consumer.poll
      with:
        groupid: tools.groupid
        name: tools.name
        timeout: tools.timeout
        max_bytes: tools.max_bytes
      outputParameters:
      - type: object
        mapping: $.
    - name: subscribe-topics
      description: Subscribe to Topics
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: kafka-bridge-consumer.subscribe
      with:
        groupid: tools.groupid
        name: tools.name
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-topic-subscriptions
      description: List Topic Subscriptions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: kafka-bridge-consumer.listsubscriptions
      with:
        groupid: tools.groupid
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.
    - name: unsubscribe-topics
      description: Unsubscribe from Topics
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: kafka-bridge-consumer.unsubscribe
      with:
        groupid: tools.groupid
        name: tools.name
      outputParameters:
      - type: object
        mapping: $.