Skip to main content
Glama
kmitchell

rabbitmq-mcp

by kmitchell
README.md
# rabbitmq-mcp ![NPM Version](https://img.shields.io/npm/v/rabbitmq-mcp)

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](https://www.rabbitmq.com/docs/http-api-reference) as tools.

MCP is a [standardized protocol](https://modelcontextprotocol.io/) 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:
```sh
npm install -g rabbitmq-mcp
```

Or with npx:

```sh
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_PROTOCOL` – `https` (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:

```json
{
  "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:

```json
  "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](https://www.rabbitmq.com/docs/management#getting-started) 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

TDQS

B3/5.0

Scored across 123 tools

Disambiguation5/5

Each tool targets a distinct resource and action, with clear naming that avoids overlap. Even similar operations like list-queues and list-queues-vhost are differentiated by scope.

Naming Consistency5/5

All tool names follow a consistent lowercase-hyphenated pattern: verb-resource-qualifier. No mixing of styles.

Tool Count2/5

123 tools is excessive. Many tools could be consolidated using parameters (e.g., list-queues vs list-queues-vhost). This volume overwhelms agents and increases selection complexity.

Completeness5/5

The tool set comprehensively covers RabbitMQ management: CRUD for users, vhosts, queues, exchanges, bindings, policies, parameters, connections, channels, nodes, health checks, stream connections, and more. No obvious gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues