rabbitmq-mcp
by kmitchell
README.md
# 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
MITTDQS
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