mcp-server-rabbitmq
Health Gecti
- License — License: Apache-2.0
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 27 GitHub stars
Code Gecti
- Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
- Permissions — No dangerous permissions requested
This MCP server acts as a bridge allowing AI agents to manage and interact with RabbitMQ message brokers via administrative APIs. It supports multi-broker connections and offers both local standard I/O and remote HTTP transports.
Security Assessment
Overall risk: Low. The tool functions by making network requests to RabbitMQ management APIs based on user prompts. It does not inherently execute local shell commands, and no hardcoded secrets or dangerous code patterns were found during the audit. However, because it wraps broker administration APIs, it can access highly sensitive message queues and routing configurations. The `--allow-mutative-tools` flag explicitly grants the AI permission to alter, create, or delete resources within your broker, which could lead to accidental data loss or infrastructure disruption if misused. OAuth and bearer authentication mechanisms are securely delegated to standard external providers rather than handled custom.
Quality Assessment
The project is in early but active development, with its most recent updates pushed just today. It uses the standard, permissive Apache-2.0 license and has a clear, well-written guide. While the community footprint is currently small at 27 stars, the codebase is lightweight, cleanly scanned, and requires no dangerous system permissions.
Verdict
Safe to use, but caution is advised when enabling mutative tools to prevent an AI agent from unintentionally modifying critical message broker states.
MCP server for RabbitMQ
RabbitMQ MCP Server
A Model Context Protocol server implementation for RabbitMQ operation.
Features
Manage your RabbitMQ message brokers using AI agent
This MCP servers wraps admin APIs of a RabbitMQ broker as MCP tools.
Connect to multiple brokers in one session
Supports connecting to multiple RabbitMQ brokers within a single session, allowing you to manage multiple clusters simultaneously.
OAuth authentication support
Connect to RabbitMQ brokers using OAuth tokens for secure, token-based authentication.
Supports streamable HTTP with FastMCP's BearerAuthProvider
You can start a remote RabbitMQ MCP server by configuring your own IdP and 3rd party authorization provider.
Seamless integration with MCP clients
The package is available on PyPI, you can use uvx without having to fork and build the MCP server locally first.
Installation
PyPI
https://pypi.org/project/amq-mcp-server-rabbitmq/
Use uvx directly in your MCP client config
{
"mcpServers": {
"rabbitmq": {
"command": "uvx",
"args": [
"amq-mcp-server-rabbitmq@latest",
"--allow-mutative-tools"
]
}
}
}
From source
- Clone this repository.
{
"mcpServers": {
"rabbitmq": {
"command": "uv",
"args": [
"--directory",
"/path/to/repo/mcp-server-rabbitmq",
"run",
"amq-mcp-server-rabbitmq",
"--allow-mutative-tools"
]
}
}
}
Configuration
CLI Arguments
--allow-mutative-tools: Enable tools that can mutate the states of RabbitMQ. Default is false.--http: Use Streamable HTTP transport instead of stdio.--server-port: Port to run the MCP server on (default: 8888).--http-auth-jwks-uri: JWKS URI for FastMCP Bearer Auth Provider.--http-auth-issuer: Issuer for FastMCP Bearer Auth Provider.--http-auth-audience: Audience for FastMCP Bearer Auth Provider.--http-auth-required-scopes: Required scopes for FastMCP Bearer Auth Provider.
Usage Examples
Strands Agent Example
See example/agent_strands for a complete example of using the RabbitMQ MCP server with Strands AI agents.
from mcp import stdio_client, StdioServerParameters
from strands import Agent
from strands.tools.mcp import MCPClient
stdio_mcp_client = MCPClient(lambda: stdio_client(
StdioServerParameters(
command="uvx",
args=["amq-mcp-server-rabbitmq@latest"]
)
))
with stdio_mcp_client:
tools = stdio_mcp_client.list_tools_sync()
agent = Agent(tools=tools)
while True:
user_input = input("\nYou: ").strip()
if not user_input or user_input.lower() in ["exit", "quit"]:
break
agent(user_input)
Amazon Q Developer CLI Example
See example/amazon_q_cli for configuration examples with Amazon Q Developer CLI.
Development
Setup Development Environment
# Clone the repository
git clone https://github.com/amazon-mq/mcp-server-rabbitmq.git
cd mcp-server-rabbitmq
# Install pre-commit hooks
pre-commit install
Running Tests
pytest
Code Quality
This project uses ruff for linting and formatting:
# Run linter
ruff check .
# Run formatter
ruff format .
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi