项目简介:
rabbitmq-mcp 是一个 Model Context Protocol (MCP) 服务器实现,旨在让支持 MCP 的大型语言模型 (LLM) 能够直接通过自然语言与 RabbitMQ 实例进行交互和管理。它将 RabbitMQ 的管理 HTTP API 封装成一系列可供 LLM 调用的“工具”,使 AI 代理能够执行 RabbitMQ 相关的操作。
主要功能点:
通过暴露丰富的工具集,rabbitmq-mcp 允许 LLM 执行以下 RabbitMQ 管理和操作任务:
- 队列管理: 创建、删除、清空队列,查看队列详情和消息,列出队列绑定等。
- 交换机管理: 创建、删除交换机,查看交换机详情和绑定。
- 虚拟主机 (Vhost) 管理: 创建、删除、查看 vhost 详情、权限和限制。
- 连接和通道管理: 列出、查看、关闭连接和通道。
- 用户和权限管理: 列出、创建、删除用户,查看和设置用户权限、主题权限及用户限制。
- 策略管理: 列出、创建、删除普通策略和操作员策略。
- 集群和节点信息: 获取节点列表和详情、节点内存使用情况。
- 健康检查: 执行多种健康检查,如告警、证书过期、监听器状态、vhost 状态等。
- 其他: 获取认证信息、列出 federation links、列出 stream connections/publishers/consumers 等。
安装步骤:
- 确保您的系统已安装 Node.js 和 npm(或 npx)。
- 全局安装 (推荐): 打开终端,运行以下命令:
npm install -g rabbitmq-mcp - 使用 npx (无需安装): 您也可以直接使用 npx 运行此服务器(通常在 MCP 客户端配置中使用):
npx rabbitmq-mcp
服务器配置 (供 MCP 客户端使用):
rabbitmq-mcp 服务器需要连接到您的 RabbitMQ 实例。您必须在启动服务器的环境中或 MCP 客户端的配置中提供 RabbitMQ 的连接详情。请确保您的 RabbitMQ 实例已启用 管理插件 (Management Plugin)。
在您的 MCP 客户端(如 Claude Desktop, Cursor 等)的配置文件中,您需要添加 rabbitmq-mcp 服务器的配置信息。配置格式通常是 JSON,指定服务器的类型、启动命令和连接 RabbitMQ 所需的环境变量。
关键配置项及说明(您需要在 MCP 客户端配置文件中填写这些信息):
- 'type': 指定 MCP 服务器的传输协议类型,目前 rabbitmq-mcp 仅支持 'stdio' (标准输入输出)。
- 'command': 启动 rabbitmq-mcp 服务器的可执行命令路径,例如 'npx' 或 Node.js 的绝对路径 '/path/to/your/node'。
- 'args': 传递给 'command' 的参数列表,例如 '["-y", "rabbitmq-mcp"]' 或 '["/path/to/rabbitmq-mcp/dist/index.js"]'。
- 'env': 一个键值对对象,用于设置服务器启动时的环境变量。这些环境变量是连接 RabbitMQ 所必需的:
- 'RABBITMQ_HOST': RabbitMQ 主机名或 IP 地址。
- 'RABBITMQ_USERNAME': 用于连接 RabbitMQ 管理 API 的用户名。
- 'RABBITMQ_PASSWORD': 对应用户名的密码。
- 'RABBITMQ_MANAGEMENT_PORT': RabbitMQ 管理插件监听的端口号(通常是 15672,如果是通过 HTTPS 访问,可能是 443)。
- 'RABBITMQ_PROTOCOL': 连接 RabbitMQ 管理 API 的协议 ('http' 或 'https'),默认为 'https'。
- 可选的 'RABBITMQ_CA', 'RABBITMQ_CERT', 'RABBITMQ_KEY' (PEM 字符串) 或 'RABBITMQ_CA_PATH', 'RABBITMQ_CERT_PATH', 'RABBITMQ_KEY_PATH' (文件路径) 用于配置 TLS/HTTPS 客户端证书。
- 可选的 'RABBITMQ_REJECT_UNAUTHORIZED' (设置为 'false' 可禁用服务器证书验证,默认为 'true')。
详细的配置示例和说明请参考 rabbitmq-mcp 仓库的 README 文件。
基本使用方法:
- 根据上述配置,通过您的 MCP 客户端启动 rabbitmq-mcp 服务器(客户端通常会自动处理启动过程)。
- 在 MCP 客户端的聊天界面或指令输入框中,向 LLM 发出关于 RabbitMQ 的自然语言指令。例如:
- “统计并告诉我名为 ‘inbound-signup-metrics’ 的队列里有多少条消息。”
- “如果 ‘inbound-signup-metrics’ 队列的消息数超过 10000,把其中一半转移到 ‘metrics-overflow’ 队列。”
- “清空名为 ‘outbound-email-deadletter’ 的死信队列。”
- “检查一下生产环境的 virtual host 里有没有触发任何告警。”
- “列出所有连接。”
- LLM 会理解您的意图,识别出需要调用的 rabbitmq-mcp 工具,并根据对话提取所需的参数,然后通过 MCP 协议调用服务器的工具。
- rabbitmq-mcp 服务器接收到调用请求,执行对应的 RabbitMQ Management API 操作,并将结果(通常是 JSON 数据,由服务器转换为文本)通过 MCP 协议返回给 LLM。
- LLM 会将工具执行的结果以用户友好的方式呈现给您。
信息
分类
开发者工具