RabbitMQ · Capability

RabbitMQ Management HTTP API — Exchanges

RabbitMQ Management HTTP API — Exchanges. 6 operations. Lead operation: List all exchanges. Self-contained Naftiko capability covering one Rabbitmq business surface.

Run with Naftiko RabbitmqExchanges

What You Can Do

GET
Listexchanges — List all exchanges
/v1/exchanges
GET
Listexchangesinvhost — List exchanges in a virtual host
/v1/exchanges/{vhost}
GET
Getexchange — Get exchange
/v1/exchanges/{vhost}/{exchange}
PUT
Createexchange — Create exchange
/v1/exchanges/{vhost}/{exchange}
DELETE
Deleteexchange — Delete exchange
/v1/exchanges/{vhost}/{exchange}
POST
Publishmessage — Publish message to exchange
/v1/exchanges/{vhost}/{exchange}/publish

MCP Tools

list-all-exchanges

List all exchanges

read-only idempotent
list-exchanges-virtual-host

List exchanges in a virtual host

read-only idempotent
get-exchange

Get exchange

read-only idempotent
create-exchange

Create exchange

idempotent
delete-exchange

Delete exchange

idempotent
publish-message-exchange

Publish message to exchange

Capability Spec

management-exchanges.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: RabbitMQ Management HTTP API — Exchanges
  description: 'RabbitMQ Management HTTP API — Exchanges. 6 operations. Lead operation: List all exchanges. Self-contained
    Naftiko capability covering one Rabbitmq business surface.'
  tags:
  - Rabbitmq
  - Exchanges
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    RABBITMQ_API_KEY: RABBITMQ_API_KEY
capability:
  consumes:
  - type: http
    namespace: management-exchanges
    baseUri: http://localhost:15672/api
    description: RabbitMQ Management HTTP API — Exchanges business capability. Self-contained, no shared references.
    resources:
    - name: exchanges
      path: /exchanges
      operations:
      - name: listexchanges
        method: GET
        description: List all exchanges
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: exchanges-vhost
      path: /exchanges/{vhost}
      operations:
      - name: listexchangesinvhost
        method: GET
        description: List exchanges in a virtual host
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
    - name: exchanges-vhost-exchange
      path: /exchanges/{vhost}/{exchange}
      operations:
      - name: getexchange
        method: GET
        description: Get exchange
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: exchange
          in: path
          type: string
          required: true
      - name: createexchange
        method: PUT
        description: Create exchange
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: exchange
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deleteexchange
        method: DELETE
        description: Delete exchange
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: exchange
          in: path
          type: string
          required: true
        - name: if-unused
          in: query
          type: boolean
    - name: exchanges-vhost-exchange-publish
      path: /exchanges/{vhost}/{exchange}/publish
      operations:
      - name: publishmessage
        method: POST
        description: Publish message to exchange
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: exchange
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: basic
      username: '{{env.RABBITMQ_USER}}'
      password: '{{env.RABBITMQ_PASS}}'
  exposes:
  - type: rest
    namespace: management-exchanges-rest
    port: 8080
    description: REST adapter for RabbitMQ Management HTTP API — Exchanges. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/exchanges
      name: exchanges
      description: REST surface for exchanges.
      operations:
      - method: GET
        name: listexchanges
        description: List all exchanges
        call: management-exchanges.listexchanges
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/exchanges/{vhost}
      name: exchanges-vhost
      description: REST surface for exchanges-vhost.
      operations:
      - method: GET
        name: listexchangesinvhost
        description: List exchanges in a virtual host
        call: management-exchanges.listexchangesinvhost
        with:
          vhost: rest.vhost
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/exchanges/{vhost}/{exchange}
      name: exchanges-vhost-exchange
      description: REST surface for exchanges-vhost-exchange.
      operations:
      - method: GET
        name: getexchange
        description: Get exchange
        call: management-exchanges.getexchange
        with:
          vhost: rest.vhost
          exchange: rest.exchange
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: createexchange
        description: Create exchange
        call: management-exchanges.createexchange
        with:
          vhost: rest.vhost
          exchange: rest.exchange
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteexchange
        description: Delete exchange
        call: management-exchanges.deleteexchange
        with:
          vhost: rest.vhost
          exchange: rest.exchange
          if-unused: rest.if-unused
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/exchanges/{vhost}/{exchange}/publish
      name: exchanges-vhost-exchange-publish
      description: REST surface for exchanges-vhost-exchange-publish.
      operations:
      - method: POST
        name: publishmessage
        description: Publish message to exchange
        call: management-exchanges.publishmessage
        with:
          vhost: rest.vhost
          exchange: rest.exchange
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: management-exchanges-mcp
    port: 9090
    transport: http
    description: MCP adapter for RabbitMQ Management HTTP API — Exchanges. One tool per consumed operation, routed inline
      through this capability's consumes block.
    tools:
    - name: list-all-exchanges
      description: List all exchanges
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: management-exchanges.listexchanges
      outputParameters:
      - type: object
        mapping: $.
    - name: list-exchanges-virtual-host
      description: List exchanges in a virtual host
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: management-exchanges.listexchangesinvhost
      with:
        vhost: tools.vhost
      outputParameters:
      - type: object
        mapping: $.
    - name: get-exchange
      description: Get exchange
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: management-exchanges.getexchange
      with:
        vhost: tools.vhost
        exchange: tools.exchange
      outputParameters:
      - type: object
        mapping: $.
    - name: create-exchange
      description: Create exchange
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: management-exchanges.createexchange
      with:
        vhost: tools.vhost
        exchange: tools.exchange
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-exchange
      description: Delete exchange
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: management-exchanges.deleteexchange
      with:
        vhost: tools.vhost
        exchange: tools.exchange
        if-unused: tools.if-unused
      outputParameters:
      - type: object
        mapping: $.
    - name: publish-message-exchange
      description: Publish message to exchange
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: management-exchanges.publishmessage
      with:
        vhost: tools.vhost
        exchange: tools.exchange
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.