项目简介:

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 等。

安装步骤:

  1. 确保您的系统已安装 Node.js 和 npm(或 npx)。
  2. 全局安装 (推荐): 打开终端,运行以下命令:
    npm install -g rabbitmq-mcp
  3. 使用 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 文件。

基本使用方法:

  1. 根据上述配置,通过您的 MCP 客户端启动 rabbitmq-mcp 服务器(客户端通常会自动处理启动过程)。
  2. 在 MCP 客户端的聊天界面或指令输入框中,向 LLM 发出关于 RabbitMQ 的自然语言指令。例如:
    • “统计并告诉我名为 ‘inbound-signup-metrics’ 的队列里有多少条消息。”
    • “如果 ‘inbound-signup-metrics’ 队列的消息数超过 10000,把其中一半转移到 ‘metrics-overflow’ 队列。”
    • “清空名为 ‘outbound-email-deadletter’ 的死信队列。”
    • “检查一下生产环境的 virtual host 里有没有触发任何告警。”
    • “列出所有连接。”
  3. LLM 会理解您的意图,识别出需要调用的 rabbitmq-mcp 工具,并根据对话提取所需的参数,然后通过 MCP 协议调用服务器的工具。
  4. rabbitmq-mcp 服务器接收到调用请求,执行对应的 RabbitMQ Management API 操作,并将结果(通常是 JSON 数据,由服务器转换为文本)通过 MCP 协议返回给 LLM。
  5. LLM 会将工具执行的结果以用户友好的方式呈现给您。

信息

分类

开发者工具