RabbitMQ · Capability

RabbitMQ Management HTTP API

The RabbitMQ Management Plugin provides an HTTP-based API for management and monitoring of RabbitMQ nodes and clusters. It allows management of exchanges, queues, bindings, virtual hosts, users, permissions, policies, and more.

Run with Naftiko RabbitmqAPI

What You Can Do

GET
Getoverview — Get cluster overview
/overview
GET
Getclustername — Get cluster name
/cluster-name
PUT
Setclustername — Set cluster name
/cluster-name
GET
Listnodes — List nodes
/nodes
GET
Getnode — Get node details
/nodes/{name}
GET
Listconnections — List connections
/connections
GET
Getconnection — Get connection
/connections/{name}
DELETE
Deleteconnection — Close connection
/connections/{name}
GET
Listchannels — List channels
/channels
GET
Listvhosts — List virtual hosts
/vhosts
GET
Getvhost — Get virtual host
/vhosts/{vhost}
PUT
Createvhost — Create virtual host
/vhosts/{vhost}
DELETE
Deletevhost — Delete virtual host
/vhosts/{vhost}
GET
Listexchanges — List all exchanges
/exchanges
GET
Listexchangesinvhost — List exchanges in a virtual host
/exchanges/{vhost}
GET
Getexchange — Get exchange
/exchanges/{vhost}/{exchange}
PUT
Createexchange — Create exchange
/exchanges/{vhost}/{exchange}
DELETE
Deleteexchange — Delete exchange
/exchanges/{vhost}/{exchange}
POST
Publishmessage — Publish message to exchange
/exchanges/{vhost}/{exchange}/publish
GET
Listqueues — List all queues
/queues
GET
Listqueuesinvhost — List queues in virtual host
/queues/{vhost}
GET
Getqueue — Get queue
/queues/{vhost}/{queue}
PUT
Createqueue — Create queue
/queues/{vhost}/{queue}
DELETE
Deletequeue — Delete queue
/queues/{vhost}/{queue}
POST
Getmessages — Get messages from queue
/queues/{vhost}/{queue}/get
DELETE
Purgequeue — Purge queue
/queues/{vhost}/{queue}/purge
GET
Listbindings — List all bindings
/bindings
GET
Listbindingsbetween — List bindings between exchange and queue
/bindings/{vhost}/e/{exchange}/q/{queue}
POST
Createbinding — Create binding
/bindings/{vhost}/e/{exchange}/q/{queue}
GET
Listusers — List users
/users
GET
Getuser — Get user
/users/{user}
PUT
Createuser — Create or update user
/users/{user}
DELETE
Deleteuser — Delete user
/users/{user}
GET
Getuserpermissions — Get user permissions
/permissions/{vhost}/{user}
PUT
Setuserpermissions — Set user permissions
/permissions/{vhost}/{user}
DELETE
Deleteuserpermissions — Delete user permissions
/permissions/{vhost}/{user}
GET
Listpolicies — List policies in vhost
/policies/{vhost}
GET
Getpolicy — Get policy
/policies/{vhost}/{policy}
PUT
Createpolicy — Create or update policy
/policies/{vhost}/{policy}
DELETE
Deletepolicy — Delete policy
/policies/{vhost}/{policy}
GET
Healthcheckalarms — Health check - alarms
/health/checks/alarms
GET
Healthchecklocalalarms — Health check - local alarms
/health/checks/local-alarms
GET
Whoami — Get current user
/whoami
GET
Getdefinitions — Export definitions
/definitions
POST
Postdefinitions — Import definitions
/definitions

MCP Tools

getoverview

Get cluster overview

read-only idempotent
getclustername

Get cluster name

read-only idempotent
setclustername

Set cluster name

idempotent
listnodes

List nodes

read-only idempotent
getnode

Get node details

read-only idempotent
listconnections

List connections

read-only idempotent
getconnection

Get connection

read-only idempotent
deleteconnection

Close connection

idempotent
listchannels

List channels

read-only idempotent
listvhosts

List virtual hosts

read-only idempotent
getvhost

Get virtual host

read-only idempotent
createvhost

Create virtual host

idempotent
deletevhost

Delete virtual host

idempotent
listexchanges

List all exchanges

read-only idempotent
listexchangesinvhost

List exchanges in a virtual host

read-only idempotent
getexchange

Get exchange

read-only idempotent
createexchange

Create exchange

idempotent
deleteexchange

Delete exchange

idempotent
publishmessage

Publish message to exchange

listqueues

List all queues

read-only idempotent
listqueuesinvhost

List queues in virtual host

read-only idempotent
getqueue

Get queue

read-only idempotent
createqueue

Create queue

idempotent
deletequeue

Delete queue

idempotent
getmessages

Get messages from queue

purgequeue

Purge queue

idempotent
listbindings

List all bindings

read-only idempotent
listbindingsbetween

List bindings between exchange and queue

read-only idempotent
createbinding

Create binding

listusers

List users

read-only idempotent
getuser

Get user

read-only idempotent
createuser

Create or update user

idempotent
deleteuser

Delete user

idempotent
getuserpermissions

Get user permissions

read-only idempotent
setuserpermissions

Set user permissions

idempotent
deleteuserpermissions

Delete user permissions

idempotent
listpolicies

List policies in vhost

read-only idempotent
getpolicy

Get policy

read-only idempotent
createpolicy

Create or update policy

idempotent
deletepolicy

Delete policy

idempotent
healthcheckalarms

Health check - alarms

read-only idempotent
healthchecklocalalarms

Health check - local alarms

read-only idempotent
whoami

Get current user

read-only idempotent
getdefinitions

Export definitions

read-only idempotent
postdefinitions

Import definitions

Capability Spec

rabbitmq-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: RabbitMQ Management HTTP API
  description: The RabbitMQ Management Plugin provides an HTTP-based API for management and monitoring of RabbitMQ nodes and
    clusters. It allows management of exchanges, queues, bindings, virtual hosts, users, permissions, policies, and more.
  tags:
  - Rabbitmq
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: rabbitmq
    baseUri: http://localhost:15672/api
    description: RabbitMQ Management HTTP API HTTP API.
    authentication:
      type: basic
      username: '{{RABBITMQ_USERNAME}}'
      password: '{{RABBITMQ_PASSWORD}}'
    resources:
    - name: overview
      path: /overview
      operations:
      - name: getoverview
        method: GET
        description: Get cluster overview
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: cluster-name
      path: /cluster-name
      operations:
      - name: getclustername
        method: GET
        description: Get cluster name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: setclustername
        method: PUT
        description: Set cluster name
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: nodes
      path: /nodes
      operations:
      - name: listnodes
        method: GET
        description: List nodes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: nodes-name
      path: /nodes/{name}
      operations:
      - name: getnode
        method: GET
        description: Get node details
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: connections
      path: /connections
      operations:
      - name: listconnections
        method: GET
        description: List connections
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: connections-name
      path: /connections/{name}
      operations:
      - name: getconnection
        method: GET
        description: Get connection
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteconnection
        method: DELETE
        description: Close connection
        inputParameters:
        - name: name
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels
      path: /channels
      operations:
      - name: listchannels
        method: GET
        description: List channels
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vhosts
      path: /vhosts
      operations:
      - name: listvhosts
        method: GET
        description: List virtual hosts
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: vhosts-vhost
      path: /vhosts/{vhost}
      operations:
      - name: getvhost
        method: GET
        description: Get virtual host
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createvhost
        method: PUT
        description: Create virtual host
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletevhost
        method: DELETE
        description: Delete virtual host
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - 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
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: exchanges-vhost-exchange
      path: /exchanges/{vhost}/{exchange}
      operations:
      - name: getexchange
        method: GET
        description: Get exchange
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: exchange
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createexchange
        method: PUT
        description: Create exchange
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: exchange
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteexchange
        method: DELETE
        description: Delete exchange
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: exchange
          in: path
          type: string
          required: true
        - name: if-unused
          in: query
          type: boolean
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: exchanges-vhost-exchange-publish
      path: /exchanges/{vhost}/{exchange}/publish
      operations:
      - name: publishmessage
        method: POST
        description: Publish message to exchange
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: exchange
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: queues
      path: /queues
      operations:
      - name: listqueues
        method: GET
        description: List all queues
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: queues-vhost
      path: /queues/{vhost}
      operations:
      - name: listqueuesinvhost
        method: GET
        description: List queues in virtual host
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: queues-vhost-queue
      path: /queues/{vhost}/{queue}
      operations:
      - name: getqueue
        method: GET
        description: Get queue
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: queue
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createqueue
        method: PUT
        description: Create queue
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: queue
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletequeue
        method: DELETE
        description: Delete queue
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: queue
          in: path
          type: string
          required: true
        - name: if-empty
          in: query
          type: boolean
        - name: if-unused
          in: query
          type: boolean
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: queues-vhost-queue-get
      path: /queues/{vhost}/{queue}/get
      operations:
      - name: getmessages
        method: POST
        description: Get messages from queue
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: queue
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: queues-vhost-queue-purge
      path: /queues/{vhost}/{queue}/purge
      operations:
      - name: purgequeue
        method: DELETE
        description: Purge queue
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: queue
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: bindings
      path: /bindings
      operations:
      - name: listbindings
        method: GET
        description: List all bindings
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: bindings-vhost-e-exchange-q-queue
      path: /bindings/{vhost}/e/{exchange}/q/{queue}
      operations:
      - name: listbindingsbetween
        method: GET
        description: List bindings between exchange and queue
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: exchange
          in: path
          type: string
          required: true
        - name: queue
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createbinding
        method: POST
        description: Create binding
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: exchange
          in: path
          type: string
          required: true
        - name: queue
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users
      path: /users
      operations:
      - name: listusers
        method: GET
        description: List users
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: users-user
      path: /users/{user}
      operations:
      - name: getuser
        method: GET
        description: Get user
        inputParameters:
        - name: user
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createuser
        method: PUT
        description: Create or update user
        inputParameters:
        - name: user
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteuser
        method: DELETE
        description: Delete user
        inputParameters:
        - name: user
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: permissions-vhost-user
      path: /permissions/{vhost}/{user}
      operations:
      - name: getuserpermissions
        method: GET
        description: Get user permissions
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: user
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: setuserpermissions
        method: PUT
        description: Set user permissions
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: user
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deleteuserpermissions
        method: DELETE
        description: Delete user permissions
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: user
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: policies-vhost
      path: /policies/{vhost}
      operations:
      - name: listpolicies
        method: GET
        description: List policies in vhost
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: policies-vhost-policy
      path: /policies/{vhost}/{policy}
      operations:
      - name: getpolicy
        method: GET
        description: Get policy
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: policy
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createpolicy
        method: PUT
        description: Create or update policy
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: policy
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletepolicy
        method: DELETE
        description: Delete policy
        inputParameters:
        - name: vhost
          in: path
          type: string
          required: true
        - name: policy
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: health-checks-alarms
      path: /health/checks/alarms
      operations:
      - name: healthcheckalarms
        method: GET
        description: Health check - alarms
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: health-checks-local-alarms
      path: /health/checks/local-alarms
      operations:
      - name: healthchecklocalalarms
        method: GET
        description: Health check - local alarms
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: whoami
      path: /whoami
      operations:
      - name: whoami
        method: GET
        description: Get current user
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: definitions
      path: /definitions
      operations:
      - name: getdefinitions
        method: GET
        description: Export definitions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: postdefinitions
        method: POST
        description: Import definitions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: rabbitmq-rest
    description: REST adapter for RabbitMQ Management HTTP API.
    resources:
    - path: /overview
      name: getoverview
      operations:
      - method: GET
        name: getoverview
        description: Get cluster overview
        call: rabbitmq.getoverview
        outputParameters:
        - type: object
          mapping: $.
    - path: /cluster-name
      name: getclustername
      operations:
      - method: GET
        name: getclustername
        description: Get cluster name
        call: rabbitmq.getclustername
        outputParameters:
        - type: object
          mapping: $.
    - path: /cluster-name
      name: setclustername
      operations:
      - method: PUT
        name: setclustername
        description: Set cluster name
        call: rabbitmq.setclustername
        outputParameters:
        - type: object
          mapping: $.
    - path: /nodes
      name: listnodes
      operations:
      - method: GET
        name: listnodes
        description: List nodes
        call: rabbitmq.listnodes
        outputParameters:
        - type: object
          mapping: $.
    - path: /nodes/{name}
      name: getnode
      operations:
      - method: GET
        name: getnode
        description: Get node details
        call: rabbitmq.getnode
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /connections
      name: listconnections
      operations:
      - method: GET
        name: listconnections
        description: List connections
        call: rabbitmq.listconnections
        outputParameters:
        - type: object
          mapping: $.
    - path: /connections/{name}
      name: getconnection
      operations:
      - method: GET
        name: getconnection
        description: Get connection
        call: rabbitmq.getconnection
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /connections/{name}
      name: deleteconnection
      operations:
      - method: DELETE
        name: deleteconnection
        description: Close connection
        call: rabbitmq.deleteconnection
        with:
          name: rest.name
        outputParameters:
        - type: object
          mapping: $.
    - path: /channels
      name: listchannels
      operations:
      - method: GET
        name: listchannels
        description: List channels
        call: rabbitmq.listchannels
        outputParameters:
        - type: object
          mapping: $.
    - path: /vhosts
      name: listvhosts
      operations:
      - method: GET
        name: listvhosts
        description: List virtual hosts
        call: rabbitmq.listvhosts
        outputParameters:
        - type: object
          mapping: $.
    - path: /vhosts/{vhost}
      name: getvhost
      operations:
      - method: GET
        name: getvhost
        description: Get virtual host
        call: rabbitmq.getvhost
        with:
          vhost: rest.vhost
        outputParameters:
        - type: object
          mapping: $.
    - path: /vhosts/{vhost}
      name: createvhost
      operations:
      - method: PUT
        name: createvhost
        description: Create virtual host
        call: rabbitmq.createvhost
        with:
          vhost: rest.vhost
        outputParameters:
        - type: object
          mapping: $.
    - path: /vhosts/{vhost}
      name: deletevhost
      operations:
      - method: DELETE
        name: deletevhost
        description: Delete virtual host
        call: rabbitmq.deletevhost
        with:
          vhost: rest.vhost
        outputParameters:
        - type: object
          mapping: $.
    - path: /exchanges
      name: listexchanges
      operations:
      - method: GET
        name: listexchanges
        description: List all exchanges
        call: rabbitmq.listexchanges
        outputParameters:
        - type: object
          mapping: $.
    - path: /exchanges/{vhost}
      name: listexchangesinvhost
      operations:
      - method: GET
        name: listexchangesinvhost
        description: List exchanges in a virtual host
        call: rabbitmq.listexchangesinvhost
        with:
          vhost: rest.vhost
        outputParameters:
        - type: object
          mapping: $.
    - path: /exchanges/{vhost}/{exchange}
      name: getexchange
      operations:
      - method: GET
        name: getexchange
        description: Get exchange
        call: rabbitmq.getexchange
        with:
          vhost: rest.vhost
          exchange: rest.exchange
        outputParameters:
        - type: object
          mapping: $.
    - path: /exchanges/{vhost}/{exchange}
      name: createexchange
      operations:
      - method: PUT
        name: createexchange
        description: Create exchange
        call: rabbitmq.createexchange
        with:
          vhost: rest.vhost
          exchange: rest.exchange
        outputParameters:
        - type: object
          mapping: $.
    - path: /exchanges/{vhost}/{exchange}
      name: deleteexchange
      operations:
      - method: DELETE
        name: deleteexchange
        description: Delete exchange
        call: rabbitmq.deleteexchange
        with:
          vhost: rest.vhost
          exchange: rest.exchange
        outputParameters:
        - type: object
          mapping: $.
    - path: /exchanges/{vhost}/{exchange}/publish
      name: publishmessage
      operations:
      - method: POST
        name: publishmessage
        description: Publish message to exchange
        call: rabbitmq.publishmessage
        with:
          vhost: rest.vhost
          exchange: rest.exchange
        outputParameters:
        - type: object
          mapping: $.
    - path: /queues
      name: listqueues
      operations:
      - method: GET
        name: listqueues
        description: List all queues
        call: rabbitmq.listqueues
        outputParameters:
        - type: object
          mapping: $.
    - path: /queues/{vhost}
      name: listqueuesinvhost
      operations:
      - method: GET
        name: listqueuesinvhost
        description: List queues in virtual host
        call: rabbitmq.listqueuesinvhost
        with:
          vhost: rest.vhost
        outputParameters:
        - type: object
          mapping: $.
    - path: /queues/{vhost}/{queue}
      name: getqueue
      operations:
      - method: GET
        name: getqueue
        description: Get queue
        call: rabbitmq.getqueue
        with:
          vhost: rest.vhost
          queue: rest.queue
        outputParameters:
        - type: object
          mapping: $.
    - path: /queues/{vhost}/{queue}
      name: createqueue
      operations:
      - method: PUT
        name: createqueue
        description: Create queue
        call: rabbitmq.createqueue
        with:
          vhost: rest.vhost
          queue: rest.queue
        outputParameters:
        - type: object
          mapping: $.
    - path: /queues/{vhost}/{queue}
      name: deletequeue
      operations:
      - method: DELETE
        name: deletequeue
        description: Delete queue
        call: rabbitmq.deletequeue
        with:
          vhost: rest.vhost
          queue: rest.queue
        outputParameters:
        - type: object
          mapping: $.
    - path: /queues/{vhost}/{queue}/get
      name: getmessages
      operations:
      - method: POST
        name: getmessages
        description: Get messages from queue
        call: rabbitmq.getmessages
        with:
          vhost: rest.vhost
          queue: rest.queue
        outputParameters:
        - type: object
          mapping: $.
    - path: /queues/{vhost}/{queue}/purge
      name: purgequeue
      operations:
      - method: DELETE
        name: purgequeue
        description: Purge queue
        call: rabbitmq.purgequeue
        with:
          vhost: rest.vhost
          queue: rest.queue
        outputParameters:
        - type: object
          mapping: $.
    - path: /bindings
      name: listbindings
      operations:
      - method: GET
        name: listbindings
        description: List all bindings
        call: rabbitmq.listbindings
        outputParameters:
        - type: object
          mapping: $.
    - path: /bindings/{vhost}/e/{exchange}/q/{queue}
      name: listbindingsbetween
      operations:
      - method: GET
        name: listbindingsbetween
        description: List bindings between exchange and queue
        call: rabbitmq.listbindingsbetween
        with:
          vhost: rest.vhost
          exchange: rest.exchange
          queue: rest.queue
        outputParameters:
        - type: object
          mapping: $.
    - path: /bindings/{vhost}/e/{exchange}/q/{queue}
      name: createbinding
      operations:
      - method: POST
        name: createbinding
        description: Create binding
        call: rabbitmq.createbinding
        with:
          vhost: rest.vhost
          exchange: rest.exchange
          queue: rest.queue
        outputParameters:
        - type: object
          mapping: $.
    - path: /users
      name: listusers
      operations:
      - method: GET
        name: listusers
        description: List users
        call: rabbitmq.listusers
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{user}
      name: getuser
      operations:
      - method: GET
        name: getuser
        description: Get user
        call: rabbitmq.getuser
        with:
          user: rest.user
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{user}
      name: createuser
      operations:
      - method: PUT
        name: createuser
        description: Create or update user
        call: rabbitmq.createuser
        with:
          user: rest.user
        outputParameters:
        - type: object
          mapping: $.
    - path: /users/{user}
      name: deleteuser
      operations:
      - method: DELETE
        name: deleteuser
        description: Delete user
        call: rabbitmq.deleteuser
        with:
          user: rest.user
        outputParameters:
        - type: object
          mapping: $.
    - path: /permissions/{vhost}/{user}
      name: getuserpermissions
      operations:
      - method: GET
        name: getuserpermissions
        description: Get user permissions
        call: rabbitmq.getuserpermissions
        with:
          vhost: rest.vhost
          user: rest.user
        outputParameters:
        - type: object
          mapping: $.
    - path: /permissions/{vhost}/{user}
      name: setuserpermissions
      operations:
      - method: PUT
        name: setuserpermissions
        description: Set user permissions
        call: rabbitmq.setuserpermissions
        with:
          vhost: rest.vhost
          user: rest.user
        outputParameters:
        - type: object
          mapping: $.
    - path: /permissions/{vhost}/{user}
      name: deleteuserpermissions
      operations:
      - method: DELETE
        name: deleteuserpermissions
        description: Delete user permissions
        call: rabbitmq.deleteuserpermissions
        with:
          vhost: rest.vhost
          user: rest.user
        outputParameters:
        - type: object
          mapping: $.
    - path: /policies/{vhost}
      name: listpolicies
      operations:
      - method: GET
        name: listpolicies
        description: List policies in vhost
        call: rabbitmq.listpolicies
        with:
          vhost: rest.vhost
        outputParameters:
        - type: object
          mapping: $.
    - path: /policies/{vhost}/{policy}
      name: getpolicy
      operations:
      - method: GET
        name: getpolicy
        description: Get policy
        call: rabbitmq.getpolicy
        with:
          vhost: rest.vhost
          policy: rest.policy
        outputParameters:
        - type: object
          mapping: $.
    - path: /policies/{vhost}/{policy}
      name: createpolicy
      operations:
      - method: PUT
        name: createpolicy
        description: Create or update policy
        call: rabbitmq.createpolicy
        with:
          vhost: rest.vhost
          policy: rest.policy
        outputParameters:
        - type: object
          mapping: $.
    - path: /policies/{vhost}/{policy}
      name: deletepolicy
      operations:
      - method: DELETE
        name: deletepolicy
        description: Delete policy
        call: rabbitmq.deletepolicy
        with:
          vhost: rest.vhost
          policy: rest.policy
        outputParameters:
        - type: object
          mapping: $.
    - path: /health/checks/alarms
      name: healthcheckalarms
      operations:
      - method: GET
        name: healthcheckalarms
        description: Health check - alarms
        call: rabbitmq.healthcheckalarms
        outputParameters:
        - type: object
          mapping: $.
    - path: /health/checks/local-alarms
      name: healthchecklocalalarms
      operations:
      - method: GET
        name: healthchecklocalalarms
        description: Health check - local alarms
        call: rabbitmq.healthchecklocalalarms
        outputParameters:
        - type: object
          mapping: $.
    - path: /whoami
      name: whoami
      operations:
      - method: GET
        name: whoami
        description: Get current user
        call: rabbitmq.whoami
        outputParameters:
        - type: object
          mapping: $.
    - path: /definitions
      name: getdefinitions
      operations:
      - method: GET
        name: getdefinitions
        description: Export definitions
        call: rabbitmq.getdefinitions
        outputParameters:
        - type: object
          mapping: $.
    - path: /definitions
      name: postdefinitions
      operations:
      - method: POST
        name: postdefinitions
        description: Import definitions
        call: rabbitmq.postdefinitions
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: rabbitmq-mcp
    transport: http
    description: MCP adapter for RabbitMQ Management HTTP API for AI agent use.
    tools:
    - name: getoverview
      description: Get cluster overview
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rabbitmq.getoverview
      outputParameters:
      - type: object
        mapping: $.
    - name: getclustername
      description: Get cluster name
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rabbitmq.getclustername
      outputParameters:
      - type: object
        mapping: $.
    - name: setclustername
      description: Set cluster name
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: rabbitmq.setclustername
      outputParameters:
      - type: object
        mapping: $.
    - name: listnodes
      description: List nodes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: rabbitmq.listnodes

# --- truncated at 32 KB (49 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/rabbitmq/refs/heads/main/capabilities/rabbitmq-capability.yaml