使用说明

项目简介

rocketmq-mcp 是一个基于 Model Context Protocol (MCP) 构建的服务器,它将 RocketMQ 的管理功能通过工具 (Tools) 的形式暴露出来,使得 LLM 客户端可以通过 MCP 协议调用这些工具,实现对 RocketMQ 集群的监控、管理和运维操作。

主要功能点

  • 工具 (Tools) 注册与执行: 提供了丰富的 RocketMQ 管理工具集,例如:

    • 集群管理: 获取集群信息、集群列表等。
    • Broker 管理: 获取 Broker 运行时信息、配置信息、broker 地址列表等,支持配置更新、broker 容器管理等高级操作。
    • 主题 (Topic) 管理: 获取主题列表、主题统计信息、主题路由信息、主题配置信息等,支持主题的创建、删除和配置更新。
    • 消费者 (Consumer) 管理: 获取消费者组信息、消费者组列表、消费进度、连接信息等,支持消费者重平衡、偏移量重置等操作。
    • 消息 (Message) 查询: 支持多种消息查询方式,例如按消息 ID、Key 查询消息,查看消息轨迹等。
    • NameServer 管理: 获取 NameServer 地址列表、KV 配置管理等。
    • ACL 权限控制: 支持 ACL 权限配置的管理,例如创建、删除、更新 ACL 配置,用户管理等。
    • Controller 管理: 支持控制器配置更新、获取,主节点选举,broker 元数据清理等。
    • ConsumeQueue 管理: 支持消费队列数据查询、过期消费队列清理等。
    • Producer 管理: 获取生产者连接信息等。
  • 基于 Spring AI Tool 框架: 使用 Spring AI Tool 注解驱动,方便快捷地将 RocketMQ Admin API 封装成可被 LLM 客户端调用的工具。

  • SSE 协议支持: 通过 SSE (Server-Sent Events) 协议提供服务,支持客户端与服务器端的长连接和实时通信。

安装步骤

  1. 克隆仓库:

    git clone https://github.com/francisoliverlee/rocketmq-mcp.git
    cd rocketmq-mcp
  2. 构建项目:

    ./build.sh

    构建成功后,会在 'target' 目录下生成 'rocketmq-mcp-server.jar' 文件。

服务器配置

MCP 客户端需要配置 MCP 服务器的连接信息才能使用 rocketmq-mcp 提供的工具。以下是一个 MCP 客户端的 'mcpServers' 配置示例,请根据你的实际情况进行修改:

{
  "mcpServers": {
    "rocketmq-mcp": {
      "url": "http://your-rocketmq-mcp-server-ip:6868/sse",
      "env": {
        "NS_ADDR": "1.1.1.1:9876;2.2.2.2:9876",
        "AK": "",
        "SK": ""
      }
    }
  }
}

配置参数说明:

  • 'url': rocketmq-mcp 服务器的 SSE 接口地址,默认为 'http://127.0.0.1:6868/sse'。你需要将其中的 'your-rocketmq-mcp-server-ip' 替换为你的 rocketmq-mcp 服务器的实际 IP 地址或域名。
  • 'env': 环境变量配置,用于连接 RocketMQ 集群。
    • 'NS_ADDR': Name Server 地址列表。请替换为你的 RocketMQ 集群的 Name Server 地址,多个地址用分号分隔,例如 '"1.1.1.1:9876;2.2.2.2:9876"'。这是连接 RocketMQ 集群的必要参数。
    • 'AK': Access Key。 如果你的 RocketMQ 集群启用了 ACL 权限控制,请配置具有管理权限的 Access Key。如果未启用 ACL,可以留空 '""'。
    • 'SK': Secret Key。 如果你的 RocketMQ 集群启用了 ACL 权限控制,请配置与 Access Key 配对的 Secret Key。如果未启用 ACL,可以留空 '""'。

基本使用方法

  1. 启动 rocketmq-mcp 服务器:

    java -jar target/rocketmq-mcp-server.jar

    服务器默认监听 '6868' 端口。

  2. 配置 MCP 客户端:

    将上面提供的 'mcpServers' 配置添加到你的 MCP 客户端的配置文件中,并确保 'url' 和 'env' 中的参数配置正确。

  3. 通过 MCP 客户端调用工具:

    现在,你的 LLM 客户端就可以通过 MCP 协议向 rocketmq-mcp 服务器发送请求,调用各种 RocketMQ 管理工具了。具体的调用方式取决于你使用的 MCP 客户端的实现。

    例如,你可以指示 LLM 客户端调用 'Topic.fetchAllTopicList' 工具来获取 RocketMQ 集群中的所有主题列表。 LLM 客户端会将请求发送到 rocketmq-mcp 服务器,服务器执行相应的工具并返回结果给客户端。

注意:

  • 确保你的运行环境已安装 JDK 1.8 或更高版本。
  • 启动 rocketmq-mcp 服务器前,请确保你的 RocketMQ 集群已经正常运行,并且在 'NS_ADDR' 中配置了正确的 Name Server 地址。
  • 如果你的 RocketMQ 集群启用了 ACL 权限控制,请务必配置正确的 'AK' 和 'SK',并确保该 AK/SK 具有足够的权限执行管理操作。

信息

分类

开发者工具