rabbitmq-mcp

by kmitchell

250 downloads
Not rated
GitHub

About

rabbitmq-mcp is a Model Context Protocol (MCP) server that exposes the full RabbitMQ HTTP API as tools for MCP clients. It allows users to manage RabbitMQ queues, messages, and vhosts through natural language commands given to MCP-enabled AI agents like Claude Desktop or Cursor.

Details

Author
kmitchell
Downloads
250
Categories
Other

- Exposes full RabbitMQ HTTP API as MCP tools
- Enables natural‑language management of queues and vhosts
- Supports TLS/HTTPS with optional certificate verification
- Operates locally via stdio transport (remote support planned)
- Flexible configuration via environment variables

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name rabbitmq-mcp
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install globally via npm install -g rabbitmq-mcp or run with npx -y rabbitmq-mcp. Set required environment variables (RABBITMQ_HOST, RABBITMQ_USERNAME, RABBITMQ_PASSWORD, RABBITMQ_MANAGEMENT_PORT, RABBITMQ_PROTOCOL) and optionally TLS credentials. Configure an MCP client (e.g., Claude Desktop) with stdio transport using the provided JSON example. The RabbitMQ management plugin must be enabled on your instance.

list-federation-links

List all federation links in the RabbitMQ cluster.

list-federation-links-vhost

List all federation links for a given vhost.

list-auth-attempts-node

List all authentication attempts for a node.

list-auth-attempts-node-source

List all authentication attempts for a node/source.

hash-password

Hash a password using RabbitMQ's internal hashing.

get-auth-info

Get authentication info for the current user.

list-bindings

List all bindings in the RabbitMQ cluster.

list-bindings-vhost

List all bindings for a specific vhost.

list-bindings-exchange-queue

List bindings between an exchange and a queue.

create-binding-exchange-queue

Create a binding from an exchange to a queue.

delete-binding-exchange-queue

Delete a binding from an exchange to a queue.

list-bindings-exchange-exchange

List bindings between two exchanges.

create-binding-exchange-exchange

Create a binding from one exchange to another.

delete-binding-exchange-exchange

Delete a binding from one exchange to another.

list-channels

List all channels in the RabbitMQ cluster.

get-channel

Get details for a specific channel.

list-channels-connection

List all channels for a given connection.

list-connections

List all open connections.

get-connection

Get details for a specific connection.

delete-connection

Close a specific connection.

list-connections-vhost

List all open connections in a specific virtual host.

list-connections-username

List all open connections for a specific username.

delete-connections-username

Close all connections for a specific username. Optionally provide a reason.

get-connection-channels

List all channels for a given connection.

list-consumers

List all consumers in the RabbitMQ cluster.

list-consumers-vhost

List all consumers for a specific vhost.

list-consumers-queue

List all consumers for a specific queue.

list-exchanges

List all exchanges in the RabbitMQ cluster.

list-exchanges-vhost

List all exchanges for a specific vhost.

get-exchange

Get details for a specific exchange.

put-exchange

Create or update an exchange.

delete-exchange

Delete an exchange.

get-exchange-bindings-source

List bindings from an exchange (source).

get-exchange-bindings-destination

List bindings to an exchange (destination).

get-health-alarms

Get health check status for alarms.

get-health-local-alarms

Get health check status for local alarms.

get-health-certificate-expiration

Get health check status for certificate expiration within a given time.

get-health-port-listener

Get health check status for a port listener.

get-health-protocol-listener

Get health check status for a protocol listener.

get-health-virtual-hosts

Get health check status for all virtual hosts.

get-health-node-is-quorum-critical

Get health check status for node quorum criticality.

get-rebalance-queues

Get rebalance status for queues.

get-whoami

Get information about the current user.

get-auth

Get authentication status for the current user.

get-extensions

Get information about enabled RabbitMQ extensions.

list-nodes

List all nodes in the RabbitMQ cluster with their metrics

get-node

Get metrics of an individual cluster node

get-node-memory

Get memory usage breakdown of a specific cluster node

list-parameters

List all parameters in the RabbitMQ cluster.

list-parameters-component

List all parameters for a given component.

list-parameters-component-vhost

List all parameters for a given component in a vhost.

get-parameter

Get a specific parameter for a component in a vhost.

put-parameter

Create or update a parameter for a component in a vhost.

delete-parameter

Delete a parameter for a component in a vhost.

list-global-parameters

List all global parameters in the RabbitMQ cluster.

get-global-parameter

Get a specific global parameter.

put-global-parameter

Create or update a global parameter.

delete-global-parameter

Delete a global parameter.

list-permissions

List all permissions in the RabbitMQ cluster.

get-permission

Get permissions for a user in a vhost.

set-permission

Set permissions for a user in a vhost.

delete-permission

Delete permissions for a user in a vhost.

list-topic-permissions

List all topic permissions in the RabbitMQ cluster.

get-topic-permission

Get topic permissions for a user in a vhost.

set-topic-permission

Set topic permissions for a user in a vhost.

delete-topic-permission

Delete topic permissions for a user in a vhost.

list-policies

List all policies in the RabbitMQ cluster.

list-policies-vhost

List all policies for a given vhost.

get-policy

Get a specific policy for a vhost.

put-policy

Create or update a policy for a vhost.

delete-policy

Delete a policy for a vhost.

list-operator-policies

List all operator policies in the RabbitMQ cluster.

list-operator-policies-vhost

List all operator policies for a given vhost.

get-operator-policy

Get a specific operator policy for a vhost.

put-operator-policy

Create or update an operator policy for a vhost.

delete-operator-policy

Delete an operator policy for a vhost.

list-queues

List all queues across all known vhosts

list-queues-vhost

List queues for a specific vhost

get-queue

Get details for a specific queue

put-queue

Create or update a queue

delete-queue

Delete a queue

purge-queue

Purge a queue

get-queue-messages

Get messages from a queue

get-queue-bindings

List queue bindings

get-queue-unacked

List unacked messages for a queue

pause-queue

Pause a queue

resume-queue

Resume a queue

list-stream-connections

List all stream connections in the RabbitMQ cluster.

list-stream-connections-vhost

List all stream connections for a given vhost.

get-stream-connection

Get details for a specific stream connection in a vhost.

get-stream-connection-publishers

Get all publishers for a specific stream connection in a vhost.

get-stream-connection-consumers

Get all consumers for a specific stream connection in a vhost.

delete-stream-connection

Delete a specific stream connection in a vhost.

list-stream-publishers

List all stream publishers in the RabbitMQ cluster.

list-stream-publishers-vhost

List all stream publishers for a given vhost.

list-stream-publishers-vhost-stream

List all stream publishers for a stream in a vhost.

list-stream-consumers

List all stream consumers in the RabbitMQ cluster.

list-stream-consumers-vhost

List all stream consumers for a given vhost.

list-users

List all users in the RabbitMQ cluster.

get-user

Get details for a specific user.

put-user

Create or update a user.

delete-user

Delete a user.

list-user-permissions

List all permissions for a user.

list-user-topic-permissions

List all topic permissions for a user.

list-users-without-permissions

List all users without permissions.

bulk-delete-users

Bulk delete users.

list-user-limits

List all user limits.

get-user-limit

Get a user limit.

set-user-limit

Set a user limit.

delete-user-limit

Delete a user limit.

list-vhosts

List all virtual hosts in the cluster

get-vhost

Get details for a specific virtual host

put-vhost

Create or update a virtual host

delete-vhost

Delete a virtual host

get-vhost-permissions

List all permissions for a given virtual host

get-vhost-topic-permissions

List all topic permissions for a given virtual host

protect-vhost

Protect a virtual host from deletion

unprotect-vhost

Remove deletion protection from a virtual host

