Rocketmq Linux Arm64
БесплатноПоддерживаетсяLinux arm64 native binary for @atengk/mcp-server-rocketmq
Описание
Linux arm64 native binary for @atengk/mcp-server-rocketmq
README
🚀 基于 Spring AI 2 与 Spring Boot 4 构建的 Apache RocketMQ 5 智能化 Model Context Protocol (MCP) 服务端
📖 项目简介
mcp-server-rocketmq 是专为 Apache RocketMQ 5 打造的企业级智能化连接服务,完全遵循开放标准 Model Context Protocol (MCP) 规范设计,基于 Spring AI 2 (2.0.1) + Spring Boot 4 (4.1.0) + JDK 21 现代云原生技术栈构建。
它将大语言模型智能体(如 Claude Desktop、Cursor、Antigravity 等各类 AI 编程助手与智能运维 Agent)与分布式消息中间件 Apache RocketMQ 5 深度打通。通过暴露标准化的 MCP Tools(工具)、Resources(只读资源) 与 Prompts(专家排障工作流),赋能智能体通过自然语言直接探查集群健康、秒级定位消费堆积、全链路检索消息、排查死信根因,并安全受控地执行消息收发与位点治理。
🏗️ 系统拓扑架构
本项目采用 Remoting 深度运维管理 + gRPC 云原生消息收发 的混合双驱动架构(详见 ADR 0001):
flowchart TD
subgraph AI_Clients["AI 宿主客户端 (MCP Host)"]
Claude["Claude Desktop"]
Cursor["Cursor / IDE"]
Agent["Antigravity / 智能运维 Agent"]
end
subgraph MCP_Server["mcp-server-rocketmq (Spring Boot 4 + Spring AI 2)"]
direction TB
subgraph Transport_Layer["传输协议自适应层"]
Stdio["Stdio 传输 (控制台日志重定向至 stderr,保证 stdout 纯净)"]
SSE["WebMVC SSE / Streamable HTTP (独立网络微服务)"]
end
subgraph Safety_Guards["四维生产级安全拦截层"]
ReadOnlyGuard["只读守卫 (Read-Only Guard)"]
DualLayerGuard["破坏性操作双层防呆 (Dual-Layer Guard)"]
BodyGuard["消息体 4KB 截断防护 (Message Body Guard)"]
SysFilter["系统内置主题静默过滤 (System Topic Filter)"]
end
subgraph MCP_Layer["MCP 全协议三维要素层"]
Tools["18 项核心 MCP Tools"]
Resources["3 项只读 MCP Resources"]
Prompts["2 项预置专家 Prompts 工作流"]
end
subgraph Client_Drivers["RocketMQ 混合驱动层"]
AdminDriver["Remoting 运维驱动 (DefaultMQAdminExt 单例受管)"]
GrpcDriver["gRPC 消息驱动 (rocketmq-client-java 5.2.2)"]
end
end
subgraph RocketMQ5_Cluster["Apache RocketMQ 5.x 集群"]
NameServer["NameServer 集群 (端口 9876)"]
Proxy["RocketMQ 5 Proxy 端点 (gRPC 端口 8081)"]
Broker["Broker 消息存储节点"]
end
Claude -->|stdio| Stdio
Cursor -->|stdio| Stdio
Agent -->|HTTP/SSE| SSE
Stdio --> Safety_Guards
SSE --> Safety_Guards
Safety_Guards --> MCP_Layer
MCP_Layer --> Client_Drivers
AdminDriver -->|Remoting 协议| NameServer
AdminDriver -.->|Remoting 协议| Broker
GrpcDriver -->|gRPC 协议| Proxy
Proxy -.-> Broker
✨ 核心能力与 MCP 协议要素矩阵
本项目完整落地 Model Context Protocol 的三大核心支柱:
1. 🧰 MCP Tools 核心工具集 (共 18 项工具)
| 核心领域 | 工具标识 (Tool Name) | 核心入参 (Parameters) | 职责说明 | 安全防护级别 |
|---|---|---|---|---|
| 集群拓扑域 | rocketmq_cluster_info |
(无入参) | 查询 NameServer / Broker 节点分布、角色与在线状态 | 只读查询 |
rocketmq_broker_stats |
brokerAddr |
查询指定 Broker 运行时核心指标(吞吐量、写入 TPS、物理磁盘水位) | 只读查询 | |
| 主题生命周期 | rocketmq_list_topics |
includeSystem? |
列出集群业务 Topic(自动隐藏系统内部管理主题) | 只读查询 |
rocketmq_topic_route |
topic |
查询指定 Topic 的读写队列分布与 Broker 路由详情 | 只读查询 | |
rocketmq_topic_status |
topic |
查询指定 Topic 各分片队列的最小/最大 Offset 与堆积容量统计 | 只读查询 | |
rocketmq_create_topic |
topic, readQueueNums?, writeQueueNums?, perm? |
声明式创建或更新指定 Topic(动态配置队列数与读写权限) | 受 read-only 约束 |
|
rocketmq_delete_topic |
topic, confirm: true |
彻底清理下线指定业务 Topic | 🚨 双层防呆保护 | |
| 消费组与积压 | rocketmq_list_consumer_groups |
includeSystem? |
获取所有已注册的消费组清单 | 只读查询 |
rocketmq_consumer_status |
consumerGroup |
查询消费组的在线客户端 ID、IP 端口及订阅详情 | 只读查询 | |
rocketmq_consumer_lag |
consumerGroup, topic? |
精确计算消费组在各分片队列的未消费堆积量 (Lag) | 只读查询 | |
rocketmq_top_consumer_lag |
topN? (默认 10) |
全集群积压排行榜:极速检出堆积最严重的 TopN 消费组 | 只读查询 | |
rocketmq_reset_consumer_offset |
consumerGroup, topic, resetType, timestamp?, confirm: true |
按时间戳回溯或按最大位点跳过重置消费点位 | 🚨 双层防呆保护 | |
| 消息检索排查 | rocketmq_query_message_by_id |
topic, msgId |
根据 32 位 Message ID 精确检索消息内容与用户属性 | 只读 (4KB截断) |
rocketmq_query_message_by_key |
topic, key, beginTimestamp?, endTimestamp?, maxNum? |
根据业务 Key 在指定时间窗口内扫描匹配的消息列表 | 只读 (4KB截断) | |
rocketmq_query_dlq_messages |
consumerGroup, maxNum? |
检索指定消费组死信队列(DLQ)中的失败堆积消息 | 只读 (4KB截断) | |
rocketmq_query_message_trace |
msgId, topic? |
调阅单条消息自 Producer、Broker 至 Consumer 的全链路轨迹耗时 | 只读 (4KB截断) | |
| 消息生产自愈 | rocketmq_send_message |
topic, body, tag?, keys?, messageGroup?, deliveryTimestamp? |
发送测试消息(支持普通、分区顺序与定时延时消息) | 受 read-only 约束 |
rocketmq_resend_dlq_message |
consumerGroup, msgId, targetTopic, confirm: true |
将死信队列中的指定消息重新投递回业务 Topic 触发重试 | 🚨 双层防呆保护 |
📌 注:参数加粗表示必填项,带
?表示可选参数;破坏性工具必须由模型显式传入confirm: true且启动配置放行,否则将被双层防呆拦截。
2. 📚 MCP Resources (只读上下文资源)
客户端连接时无需主动调用工具,即可将集群基础拓扑直接作为只读上下文挂载进会话:
rocketmq://cluster/topology:集群物理拓扑快照(包含 Broker 节点名、角色 Master/Slave、地址及健康状态)。rocketmq://topics:当前集群所有业务主题清单与队列分布概览。rocketmq://server/status:MCP Server 自身运行时配置与防护策略(只读状态、破坏性工具开启状态)。
3. 💡 MCP Prompts (专家预置工作流)
客户端可一键触发针对复杂故障场景的标准化编排工作流:
diagnose_consumer_lag(消费堆积深度排障流): 引导 AI 自动串联:rocketmq_top_consumer_lag(定位慢组)$\rightarrow$rocketmq_consumer_status(检查消费者客户端活跃度)$\rightarrow$rocketmq_query_dlq_messages(排查死信)$\rightarrow$ 输出根因结论与扩容/位点重置治理建议。cluster_health_check(集群健康全面巡检流): 全面巡检所有 Broker 节点吞吐、物理磁盘水位、读写队列分布与业务主题容量,自动汇总为结构化 Markdown 体检周报。
🛡️ 四维生产级安全防御体系
大语言模型具有生成幻觉与理解歧义的风险。为确保企业消息队列的绝对安全,本项目构建了四维安全屏障:
- 只读保护守卫 (Read-Only Guard):
设置
ROCKETMQ_READ_ONLY=true时,服务将彻底封锁所有消息发送、主题创建/删除、位点重置与死信重投工具。 - 双层防呆机制 (Dual-Layer Guard):
针对破坏性工具(删除 Topic、重置位点、死信重投),必须同时满足两层校验方可执行:
- 层级一(启动级环境开关):必须显式配置
ROCKETMQ_ENABLE_DESTRUCTIVE_TOOLS=true; - 层级二(调用级显式确认):AI 必须在入参中显式传入
confirm: true,否则被短路拦截。
- 层级一(启动级环境开关):必须显式配置
- 系统主题静默屏蔽 (System Topic Filter):
自动拦截并隐藏以
%SYS%、TBW102、BenchmarkTest、SCHEDULE_TOPIC等开头的内部管理主题,避免模型破坏集群基础服务。 - 消息体防爆截断 (Message Body Guard): 消息内容优先按 UTF-8 解码,失败自动降级为 Base64。对超过 4KB 的消息体自动安全截断并附带元数据提示,彻底杜绝超长报文爆破 LLM 上下文窗口。
💬 典型交互实战(AI 是如何帮我排障的)
接入 mcp-server-rocketmq 后,你可以直接在聊天框用自然语言与 AI 协同完成各种复杂运维场景:
场景 1:秒级定位消费堆积与慢消费实例
👤 用户:“最近订单系统消费好像很慢,帮我查一下集群里有没有积压最严重的问题消费组,并分析慢消费者实例。”
🤖 AI 思考与动作:
- 调用
rocketmq_top_consumer_lag工具,获取当前堆积量 Top 5 的消费组;- 发现
order_payment_consumer_group积压了 128,400 条消息;- 自动调用
rocketmq_consumer_status(group: "order_payment_consumer_group")获取该组的在线客户端列表;- 发现 4 个消费实例中有 1 个实例的处理位点停滞且 IP 不通;
📋 AI 诊断反馈:
“经排查,当前集群积压最严重的是
order_payment_consumer_group(累计积压 12.8 万条)。 该组共有 4 个客户端实例,其中位于192.168.1.152的节点自 20 分钟前无心跳进度,导致分配给该实例的 2 个 Queue 完全阻塞。建议优先重启该实例或触发重平衡释放分区。”
场景 2:根据业务订单号全链路追踪消息
👤 用户:“用户投诉订单号
ORD_20261004_9921没收到发货通知,帮我查一下这笔订单的消息有没有发出来、目前到哪一步了?”🤖 AI 思考与动作:
- 调用
rocketmq_query_message_by_key(topic: "order_events_topic", key: "ORD_20261004_9921");- 获取到 Message ID
0A00010200002A9F000000000012C3D4,消息体经防爆安全解析为 JSON 格式;- 自动调用
rocketmq_query_message_trace(msgId: "0A00010200002A9F000000000012C3D4");📋 AI 诊断反馈:
“已成功定位订单消息!
- Message ID:
0A00010200002A9F000000000012C3D4- 发送时间:
2026-10-04 20:15:32- 轨迹分析: 消息已在
Broker-a (Queue 2)正常持久化,但下游logistics_notice_group在消费过程中抛出了外部短信网关超时异常,消息已被投递到重试队列第 3 次。”
场景 3:死信队列排查与安全重投自愈
👤 用户:“查一下支付消费组最近产生的死信消息,分析一下失败原因;如果没问题的话帮我重新投递回业务主题重试。”
🤖 AI 思考与动作:
- 调用
rocketmq_query_dlq_messages(group: "payment_process_group"),拉取死信队列最近失败消息;- 发现死信主要由于第三方支付回调接口限流导致;
- 向用户汇报原因后,调用受保护的破坏性工具:
rocketmq_resend_dlq_message(group: "payment_process_group", msgId: "0A000...", targetTopic: "payment_order_topic", confirm: true);📋 AI 诊断反馈:
“已检索到该死信消息体,报错原因为下游网关 429 Too Many Requests。目前网关已恢复,在您授权后,我已通过显式确认参数将消息重新发回业务主题
payment_order_topic,已被消费方成功接收处理!”
场景 4:一键生成集群健康巡检周报
👤 用户:“帮我对当前 RocketMQ 集群做一次全面的健康巡检,输出一份 Markdown 周报。”
🤖 AI 思考与动作: 自动触发 MCP 预置专家工作流
cluster_health_check,串联 Broker 磁盘/TPS 检查与核心业务主题读写队列均衡分布分析。
场景 5:跨环境多集群比对与故障复现 (Multi-Cluster Collaboration)
👤 用户:“帮我比对一下
rocketmq-dev和rocketmq-prod上的trade_order_topic队列配置是否一致?另外查一下生产死信,把死信内容作为测试消息发到 dev 集群让我本地调试。”🤖 AI 思考与动作:
- 分别调用
rocketmq-dev:rocketmq_topic_route与rocketmq-prod:rocketmq_topic_route;- 发现生产环境读写队列数均为 16,而开发环境仅为 8;
- 调用生产只读实例
rocketmq-prod:rocketmq_query_dlq_messages(group: "trade_group")提取失败死信 Payload;- 将提取到的 Payload 调用开发实例发送工具
rocketmq-dev:rocketmq_send_message(topic: "trade_order_topic", body: payload),安全复现;📋 AI 诊断反馈:
“配置比对结论:
- 生产环境 (
rocketmq-prod): 读写队列各 16 个,分布于 2 个 Master Broker;- 开发环境 (
rocketmq-dev): 读写队列各 8 个,分布于 1 个 Broker;同时,我已从生产环境以安全只读方式提取了最新死信报文(ID:
0A000...),并成功投递至开发环境rocketmq-dev(新 MsgId:01000...),您可直接在本地开发环境断点调试消费逻辑!”
🚀 快速开始与客户端配置 (Usage & Configuration)
mcp-server-rocketmq 采用单一自适应可执行 Fat Jar 设计,原生支持 Stdio 模式(本地 AI 宿主伴生运行) 与 SSE 模式(远程云原生微服务运行)。
1. 📥 快速获取与安装 (Download & Pull)
mcp-server-rocketmq 支持多种获取与安装姿势,无论你是否具备 Java 环境,都能极速接入:
- 方式一:通过 npm / npx 零门槛即时启动(🔥 首选极速推荐)
零 JRE 依赖,无需安装 Java 或 Docker,Node.js 环境下一行命令即开即用(支持 macOS Apple Silicon、Linux x64、Linux ARM64 及 Windows x64):npx -y @atengk/mcp-server-rocketmq --rocketmq.namesrv-addr="127.0.0.1:9876"💡 国内加速提示:若在国内网络环境下下载 npm 包较慢,可使用 npmmirror 镜像源加速下载:
# Linux / macOS npm_config_registry=https://registry.npmmirror.com npx -y @atengk/mcp-server-rocketmq --rocketmq.namesrv-addr="127.0.0.1:9876" # Windows PowerShell $env:npm_config_registry="https://registry.npmmirror.com"; npx -y @atengk/mcp-server-rocketmq --rocketmq.namesrv-addr="127.0.0.1:9876" - 方式二:直接下载 GitHub Releases 独立原生二进制(离线脱机极速秒开)
访问 GitHub Releases 获取经过 GraalVM Native AOT 编译的单文件原生可执行程序,无需任何外部运行时依赖,启动仅需 50ms、内存占用仅 30MB 左右:mcp-server-rocketmq-1.2.0-linux-x64(Linux x86_64 / glibc)mcp-server-rocketmq-1.2.0-linux-arm64(Linux AArch64 / ARM64 / 鲲鹏 / AWS Graviton)mcp-server-rocketmq-1.2.0-win32-x64.exe(Windows x86_64)mcp-server-rocketmq-1.2.0-darwin-arm64(macOS Apple Silicon M 系列)
- 方式三:下载跨平台通用 Fat Jar(传统 JVM 环境)
从 GitHub Releases 下载mcp-server-rocketmq-1.2.0.jar(附带checksums.txt校验和),直接基于本地 JRE 21+ 运行。 - 方式四:拉取官方多架构 Docker 镜像
docker pull ghcr.io/atengk/mcp-server-rocketmq:latest - 方式五:从源码本地编译构建
git clone https://github.com/atengk/mcp-server-rocketmq.git cd mcp-server-rocketmq mvn clean package -DskipTests
2. ⚙️ 三维基础配置姿势 (Usage Modalities)
mcp-server-rocketmq 具备工业级的配置灵活性,支持以下三种正交使用形态,优先级由高到低依次为:CLI 参数 > 环境变量 > 配置文件。
姿势一:系统环境变量方式 (Environment Variables)
适合容器化部署、Kubernetes ConfigMap/Secret 及各 AI 客户端的 env 上下文注入:
export MCP_ROCKETMQ_NAMESRV_ADDR="10.0.0.1:9876;10.0.0.2:9876"
export MCP_ROCKETMQ_ENDPOINTS="10.0.0.1:8081"
export MCP_ROCKETMQ_ACCESS_KEY="rocketmq_user"
export MCP_ROCKETMQ_SECRET_KEY="rocketmq_pass"
export MCP_ROCKETMQ_READ_ONLY="false"
export MCP_ROCKETMQ_ENABLE_DESTRUCTIVE_TOOLS="false"
export MCP_SERVER_PORT="8080"
java -jar mcp-server-rocketmq-1.0.0.jar
姿势二:命令行启动参数方式 (CLI Arguments)
适合通过 Spring 命名风格动态覆盖个别调试参数:
java -jar mcp-server-rocketmq-1.0.0.jar \
--rocketmq.namesrv-addr=192.168.1.100:9876 \
--rocketmq.endpoints=192.168.1.100:8081 \
--rocketmq.read-only=true \
--server.port=9090
姿势三:Spring 多环境配置方式 (Multi-Environment Profiles)
针对开发、测试与生产等不同网络隔离环境,可一键切换内置的 Profile 模板:
# 激活开发测试环境 (Profile: dev,默认开启破坏性工具与本地连接)
java -jar mcp-server-rocketmq-1.0.0.jar --spring.profiles.active=dev
# 激活生产安全环境 (Profile: prod,强制只读模式,硬锁定破坏性工具)
java -jar mcp-server-rocketmq-1.0.0.jar --spring.profiles.active=prod
3. 💻 本地伴生客户端接入 (Stdio 模式)
在 Stdio 模式下,AI 宿主客户端(如 Claude Desktop、Antigravity、Cursor、Cline、Windsurf 等)会启动服务端进程作为本地子进程,并通过标准输入输出流交换 JSON-RPC 报文。
3.1 使用 npx 运行(🔥 首选极速模式,零 Java 依赖)
无需预先安装 Java 环境,依托 GraalVM Native AOT 原生预编译二进制,Node.js 环境下 npx 自动按当前操作系统架构秒级调度匹配的平台包:
{
"mcpServers": {
"rocketmq": {
"command": "npx",
"args": [
"-y",
"@atengk/mcp-server-rocketmq"
],
"env": {
"MCP_ROCKETMQ_NAMESRV_ADDR": "127.0.0.1:9876",
"MCP_ROCKETMQ_ENDPOINTS": "127.0.0.1:8081",
"MCP_ROCKETMQ_READ_ONLY": "false",
"MCP_ROCKETMQ_ENABLE_DESTRUCTIVE_TOOLS": "false"
}
}
}
}
💡 自动平台路由机制与国内加速:
主包@atengk/mcp-server-rocketmq会自动解析运行平台并调度对应的原生二进制(Windows x64 / Linux x64 / Linux arm64 / macOS arm64),且启动器内部严格遵循 ADR 0003,通过行级智能分流过滤杂质,确保stdout零污染。
若在国内网络环境下拉取包较慢,亦可在配置的env中声明"npm_config_registry": "https://registry.npmmirror.com"加速下载。
3.2 使用各平台单文件原生二进制运行(脱机离线,极速冷启动)
若你的机器处于内网离线环境,从 GitHub Releases 下载单文件原生可执行程序后,可直接作为可执行程序配置运行:
{
"mcpServers": {
"rocketmq": {
"command": "/path/to/mcp-server-rocketmq-1.2.0-linux-x64",
"args": [
"--mcp.transport=stdio"
],
"env": {
"MCP_ROCKETMQ_NAMESRV_ADDR": "127.0.0.1:9876",
"MCP_ROCKETMQ_ENDPOINTS": "127.0.0.1:8081"
}
}
}
}
(Windows 用户将 command 指定为 C:\\path\\to\\mcp-server-rocketmq-1.2.0-win32-x64.exe 即可)
3.3 使用 Java Jar 运行 (本地 JVM 宿主环境)
确保本机已安装 JDK 21,在 AI Agent 通用配置文件中增加:
{
"mcpServers": {
"rocketmq": {
"command": "java",
"args": [
"-jar",
"/path/to/mcp-server-rocketmq-1.2.0.jar",
"--mcp.transport=stdio"
],
"env": {
"MCP_ROCKETMQ_NAMESRV_ADDR": "127.0.0.1:9876",
"MCP_ROCKETMQ_ENDPOINTS": "127.0.0.1:8081",
"MCP_ROCKETMQ_READ_ONLY": "false",
"MCP_ROCKETMQ_ENABLE_DESTRUCTIVE_TOOLS": "false"
}
}
}
}
💡 标准输出纯净化保障: 启动参数包含
--mcp.transport=stdio时,内置环境后置处理器会自动剔除 Web 容器、关闭 Banner 并将全部日志重定向至System.err,保证System.out100% 纯净流通 JSON-RPC,杜绝报文解析崩溃(详见 ADR 0003)。
3.4 使用 Docker 容器作为 Stdio 运行 (免本地 Java 环境)
{
"mcpServers": {
"rocketmq": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "MCP_ROCKETMQ_NAMESRV_ADDR=host.docker.internal:9876",
"-e", "MCP_ROCKETMQ_ENDPOINTS=host.docker.internal:8081",
"-e", "MCP_ROCKETMQ_READ_ONLY=false",
"-e", "MCP_ROCKETMQ_ENABLE_DESTRUCTIVE_TOOLS=false",
"ghcr.io/atengk/mcp-server-rocketmq:latest",
"--mcp.transport=stdio"
]
}
}
}
3.3 主流 AI 客户端配置文件路径速查
各主流 AI 宿主客户端的标准配置路径如下,将上述配置贴入文件对应的 mcpServers 节点即可生效:
| 客户端 | 操作系统 | 默认配置文件路径 |
|---|---|---|
| Claude Desktop | macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
|
| Cursor | 通用平台 | 项目根目录 .cursor/mcp.json 或全局设置 Settings $\rightarrow$ Features $\rightarrow$ MCP |
| Cline (VS Code) | 通用平台 | VS Code 全局扩展目录下的 cline_mcp_settings.json |
| Windsurf | 通用平台 | ~/.codeium/windsurf/mcp_config.json |
| 通用 Agent / Antigravity | 通用平台 | 宿主全局配置目录下的 mcp.json 或对应环境定义 |
4. 🌐 远程微服务与容器化部署 (SSE 模式)
将服务端部署在远程服务器或容器平台中常驻运行,支持多智能体或团队共享同一个 RocketMQ 控制面。
4.1 方式 A:Docker Compose 一键启动 (推荐)
仓库根目录已内置生产就绪的 docker-compose.yml 与 .env.example:
# 1. 复制环境变量模版并按需配置
cp .env.example .env
# 2. 一键后台启动服务
docker compose up -d
# 3. 查验容器运行日志
docker compose logs -f
4.2 方式 B:Docker 原生运行
docker run -d \
--name mcp-server-rocketmq \
-p 8080:8080 \
-e MCP_ROCKETMQ_NAMESRV_ADDR="192.168.1.100:9876" \
-e MCP_ROCKETMQ_ENDPOINTS="192.168.1.100:8081" \
-e MCP_ROCKETMQ_READ_ONLY="false" \
ghcr.io/atengk/mcp-server-rocketmq:latest
4.3 方式 C:可执行 Jar 运行
java -jar mcp-server-rocketmq-1.0.0.jar \
--server.port=8080 \
--rocketmq.namesrv-addr=192.168.1.100:9876 \
--rocketmq.endpoints=192.168.1.100:8081 \
--rocketmq.read-only=false
4.4 AI Agent 客户端接入 (SSE URL)
在支持远程 URL 连接的 AI Agent 客户端中配置:
{
"mcpServers": {
"rocketmq": {
"url": "http://your-server-ip:8080/mcp/sse"
}
}
}
- SSE 建立连接端点:
http://your-server-ip:8080/mcp/sse - 消息发送交互端点:
http://your-server-ip:8080/mcp/message
5. 🌟 企业级多环境与多集群 MCP 协同实践 (Multi-Environment Setup)
在真实企业研发运维中,最推荐的实践是在同一个 AI Agent 客户端中同时并列挂载多个环境的 RocketMQ 服务端连接(如 rocketmq-dev、rocketmq-test、rocketmq-prod),并通过分级安全守卫实施严格的权限管控。
5.1 多环境分级安全推荐矩阵
| 环境标识 (Key) | 连接目标 | ACL 认证 | 只读守卫 (MCP_ROCKETMQ_READ_ONLY) |
破坏性防呆 (MCP_ROCKETMQ_ENABLE_DESTRUCTIVE_TOOLS) |
适用场景与安全设计 |
|---|---|---|---|---|---|
rocketmq-dev |
本地/开发集群 | 可选 | false (允许写) |
true (激活破坏性工具) |
日常功能研发、Topic 动态建改、位点调试自愈 |
rocketmq-test |
集成测试集群 | 基础 ACL | false (允许写) |
false (锁定破坏性工具) |
集成验证、测试消息发送(禁止删除Topic与改位点) |
rocketmq-prod |
生产核心集群 | 企业级 AK/SK | true (强开启只读) |
false (硬锁定破坏性工具) |
线上监控巡检、大盘积压排查、死信原因分析 |
5.2 本地 Stdio 模式多环境配置示例
在 AI 客户端通用配置文件中,并列声明多个服务实例:
{
"mcpServers": {
"rocketmq-dev": {
"command": "java",
"args": [
"-jar", "/path/to/mcp-server-rocketmq-1.0.0.jar",
"--mcp.transport=stdio",
"--spring.ai.mcp.server.name=rocketmq-dev"
],
"env": {
"MCP_ROCKETMQ_NAMESRV_ADDR": "127.0.0.1:9876",
"MCP_ROCKETMQ_ENDPOINTS": "127.0.0.1:8081",
"MCP_ROCKETMQ_READ_ONLY": "false",
"MCP_ROCKETMQ_ENABLE_DESTRUCTIVE_TOOLS": "true"
}
},
"rocketmq-test": {
"command": "java",
"args": [
"-jar", "/path/to/mcp-server-rocketmq-1.0.0.jar",
"--mcp.transport=stdio",
"--spring.ai.mcp.server.name=rocketmq-test"
],
"env": {
"MCP_ROCKETMQ_NAMESRV_ADDR": "192.168.10.20:9876",
"MCP_ROCKETMQ_ENDPOINTS": "192.168.10.20:8081",
"MCP_ROCKETMQ_READ_ONLY": "false",
"MCP_ROCKETMQ_ENABLE_DESTRUCTIVE_TOOLS": "false"
}
},
"rocketmq-prod": {
"command": "java",
"args": [
"-jar", "/path/to/mcp-server-rocketmq-1.0.0.jar",
"--mcp.transport=stdio",
"--spring.ai.mcp.server.name=rocketmq-prod"
],
"env": {
"MCP_ROCKETMQ_NAMESRV_ADDR": "10.0.100.1:9876;10.0.100.2:9876",
"MCP_ROCKETMQ_ENDPOINTS": "10.0.100.1:8081",
"MCP_ROCKETMQ_ACCESS_KEY": "prod_access_key",
"MCP_ROCKETMQ_SECRET_KEY": "prod_secret_key",
"MCP_ROCKETMQ_READ_ONLY": "true",
"MCP_ROCKETMQ_ENABLE_DESTRUCTIVE_TOOLS": "false"
}
}
}
}
5.3 远程 SSE 模式多环境接入示例
若服务端以容器微服务形态运行于各网络集群内部,客户端只需配置各环境对应 URL:
{
"mcpServers": {
"rocketmq-dev": {
"url": "http://rocketmq-mcp-dev.internal:8080/mcp/sse"
},
"rocketmq-test": {
"url": "http://rocketmq-mcp-test.internal:8080/mcp/sse"
},
"rocketmq-prod": {
"url": "https://rocketmq-mcp-prod.internal:8443/mcp/sse"
}
}
}
⚙️ 完整环境变量与参数清单
优先读取标准 MCP_ROCKETMQ_* 前缀环境变量,同时平滑兼容无前缀形式:
| 推荐环境变量 | 命令行参数 | 默认值 | 详细说明 | 示例 |
|---|---|---|---|---|
MCP_ROCKETMQ_NAMESRV_ADDR |
--rocketmq.namesrv-addr |
127.0.0.1:9876 |
RocketMQ NameServer 集群地址(多节点用分号分隔) | 192.168.1.10:9876;192.168.1.11:9876 |
MCP_ROCKETMQ_ENDPOINTS |
--rocketmq.endpoints |
127.0.0.1:8081 |
RocketMQ 5.x gRPC Proxy 服务端点 | 192.168.1.10:8081 |
MCP_ROCKETMQ_ACCESS_KEY |
--rocketmq.access-key |
- | ACL 访问认证密钥 AccessKey(可选,Remoting与gRPC通用) | rocketmq2 |
MCP_ROCKETMQ_SECRET_KEY |
--rocketmq.secret-key |
- | ACL 访问认证密钥 SecretKey(可选,Remoting与gRPC通用) | 12345678 |
MCP_ROCKETMQ_READ_ONLY |
--rocketmq.read-only |
false |
全局只读守卫开关(开启后禁止所有写操作) | true |
MCP_ROCKETMQ_ENABLE_DESTRUCTIVE_TOOLS |
--rocketmq.enable-destructive-tools |
false |
破坏性高危工具激活开关(双层防呆第1层) | true |
MCP_TRANSPORT |
--mcp.transport |
sse |
运行通信传输模式(sse 或 stdio) |
stdio |
MCP_SERVER_PORT / SERVER_PORT |
--server.port |
8080 |
SSE 模式下的 Web 监听端口 | 8088 |
SPRING_PROFILES_ACTIVE |
--spring.profiles.active |
default |
激活的多环境配置(如 dev、prod) |
prod |
❓ 常见问题与排错指南 (FAQ)
Q1: 在 AI Agent 宿主中使用 Stdio 模式报错 JSON-RPC parse error?
- 原因:Spring Boot 启动日志、ASCII Banner 或第三方组件的调试信息混入到了标准输出
System.out中。 - 解决办法:
- 确保启动参数中包含
--mcp.transport=stdio,项目内置的环境处理器会自动关闭 Banner 并将全部 Logback 日志定向至System.err; - 严禁在业务中调用
System.out.println,代码统一使用 SLF4J 记录日志。
- 确保启动参数中包含
Q2: 使用 Docker 运行时,报错无法连接 NameServer (127.0.0.1:9876)?
- 原因:容器内的
127.0.0.1指向容器自身环境,而非宿主机。 - 解决办法:
- 如果 RocketMQ 部署在宿主机,请将环境变量配置为
MCP_ROCKETMQ_NAMESRV_ADDR=host.docker.internal:9876; - 推荐直接使用项目提供的
docker-compose.yml,已默认预设extra_hosts宿主机网关映射。
- 如果 RocketMQ 部署在宿主机,请将环境变量配置为
Q3: 为什么调用 rocketmq_delete_topic 或 rocketmq_reset_consumer_offset 提示权限被拦截拒绝?
- 原因:触发了系统的双层防呆安全机制(详见 ADR 0002)。
- 解决办法:
- 服务端启动环境变量必须显式配置
MCP_ROCKETMQ_ENABLE_DESTRUCTIVE_TOOLS=true; - AI 宿主在调用该工具时,入参中必须显式传递
confirm: true参数。
- 服务端启动环境变量必须显式配置
Q4: 我的集群是 RocketMQ 4.x(没有 gRPC Proxy),能使用本项目吗?
- 解答:完全可以使用绝大部分功能!
- 集群拓扑、Broker 指标、Topic 增删改查、消费组状态审计、实时 Lag 积压排查、位点重置以及死信检索等 17 项运维管理与排障工具均基于 Remoting 协议,原生完美向下兼容 4.x;
- 仅有
rocketmq_send_message测试发送工具依赖 5.x gRPC Proxy。
Q5: 跨网络或容器部署连接 RocketMQ 报错连接超时或网络不通?
- 原因:RocketMQ 采用两阶段路由通信模型。客户端先连接 NameServer (
9876) 获取路由元数据,随后由 NameServer 返回 Broker 节点的注册 IP/端口并直连 Broker;gRPC 则连接 Proxy (8081)。如果位于不同网络、容器或云安全组中,仅放通 NameServer 无法完成后续数据通信。 - 排查与解决办法:
- 放通核心服务端口:
9876: NameServer 服务端口(Remoting 路由寻址,必须通);8081: RocketMQ 5.x Proxy 服务端口(gRPC 消息交互,测试发信需要);10911/10909: Broker 默认 Remoting 监听端口与 VIP 端口(必须与客户端互通);
- Broker 广播地址 (brokerIP1):
- 若 Broker 运行在 Docker 容器或云私有网络中,Broker 会默认将容器内网 IP 注册给 NameServer,导致外部客户端拿到的地址无法访问。请在 Broker 配置文件(
broker.conf)中显式配置brokerIP1=<宿主机公网或可达内网IP>。
- 若 Broker 运行在 Docker 容器或云私有网络中,Broker 会默认将容器内网 IP 注册给 NameServer,导致外部客户端拿到的地址无法访问。请在 Broker 配置文件(
- 放通核心服务端口:
📂 工程目录结构与架构决策 (ADRs)
.
├── .github/
│ ├── workflows/
│ │ ├── ci.yml # 自动化质量门禁流水线 (JDK 21 + mvn verify)
│ │ └── release.yml # 双轨精准自动化发版流水线 (Fat Jar / GHCR)
│ ├── ISSUE_TEMPLATE/ # 结构化 Issue 反馈模版
│ └── PULL_REQUEST_TEMPLATE.md # PR 提交审核模版
├── docs/
│ ├── adr/ # 核心架构决策记录 (ADR 0001 ~ 0010)
│ │ ├── 0001-hybrid-client-architecture.md
│ │ ├── 0002-dual-layer-safety-guard.md
│ │ ├── 0003-single-jar-dual-mode-transport.md
│ │ ├── 0004-mcp-full-specification-and-body-truncation.md
│ │ ├── 0005-dependency-matrix-and-runtime-baseline.md
│ │ ├── 0006-containerization-and-release-pipeline.md
│ │ ├── 0007-package-namespace-and-maven-coordinates.md
│ │ ├── 0008-client-lifecycle-hardening-and-resilience.md
│ │ ├── 0009-graalvm-native-and-npm-distribution.md
│ │ └── 0010-four-platform-native-matrix-and-asset-naming.md
│ └── agents/ # 智能体工程协作规范 (Issue/Triage/Domain)
├── Dockerfile # Temurin JRE 21 Alpine 多阶段构建镜像
├── docker-compose.yml # 容器编排一键启动模版
├── .env.example # 环境变量配置示例
├── AGENTS.md # 智能体行为与技能准则
├── CONTEXT.md # 领域核心术语表与统一语言
├── CONTRIBUTING.md # 贡献指南与 Commit 规范
├── pom.xml # Maven 核心配置 (io.github.atengk)
└── README.md # 项目主文档
🛠️ 本地构建
# 确保本地已安装 JDK 21 与 Maven 3.9+
mvn clean package -DskipTests
🤝 参与贡献
热烈欢迎提交 Issue、发起 Pull Request 或对功能规划提出建议!在提交代码前,请仔细查阅我们的 贡献指南 (CONTRIBUTING.md)。
📄 开源许可证
本项目基于 Apache License 2.0 协议开源。
Установить Rocketmq Linux Arm64 в Claude Desktop, Claude Code, Cursor
unyly install rocketmq-linux-arm64Ставит в Claude Desktop, Claude Code, Cursor и VS Code — сам разбирается с npx, uvx и сборкой из исходников.
Впервые? Поставь CLI: curl -fsSL https://unyly.org/install | sh
Или настроить вручную
Выполни в терминале:
claude mcp add rocketmq-linux-arm64 -- npx -y @atengk/mcp-server-rocketmq-linux-arm64Пошаговые гайды: как установить Rocketmq Linux Arm64
FAQ
Rocketmq Linux Arm64 MCP бесплатный?
Да, Rocketmq Linux Arm64 MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Rocketmq Linux Arm64?
Нет, Rocketmq Linux Arm64 работает без API-ключей и переменных окружения.
Rocketmq Linux Arm64 — hosted или self-hosted?
Self-hosted: сервер запускается локально на твоей машине командой из раздела установки.
Как установить Rocketmq Linux Arm64 в Claude Desktop, Claude Code или Cursor?
Открой Rocketmq Linux Arm64 на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Изменения
Версии и запрашиваемые доступы со временем.
- Новая версия опубликована
- Новая версия опубликована
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Unyly Deploy
Deploy sites and MCP servers to Unyly straight from your AI agent
автор: UnylyAmap Maps Mcp Server
MCP server for using the AMap Maps API
автор: duxiaohuiPayMCP
Lightweight payments layer for MCP servers: turn tools into paid endpoints with a two-line decorator. [PyPI](https://pypi.org/project/paymcp/) · [npm](https://w
автор: blustAIServer For Power BI
Enables exploring Microsoft Fabric / Power BI workspaces and semantic models, and executing ad-hoc DAX queries.
автор: Mitsubishi-FusoGpt Image 2 Mcp
RunAPI GPT Image 2 MCP server for image generation: create tasks, poll results, and check pricing across 1 model from Claude Code, Codex, Cursor, and VS Code.
автор: runapi-aiTemplate MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectSupabase
Database, auth and storage
автор: SupabaseCompare Rocketmq Linux Arm64 with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
