MCP server for managing and monitoring RabbitMQ clusters via the RabbitMQ Management API
58 tools with consistent naming (verb_noun pattern) and basic descriptions, but critical gaps in parameter documentation and output schemas. All tools have descriptions (10-100 chars, mostly 50-80), but 100% lack parameter descriptions, LLMs cannot infer what 'vhost', 'node', 'props' mean. Input schemas present but minimal (type-only, no descriptions). No output schemas documented. Error handling absent, tools return raw HTTP errors. Tool annotations present (readOnlyHint, destructiveHint) but underutilized. Composition is sound (single responsibility per tool), but parameter naming inconsistencies ('props' vs 'routing_key') and missing constraints (no enums for 'type', 'protocol', 'unit') invite hallucinated values.
Create a binding from one exchange to another.
Create a binding from an exchange to a queue.
Delete a binding from one exchange to another.
Delete a binding from an exchange to a queue.
Close a specific connection.
Close all connections for a specific username. Optionally provide a reason.
Zero parameter descriptions across all 58 tools. LLMs cannot infer meaning of 'vhost', 'node', 'props', 'unit', 'within', 'component' without explicit guidance. This violates pattern:tool-description and forces LLMs to guess, causing wrong parameter values.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields (e.g., vhost_id, exchange_name) for chaining. Violates pattern:tool and mxe:include-chaining-ids.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Delete an exchange.
Delete a global parameter.
Delete a parameter for a component in a vhost.
Get authentication status for the current user.
Get authentication info for the current user.
Get details for a specific channel.
Get details for a specific connection.
List all channels for a given connection.
Get details for a specific exchange.
List bindings to an exchange (destination).
List bindings from an exchange (source).
Get information about enabled RabbitMQ extensions.
Get a specific global parameter.
Get health check status for alarms.
Get health check status for certificate expiration within a given time.
Get health check status for local alarms.
Get health check status for node quorum criticality.
Get health check status for a port listener.
Get health check status for a protocol listener.
Get health check status for all virtual hosts.
Get metrics of an individual cluster node
Get memory usage breakdown of a specific cluster node
Get a specific parameter for a component in a vhost.
Get rebalance status for queues.
Get information about the current user.
Hash a password using RabbitMQ's internal hashing.
List all authentication attempts for a node.
List all authentication attempts for a node/source.
List all bindings in the RabbitMQ cluster.
List bindings between two exchanges.
List bindings between an exchange and a queue.
List all bindings for a specific vhost.
List all channels in the RabbitMQ cluster.
List all channels for a given connection.
List all open connections.
List all open connections for a specific username.
List all open connections in a specific virtual host.
List all consumers in the RabbitMQ cluster.
List all consumers for a specific queue.
List all consumers for a specific vhost.
List all exchanges in the RabbitMQ cluster.
List all exchanges for a specific vhost.
List all federation links in the RabbitMQ cluster.
List all federation links for a given vhost.
List all global parameters in the RabbitMQ cluster.
List all nodes in the RabbitMQ cluster with their metrics
List all parameters in the RabbitMQ cluster.
List all parameters for a given component.
List all parameters for a given component in a vhost.
Create or update an exchange.
Create or update a global parameter.
Create or update a parameter for a component in a vhost.
Ambiguous parameter names: 'props' (delete-binding-*), 'unit' (get-health-certificate-expiration), 'within' (get-health-certificate-expiration), 'type' (put-exchange). No enums or constraints. LLMs will hallucinate invalid values like 'props=xyz' or 'unit=days' without validation.
No error handling or recovery guidance. Tools return raw HTTP errors (e.g., 'HTTP 404: Not found') with no actionable next steps. Violates pattern:recovery-guide. LLMs cannot self-correct or suggest alternatives.
Destructive tools (delete-*, close connections) lack confirmation or dry-run support. Agents can irreversibly delete exchanges, queues, or parameters without safeguards. Violates pattern:confirmation-request.