start-vhost-on-node

Start or restart a virtual host on a node

list-vhost-limits

List all vhost limits in the RabbitMQ cluster.

list-vhost-limits-vhost

List all vhost limits for a specific vhost.

put-vhost-limit

Set a vhost limit for a vhost.

delete-vhost-limit

Delete a vhost limit for a vhost.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "rabbitmq-mcp": {
            "rabbitmq-mcp": {
                "command": "npx",
                "args": [
                    "-y",
                    "rabbitmq-mcp"
                ]
            }
        }
    }
}

McpServers

{
    "rabbitmq-mcp": {
        "command": "npx",
        "args": [
            "-y",
            "rabbitmq-mcp"
        ]
    }
}

rabbitmq-mcp NPM Version

A Model Context Protocol (MCP) server for RabbitMQ, enabling MCP clients to interact with RabbitMQ. This server aims to expose the full range of features available in the official RabbitMQ HTTP API as tools.

MCP is a standardized protocol for managing context between large language models (LLMs) and external systems, such as RabbitMQ. It allows users to ask MCP-enabled AI agents, like Claude Desktop or Cursor, to interact with external systems using natural language.

💬 Example Requests:
> - Get me the message count in the inbound signup metrics queue, and if it's over 10,000, move half of them to the metrics overflow queue.
> - Purge the outbound email deadletter queue.
> - Check if there are any alarms triggered in the production vhost.

These are parseable and actionable requests that an MCP client can handle with this server.

Installation

If you prefer to install locally:

npm install -g rabbitmq-mcp

Or with npx:

npx -y rabbitmq-mcp

Environment Variables

The following environment variables are required to configure a connection to your RabbitMQ instance:

- RABBITMQ_HOST – accessible host (e.g. test.abc.cloudamqp.com)
- RABBITMQ_USERNAME – RabbitMQ username
- RABBITMQ_PASSWORD – RabbitMQ password
- RABBITMQ_MANAGEMENT_PORT – management port (e.g. 443 or 15672)
- RABBITMQ_PROTOCOLhttps (default) or http. Use https for secure connections.

Optional TLS/HTTPS Options

You can provide TLS/HTTPS credentials either as file paths or as environment variable strings: - RABBITMQ_CA – CA certificate (PEM string) - RABBITMQ_CERT – Client certificate (PEM string) - RABBITMQ_KEY – Client private key (PEM string) - RABBITMQ_CA_PATH – Path to CA certificate file - RABBITMQ_CERT_PATH – Path to client certificate file - RABBITMQ_KEY_PATH – Path to client private key file

A cert verification flag exists for debugging, if needed:
- RABBITMQ_REJECT_UNAUTHORIZED – Set to false to disable server certificate verification (defaults to true)

MCP Client Configuration Example

As MPC is in rapid development, clients can be finicky to set up correctly. Here's an example best-case config for Claude and Cursor:

{
  "mcpServers": {
    "rabbitmq-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "rabbitmq-mcp"],
      "env": {
        "RABBITMQ_HOST": "your-host",
        "RABBITMQ_USERNAME": "your-username",
        "RABBITMQ_PASSWORD": "your-password",
        "RABBITMQ_MANAGEMENT_PORT": "15671",
        "RABBITMQ_CA_PATH": "/path/to/rabbit-cert.crt"
      }
    }
  }
}

If you experience initialization errors, you may need to use absolute paths for the command and/or args:

  "command": "/local/path/to/node",
  "args": ["/local/path/to/rabbitmq-mcp/dist/index.js"],

> [!IMPORTANT]
> Currently, this server only supports running locally with stdio. Remote functionality using SSE/streaming is planned for a future update.

> [!IMPORTANT]
> The management plugin must be enabled in your RabbitMQ instance to use this server. While there are many options for interacting with RabbitMQ directly via AMQP, the protocol only provides a small subset of the capabilities available through the HTTP API.

License

MIT

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.