Skip to main content
Glama
atengk

mcp-server-rabbitmq

by atengk

atengk-mcp-server-rabbitmq

专为大语言模型(LLM)与各类 AI Agent 打造的高性能、安全可控的生产级 RabbitMQ 模型上下文协议(Model Context Protocol, MCP)服务端。已正式发布至 PyPI,支持开箱即用。

为智能体提供直观可靠的 AMQP 拓扑声明(Exchange / Queue / Binding)、消息可靠发布、零损采样 (Peek)、受控消费拉取、外部微服务 TCP 连接诊断、活跃信道未确认消息积压排查及集群大盘监控全套能力。

graph TD
    subgraph Clients ["AI Agent 宿主环境 (Generic Clients)"]
        agent["Claude Desktop / Cursor / Cline / Windsurf / Chatbox"]
    end

    subgraph Server ["atengk-mcp-server-rabbitmq (FastMCP)"]
        gateway{"双模传输网关<br/>(Dual-Transport)"}
        stdio["Stdio 传输通道<br/>(管道直挂)"]
        sse["HTTP SSE 传输通道<br/>(常驻网络端口 :8000)"]
        
        gate{"安全只读门禁<br/>(--allow-write)"}
        mask["全域凭据脱敏引擎<br/>(Credential Masking)"]

        subgraph Core ["双核通信引擎"]
            amqp["异步 AMQP 驱动 (aio-pika)<br/>• 消息发布 / 采样 (Peek) / 消费<br/>• 交换机 / 队列 / 绑定拓扑声明"]
            mgmt["异步 Management 客户端 (httpx)<br/>• 集群概览与指标大盘<br/>• 客户端物理连接与活跃信道排障"]
        end
    end

    subgraph Cluster ["RabbitMQ 服务端"]
        amqp_port["AMQP 端口 :5672 (数据平面)"]
        mgmt_port["Management API 端口 :15672 (控制平面)"]
    end

    agent -->|JSON-RPC 协议| gateway
    gateway --> stdio
    gateway --> sse
    stdio --> gate
    sse --> gate
    gate --> amqp
    gate --> mgmt
    amqp --> amqp_port
    mgmt --> mgmt_port
    amqp -.-> mask
    mgmt -.-> mask
    mask -.-> agent

⚡ 快速开始 (Quick Start)

方式 1:使用 uvx 免安装直接运行(强烈推荐)

无需手动创建 Python 虚拟环境,借助现代包管理工具 uv 即可直接拉取并运行最新版:

# 1. 只读探查模式(默认连接本地 localhost:5672)
uvx atengk-mcp-server-rabbitmq

# 2. 通过分立参数连接远程 Broker 与 Management API 并解除写保护
uvx atengk-mcp-server-rabbitmq \
  --broker-host "rabbitmq.prod.internal" \
  --broker-port 5672 \
  -u "admin" -P "secret_pass" \
  --vhost "prod_vhost" \
  --management-port 15672 \
  --allow-write

# 3. 通过完整 URL 连接
uvx atengk-mcp-server-rabbitmq \
  --url "amqp://guest:guest@localhost:5672/" \
  --management-url "http://guest:guest@localhost:15672" \
  --allow-write

# 4. 启动常驻 HTTP SSE 服务(网关监听 0.0.0.0:8000)
uvx atengk-mcp-server-rabbitmq \
  --broker-host "rabbitmq.prod.internal" \
  -u "admin" -P "secret_pass" \
  --transport sse --host 0.0.0.0 --port 8000

方式 2:使用 pip 安装运行

pip install atengk-mcp-server-rabbitmq

# 启动服务(支持完整 URL 或分立参数)
atengk-mcp-server-rabbitmq --broker-host "127.0.0.1" -u "guest" -P "guest" --allow-write

方式 3:Docker 容器化运行

# 启动常驻 HTTP SSE 服务(默认暴露 8000 端口)
docker-compose up -d

Related MCP server: rabbitmq-mcp

🤖 通用 AI 客户端配置 (Generic MCP Client Configuration)

本服务端完全遵循开放的 Model Context Protocol (MCP) 规范,通用兼容所有支持标准 MCP 协议的宿主环境与 AI Agent 客户端(如 Claude Desktop、Cursor、Cline、Windsurf、Continue、Chatbox 等)。

你可以在任意 MCP 客户端的配置文件中,根据环境管理习惯自由选择 分立参数传参、完整连接串 或 环境变量注入:

范式 A:通过命令行分立参数传参 (Arguments - 分立配置推荐)

在客户端配置中通过 args 数组传入独立连接参数,方便审阅与运维:

{
  "mcpServers": {
    "rabbitmq": {
      "command": "uvx",
      "args": [
        "atengk-mcp-server-rabbitmq",
        "--broker-host",
        "rabbitmq.internal",
        "--broker-port",
        "5672",
        "-u",
        "app_admin",
        "-P",
        "secure_password",
        "--vhost",
        "/",
        "--management-port",
        "15672",
        "--allow-write"
      ]
    }
  }
}

💡 若习惯传入单一完整协议串,亦可将连接参数替换为 ["--url", "amqp://user:pass@host:5672/", "--management-url", "http://user:pass@host:15672"]。

范式 B:通过环境变量注入 (Environment Variables - 运维生产推荐)

在 Docker Compose、Kubernetes Secret 或客户端 env 节点中以环境变量注入凭据,实现配置与命令完全解耦:

{
  "mcpServers": {
    "rabbitmq": {
      "command": "uvx",
      "args": [
        "atengk-mcp-server-rabbitmq"
      ],
      "env": {
        "MCP_RABBITMQ_HOST": "rabbitmq.internal",
        "MCP_RABBITMQ_PORT": "5672",
        "MCP_RABBITMQ_USERNAME": "app_admin",
        "MCP_RABBITMQ_PASSWORD": "secure_password",
        "MCP_RABBITMQ_VHOST": "/",
        "MCP_RABBITMQ_MANAGEMENT_PORT": "15672",
        "MCP_RABBITMQ_ALLOW_WRITE": "true"
      }
    }
  }
}

💡 服务端同样支持标准单一 URL 环境变量:MCP_RABBITMQ_URL 与 MCP_RABBITMQ_MANAGEMENT_URL。

范式 C:连接远程常驻 HTTP SSE 服务端 (Remote SSE)

若 RabbitMQ MCP 服务端已在远程服务器或 Docker 容器中常驻启动(启用 SSE 传输模式):

{
  "mcpServers": {
    "rabbitmq": {
      "url": "http://127.0.0.1:8000/sse"
    }
  }
}

🛠️ 全量 MCP 工具矩阵 (20 Tools)

服务端完整装配并挂载以下 20 个 MCP 工具,模型可根据需要自主调用:

1. Broker 基础探活与配置管理 (4)

工具名称

功能描述

门禁约束

rabbitmq_list_connections

列出当前服务配置的所有 RabbitMQ 实例连接清单与脱敏地址

只读

rabbitmq_list_configured_brokers

rabbitmq_list_connections 的语义强化别名,用于清晰区分配置实例与客户端物理链路

只读

rabbitmq_ping

测量与 RabbitMQ Broker 的 AMQP 链路往返延迟(ms)

只读

rabbitmq_overview

获取集群节点状态、队列统计与全局消息吞吐大盘(无 HTTP API 时优雅降级)

只读

2. 交换机、队列与绑定拓扑管理 (11)

工具名称

功能描述

门禁约束

rabbitmq_list_exchanges

查询交换机列表、类型及持久化配置属性

只读

rabbitmq_declare_exchange

受控声明新的交换机,支持 direct / fanout / topic / headers 类型

需 --allow-write

rabbitmq_delete_exchange

删除指定交换机

需 --allow-write 且 confirm=True

rabbitmq_list_queues

查询各队列就绪数、未确认数与消费者数

只读

rabbitmq_get_queue

获取单个队列深度指标(死信交换机、TTL、最大积压限制等)

只读

rabbitmq_declare_queue

声明队列,支持死信路由 (dlx) 与最大积压策略 (x-max-length)

需 --allow-write

rabbitmq_purge_queue

清空指定队列中积压的消息

需 --allow-write 且 confirm=True

rabbitmq_delete_queue

删除指定队列

需 --allow-write 且 confirm=True

rabbitmq_list_bindings

查询交换机与队列之间的 Routing Key 绑定关系规则

只读

rabbitmq_bind_queue

将队列绑定到目标交换机

需 --allow-write

rabbitmq_unbind_queue

解除队列与交换机之间的绑定关系

需 --allow-write

3. 消息发布、零损采样与受控拉取 (3)

工具名称

功能描述

门禁约束

rabbitmq_publish_message

向指定 Exchange/Routing Key 发布消息,支持字典自动序列化与自定义属性

需 --allow-write

rabbitmq_peek_messages

对队列头部实施无损诊断采样,自动批量 Requeue 归还队首,消息零丢失不出队

只读

rabbitmq_get_messages

受控拉取消费消息,默认 ack=False 仅拉取,传 ack=True 物理确认出队

ack=True 需 --allow-write

4. 客户端连接与活跃信道排障诊断 (2)

工具名称

功能描述

门禁约束

rabbitmq_list_client_connections

排查外部微服务客户端连入 RabbitMQ 的物理 TCP 链路、信道数与收发吞吐速率

只读

rabbitmq_list_channels

诊断活跃信道未确认消息积压 (unack)、QoS Prefetch 限额与消费速率

只读


⚙️ 命令行参数与环境变量全景速查表

1. RabbitMQ 目标连接与安全

CLI 参数

对应环境变量

默认值

参数说明

--broker-host, --rmq-host

MCP_RABBITMQ_HOST

localhost

RabbitMQ Broker 主机名或 IP 地址

--broker-port, --rmq-port

MCP_RABBITMQ_PORT

5672

RabbitMQ Broker AMQP 端口(开启 SSL 时默认 5671)

-u, --username, --user

MCP_RABBITMQ_USERNAME / MCP_RABBITMQ_USER

guest

RabbitMQ 连接认证用户名

-P, --password

MCP_RABBITMQ_PASSWORD

guest

RabbitMQ 连接认证密码

--vhost

MCP_RABBITMQ_VHOST

/

目标虚拟主机名称

--ssl / --no-ssl

MCP_RABBITMQ_SSL

False

是否开启 AMQP SSL/TLS 加密通信 (amqps://)

--url

MCP_RABBITMQ_URL

None (兜底本地默认)

完整 AMQP 0-9-1 连接协议串(可被分立参数精准覆盖)

--management-host

MCP_RABBITMQ_MANAGEMENT_HOST

继承 Broker 主机

Management HTTP API 服务主机名

--management-port

MCP_RABBITMQ_MANAGEMENT_PORT

15672

Management HTTP API 服务端口号

--management-ssl / --no-management-ssl

MCP_RABBITMQ_MANAGEMENT_SSL

False

是否开启 Management HTTPS 通信协议

--management-url

MCP_RABBITMQ_MANAGEMENT_URL

None

完整 Management HTTP API 根基地址

--allow-write

MCP_RABBITMQ_ALLOW_WRITE

False

开启写保护门禁放行标志(允许声明、清空、发布消息)

-c, --config

MCP_RABBITMQ_CONFIG_PATH

connections.yaml

多环境连接配置文件路径

2. 双模通信网关自身配置

CLI 参数

对应环境变量

默认值

参数说明

-t, --transport

MCP_RABBITMQ_TRANSPORT

stdio

MCP 传输层协议:stdio(标准管道)或 sse(常驻 HTTP)

--host

MCP_RABBITMQ_SERVER_HOST

0.0.0.0

常驻 HTTP SSE 网关自身绑定的监听网络地址

-p, --port

MCP_RABBITMQ_SERVER_PORT

8000

常驻 HTTP SSE 网关自身绑定的监听端口

-v, --verbose

MCP_RABBITMQ_LOG_LEVEL

False (INFO)

启用详细 DEBUG 日志输出

--version

-

-

显示当前服务版本号并退出

-h, --help

-

-

显示帮助信息与参数用法

📌 参数生效优先级与深度融合准则:

  1. 优先级:CLI 显式参数 > 系统环境变量 > connections.yaml 配置文件;

  2. 深度融合:分立参数能够对基础 URL 进行字段级覆盖。例如同时传入 --url "amqp://app:old@broker:5672/v1" 与 -P "new_secret" 时,最终生效密码自动更新为 new_secret,其余主机与端口等元数据保持不变。


📁 多环境实例连接配置 (connections.yaml)

当需要同时连接多套 RabbitMQ 集群(如开发、测试、生产环境)时,可使用 YAML 配置文件:

  1. 复制参考模板 connections.example.yaml:

    cp connections.example.yaml connections.yaml
  2. 启动时通过 -c 参数指定配置文件:

    atengk-mcp-server-rabbitmq --config connections.yaml

🛡️ 生产级安全防护体系

  • 强只读写保护门禁 (ADR-0002):未显式开启 --allow-write 时,任何破坏性变更(声明拓扑、清空队列、物理出队 ACK、发布消息)一律被即时阻断并返回结构化错误;

  • 高危指令二次确认机制:清空与删除操作要求必须传入 confirm=True,未传时仅返回受影响资源预估报告,绝不发生物理执行;

  • 零损采样 (Zero-Loss Peek):队列采样读取后在退出阶段统一延迟批量 reject(requeue=True),保证队列消息数量与顺序完全零破坏;

  • 全域凭据脱敏算法:任何连接串、字典属性或错误堆栈中的密码与认证 Token 统一替换为 ***,彻底阻断大模型会话凭证泄露。


❓ 常见问题 (FAQ)

Q1: 为什么同时需要 Broker 连接与 Management API 连接?两者都必须配置吗?

答:两者采用完全不同的协议,职责清晰解耦,且 Management API 是可选的:

  • Broker 连接 (AMQP 5672):负责数据平面 (Data Plane) 操作(消息发布、无损采样、队列声明与绑定)。AMQP 是纯二进制高性能流协议,规范中没有定义全局宏观监控与统计接口;

  • Management API 连接 (HTTP 15672):负责管控平面 (Control Plane) 操作(集群概览、微服务物理连接监控、信道堆积诊断),由 RabbitMQ Management 插件提供;

  • 非强制与优雅降级:若未配置 Management API,全套 AMQP 消息与拓扑功能完全不受影响;调用排障诊断工具时会自动返回清晰的降级提示,绝不异常崩溃。此外,使用分立参数 --management-port 15672 时,主机与认证信息会自动继承 Broker 配置。

Q2: 在只读模式下能否安全排查生产队列积压?采样消息会被误删吗?

答:绝对安全,消息零丢失。

  • rabbitmq_peek_messages(采样)采用零损窥探机制:拉取消息后在退出阶段统一延迟批量执行 reject(requeue=True),队列消息数量与顺序完全不受影响;

  • rabbitmq_get_messages 默认 ack=False,仅供检视;只有传 ack=True 时才会物理出队,且在只读模式下会被写保护门禁直接拦截。

Q3: 生产容器化或 Kubernetes 中如何优雅管理凭据?

答:推荐使用环境变量分立注入范式。 你可以将数据库或 K8s Secret 中的独立字段分别映射为 MCP_RABBITMQ_HOST、MCP_RABBITMQ_PORT、MCP_RABBITMQ_USERNAME、MCP_RABBITMQ_PASSWORD、MCP_RABBITMQ_MANAGEMENT_PORT 等,无需繁琐拼装连接字符串,且避免特殊字符转义破坏。


🤝 参与贡献

欢迎任何形式的贡献、Issue 反馈与功能提案!请在发起 PR 前阅读我们的 贡献指南 (CONTRIBUTING.md)。


📄 开源许可证

本项目基于 Apache License 2.0 协议开源。

Available Tools

20 tools
rabbitmq_bind_queueA

将队列绑定至指定交换机并配置路由键 (Routing Key).

受全局写保护门禁 (--allow-write) 约束。

@param queue 目标队列名称 @param exchange 目标交换机名称 @param routing_key 路由键,默认为空字符串 @param arguments 可选绑定参数 @param connection 目标连接别名,默认为 'default' @return 绑定结果报告

ParametersJSON Schema
NameRequiredDescriptionDefault
queueYes
exchangeYes
argumentsNo
connectionNodefault
routing_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden, and it does disclose one meaningful behavioral trait: the operation is gated by the global write-protection flag (--allow-write). It does not state idempotency (what happens if the binding already exists), required permissions, or whether the operation is reversible — significant gaps for an unannotated mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded and the @param list is efficiently formatted, with no padding. The param block is justified given the 0% schema coverage, though the header ordering of the write-gate note before the params is slightly awkward.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description needn't detail return values and only points at the binding report, which is fine. Combined with full parameter documentation and the disclosed write gate, it covers what an agent needs for this mutation tool, though it could say more about failure/idempotency behavior given the absence of annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it documents all five parameters with meaning and defaults (routing_key defaults to empty, connection defaults to 'default', arguments is optional). The only shortfall is that 'arguments' is left as a vague 'optional binding arguments' with no hint about its expected shape.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: binding a queue to a named exchange with a routing key. The verb 'bind' clearly separates it from siblings like rabbitmq_unbind_queue and rabbitmq_list_bindings. It does not, however, explicitly name those alternatives, so it stops short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the clear 'bind' verb and the mention of the global write gate, which tells the agent this is a write operation. But there is no explicit when-to-use/when-not guidance and no reference to unbind_queue or list_bindings as alternative choices.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_declare_exchangeA

在 Broker 中受控声明交换机.

受全局写保护门禁 (--allow-write) 约束。

@param name 交换机名称 @param type 交换机类型(direct, fanout, topic, headers),默认为 'direct' @param durable 是否持久化,默认为 True @param auto_delete 是否自动删除,默认为 False @param internal 是否为内部交换机,默认为 False @param arguments 可选扩展参数 @param connection 目标连接别名,默认为 'default' @return 声明成功的交换机元数据

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
typeNodirect
durableNo
internalNo
argumentsNo
connectionNodefault
auto_deleteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It usefully discloses the write-gate constraint and the default for each option, but omits key mutation semantics: whether re-declaring an existing exchange is idempotent, what happens on a conflicting declaration, and whether failures raise errors. Return value is covered by the @return note and an output schema exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose and the write-gate constraint are front-loaded in the first two lines, followed by a compact @param list and a one-line @return. Standard code-doc structure, no filler sentences, though the @-tag formatting is slightly verbose for an agent-facing description.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter write tool with no annotations, the description covers the operation, the gating precondition, all option defaults, and the return type; the output schema handles return structure. The only substantive omission is idempotency/error behavior on redeclaration, which keeps it below a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it largely does: it documents all seven parameters, gives the allowed exchange type values (direct, fanout, topic, headers), and states defaults for type, durable, auto_delete, internal, and connection. It adds little detail on the 'arguments' extension map, which is the one remaining gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('受控声明交换机' / declare exchange) plus scope ('在 Broker 中受控'), which is clear and distinct from siblings like rabbitmq_delete_exchange or rabbitmq_declare_queue. It stops short of naming which sibling to use instead, but the verb+resource pairing is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The line about being bound by the global write-protection gate (--allow-write) is a real precondition an agent must satisfy. However, there is no statement of when to declare vs. reuse, no alternatives named, and no guidance on what to do if the exchange already exists.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_declare_queueA

在 Broker 中声明队列,支持死信路由 (x-dead-letter-exchange) 与 TTL 等高级参数.

受全局写保护门禁 (--allow-write) 约束。

@param name 队列名称 @param durable 是否持久化,默认为 True @param exclusive 是否为排他队列,默认为 False @param auto_delete 是否自动删除,默认为 False @param arguments 可选扩展参数(如 x-dead-letter-exchange, x-message-ttl) @param connection 目标连接别名,默认为 'default' @return 声明成功的队列元数据

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
durableNo
argumentsNo
exclusiveNo
connectionNodefault
auto_deleteNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It usefully discloses the --allow-write write gate and names the return value, but omits other mutation-critical behavior: whether declaring an existing queue is idempotent, what happens on conflict, and required permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded, followed by the write-gate constraint and then a structured parameter list. The @param enumeration is somewhat verbose, but for a six-parameter tool with no schema descriptions it earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained. Combined with the write-gate disclosure and full parameter documentation, the definition is nearly complete for a mutation tool; the remaining gap is conflict/idempotency behavior on redeclaration.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it largely does: all six parameters are documented via @param tags with defaults and concrete examples for arguments (x-dead-letter-exchange, x-message-ttl). This is strong compensation, though it does not explain value constraints or formats beyond defaults.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (declare/声明) and resource (queue/队列), and highlights advanced capabilities like dead-letter routing and TTL. It is clearly distinguishable from siblings such as rabbitmq_delete_queue and rabbitmq_declare_exchange, though it never names them explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes the operation is gated by the global write-protection flag (--allow-write), which is a useful precondition. However, it gives no explicit when-to-use vs when-not guidance or contrast with alternatives like rabbitmq_declare_exchange or rabbitmq_bind_queue; usage is only implied by the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_delete_exchangeA

受控删除指定的交换机.

强制要求二次确认 (confirm: bool = False),未确认时仅返回受影响预估报告 (ADR-0002)。

@param name 待删除的交换机名称 @param confirm 二次确认标识,默认为 False @param if_unused 是否仅在无绑定且未被使用时才删除,默认为 False @param connection 目标连接别名,默认为 'default' @return 删除结果或二次确认预估报告

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
confirmNo
if_unusedNo
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral burden and does disclose a key safety mechanism: deletion requires secondary confirmation and otherwise yields a dry-run impact estimate. It still omits irreversibility, permission requirements, and what happens to bindings/messages, so it stops short of full disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Content is front-loaded with the critical confirmation constraint before the parameter block, and the @param/@return structure makes it scannable. The @return line is marginally redundant given the output schema exists, but overall it is tight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given an output schema exists, return values need less prose, and the description still covers all four parameters plus the safety gate. It is complete enough to call correctly, with only permission/irreversibility context missing for a destructive operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the @param documentation does the compensating work: confirm and if_unused are given real semantics and defaults, and connection explains the 'default' alias choice. The name parameter is only restated minimally, so it is thorough but not exhaustive.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (delete) and resource (exchange), with the qualifying scope '受控' (controlled) that signals the confirmation gate. It is clearly distinguishable from siblings like rabbitmq_declare_exchange and rabbitmq_list_exchanges.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two-phase confirm workflow (unconfirmed calls only return an impact report per ADR-0002), which is implicit usage guidance. However, it never names an alternative tool or states when-not-to-use versus peers like rabbitmq_purge_queue or rabbitmq_delete_queue, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_delete_queueA

受控删除指定队列.

强制要求二次确认 (confirm: bool = False),未确认时仅返回受影响预估报告 (ADR-0002)。

@param name 待删除的队列名称 @param confirm 二次确认标识,默认为 False @param if_unused 是否仅在无消费者时删除,默认为 False @param if_empty 是否仅在队列为空时删除,默认为 False @param connection 目标连接别名,默认为 'default' @return 删除结果或二次确认预估报告

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
confirmNo
if_emptyNo
if_unusedNo
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden and does well: it discloses the mandatory two-phase confirmation, that confirm defaults to False, that unconfirmed calls return only an impact-estimate report, and cites ADR-0002. It omits permissions required and irreversibility of the delete, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the core behavior and the confirmation constraint, then uses compact @param/@return blocks. No sentence is wasted and the structured format is easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a destructive mutation tool with no annotations and 0% schema description coverage, the description covers the confirmation flow, defaults, and all params, and an output schema exists so return formatting need not be spelled out. It could still mention required permissions or irreversibility, but it is substantially complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it documents all five parameters (name, confirm, if_unused, if_empty, connection) via @param tags. The explanations are terse but sufficient to understand each parameter's effect beyond the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('受控删除指定队列' – controlled deletion of the specified queue), which clearly distinguishes it from siblings like rabbitmq_purge_queue or rabbitmq_delete_exchange. It does not explicitly name an alternative, so it falls just short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use it via the mandatory confirmation workflow, but it never contrasts this tool with the alternative rabbitmq_purge_queue (which empties a queue without deleting it). Usage is implied rather than explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_get_messagesA

受控拉取队列消息,默认 ack=False 仅采样不删除,传 ack=True 物理确认出队.

当传入 ack=True 时受全局写保护门禁 (--allow-write) 约束,防范在途数据误删。

@param queue 目标队列名称 @param count 拉取条数上限(1-50,默认 10) @param ack 是否物理确认并从队列移除,默认为 False(仅拉取) @param connection 目标连接别名,默认为 'default' @return 拉取消息清单报告

ParametersJSON Schema
NameRequiredDescriptionDefault
ackNo
countNo
queueYes
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does well: it discloses that the default is non-destructive sampling, that ack=True physically removes messages, and that this destructive path is gated by the --allow-write write-protection to prevent accidental in-flight data loss. It omits any note on permission/connection requirements or what happens on missing queues, keeping it short of a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the most important behavioral fact (default non-destructive sampling) before the parameter list, then uses a conventional @param block. Efficient and well-ordered, with only mild redundancy in restating schema defaults.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, all four parameters are documented, and the destructive-mode risk is disclosed. The one real gap is the absence of any routing guidance relative to 'rabbitmq_peek_messages', which is the most likely confusion point for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it documents all four parameters (queue, count, ack, connection). Notably it adds the '1-50' range for count that the schema lacks (schema has only a default), though the default values it restates are already visible in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('controlled pull of queue messages') and clearly contrasts its two modes (ack=False sampling vs ack=True physical dequeue). It does not, however, differentiate itself from the very similar sibling 'rabbitmq_peek_messages', which an agent could easily confuse it with.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when each mode applies (sampling by default; ack=True only when you intend to remove messages) and flags the --allow-write gate for the destructive path. But it never names the alternative tool ('rabbitmq_peek_messages') or states when to prefer one over the other, leaving the key sibling choice to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_get_queueA

获取指定队列的深度元数据(包括死信交换机 dlx、TTL 策略与消费者明细).

@param queue 目标队列名称 @param connection 目标连接别名,默认为 'default' @param vhost 虚拟主机,默认为 '/' @return 单个队列的深度指标报告

ParametersJSON Schema
NameRequiredDescriptionDefault
queueYes
vhostNo/
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses that the return contains deep metadata including dlx, TTL, and consumer details, but says nothing about read-only safety, required permissions, or behavior when the queue does not exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is compact and front-loaded: the purpose sentence comes first, followed by the parameter annotations. The @return line is slightly redundant given an output schema exists, but overall it is efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple single-resource read with an existing output schema, the definition covers purpose and all parameters. The only real gap is the absence of any safety/error context, which is minor for a clearly read-only lookup.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it documents all three parameters (@param queue, connection default 'default', vhost default '/'), giving each a meaningful role. This meaningfully fills the gap left by the undocumented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (获取/get) and resource (指定队列/specified queue), and adds concrete scope by naming the metadata it returns (dlx, TTL policy, consumer details). This clearly distinguishes it from the list-oriented sibling rabbitmq_list_queues, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the emphasis on '指定队列' (a specific queue) suggests it is for inspecting a single known queue rather than enumerating. There is no explicit when-to-use/when-not or pointer to rabbitmq_list_queues vs rabbitmq_get_messages/peek_messages, leaving the agent to infer the routing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_list_bindingsB

查询交换机与队列之间的绑定映射规则.

@param connection 目标连接别名,默认为 'default' @param vhost 可选的虚拟主机过滤 @param queue 可选的指定队列过滤 @param exchange 可选的指定交换机过滤 @return 绑定关系列表报告或降级提示

ParametersJSON Schema
NameRequiredDescriptionDefault
queueNo
vhostNo
exchangeNo
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it is thin: it never states that this is a safe read-only operation, whether it requires broker permissions or auth on the named connection, or how the '降级提示' (degradation hint) fallback triggers. The @return line is the only behavioral signal, and it is vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first line and the @param/@return block is scannable with zero filler. The @return sentence is mildly redundant given an output schema exists, but the overall structure is efficient and well organized.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with an output schema, the definition covers the parameters adequately, and the output schema handles return values. It is still incomplete on the behavioral side: no annotations, no permission/auth context, no sibling differentiation, and no explanation of the degradation fallback it advertises.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is the only documentation source, and it does document all four parameters – connection (alias, default 'default'), and vhost/queue/exchange as optional filters. That adds real filtering semantics beyond the bare schema titles, though it stops short of giving filter syntax or precedence when multiple filters are combined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (查询/query) and resource (交换机与队列之间的绑定映射规则 – exchange-to-queue binding mapping rules), which is concrete and distinguishable from the plain list_exchanges/list_queues siblings. It does not, however, explicitly distinguish itself from rabbitmq_bind_queue or rabbitmq_unbind_queue, which operate on the same resource and could be confused with it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use statement and no reference to any sibling. The @param notes imply that vhost/queue/exchange are filters, but this is parameter semantics, not routing guidance – nothing tells the agent to call this rather than rabbitmq_bind_queue or rabbitmq_list_exchanges.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_list_channelsA

查询活跃信道指标、未确认消息堆积、Prefetch 与消费活跃度.

用于精准排查客户端信道未确认消息积压、消费阻塞与信道异常。 未配置 Management API 时依据 ADR-0001 优雅降级。

@param connection 目标 Broker 连接配置别名,默认为 'default' @param vhost 可选的虚拟主机名称过滤 @param connection_name 可选的客户端连接标识过滤 @return 结构化的信道诊断清单

ParametersJSON Schema
NameRequiredDescriptionDefault
vhostNo
connectionNodefault
connection_nameNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, so the description carries the full burden. It usefully discloses a behavioral trait — graceful degradation when the Management API is unconfigured (ADR-0001) — which the schema cannot convey. However, it omits auth/permission requirements, pagination, and any rate-limit behavior, leaving real gaps for a read tool with zero annotation coverage.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well front-loaded: purpose, then diagnostic use, then degradation note, then @param/@return tags. The structure is clean and each block earns its place, though the @param tags restate schema-level facts without much added depth.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return detail needn't be explained, and the description focuses correctly on purpose, use case, degradation behavior, and parameters. It is nearly complete for a read-only channel listing tool; only auth and filtering-interaction details are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: connection (alias, defaults to 'default'), vhost (optional filter), and connection_name (optional filter) are all documented with meaning. It does not clarify format/syntax of the alias or how the filters combine, keeping it from a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (查询活跃信道指标 – query active channel metrics) and enumerates the concrete data surfaced: unacked message backlog, prefetch, and consumer activity. This clearly separates it from siblings like list_connections/list_queues via the 'channel' resource, but it never names the alternatives, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly frames the use case: 用于精准排查客户端信道未确认消息积压、消费阻塞与信道异常 (for diagnosing unacked backlogs, consumption blocking, channel anomalies). That is clear when-to-use context, but there are no stated when-not conditions or comparisons to sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_list_client_connectionsA

查询外部微服务客户端 TCP 连接列表、信道数与收发吞吐速率.

[注意区分] 本工具用于排查外部应用连入 RabbitMQ 的物理 TCP 链路与信道泄露; 若要查看 MCP 服务端自身配置的目标 Broker 实例清单,请调用 rabbitmq_list_connections 或 rabbitmq_list_configured_brokers。 未配置 Management API 时依据 ADR-0001 优雅降级。

@param connection 目标 Broker 连接配置别名,默认为 'default' @param vhost 可选的虚拟主机名称过滤 @return 结构化的客户端连接诊断清单

ParametersJSON Schema
NameRequiredDescriptionDefault
vhostNo
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description carries the full burden. It usefully discloses the Management-API-absent fallback (graceful degradation per ADR-0001) and the diagnostic scope, but says nothing about permissions, rate limits, or what the degradation actually returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded purpose sentence, then routing note, then fallback note, then param tags. Slightly redundant with @param/@return duplicating schema and output-schema information, but nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-param, no-required-inputs read tool with an output schema, the description covers purpose, routing, fallback, and both params. Permissions and rate-limit context are the only meaningful omissions.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it documents both parameters, including the alias default ('default') and the optional vhost filter semantics. No format examples are given, keeping it short of a 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource in the first sentence (query external microservice client TCP connections, channels, throughput) and explicitly separates this tool from rabbitmq_list_connections and rabbitmq_list_configured_brokers. An agent can select it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The '[注意区分]' block gives an explicit when-to-use condition (diagnosing external app TCP links / channel leaks) and names the alternative tools for the other case. The stated split is a little confusing since rabbitmq_list_connections sounds like a sibling connection lister, but a routing decision is clearly provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_list_configured_brokersA

列出当前 MCP 服务配置的所有 RabbitMQ 目标 Broker 实例清单与脱敏地址.

为 rabbitmq_list_connections 的语义强化别名,用于清晰区分 Broker 实例配置与外部客户端 TCP 链路。

@return 脱敏后的 Broker 实例配置信息列表

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It discloses that the returned addresses are '脱敏' (desensitized/masked), which is useful data-handling context, and the verb '列出' (list) implies a read-only operation. However, it does not explicitly confirm read-only behavior, permissions required, or other operational traits such as pagination or rate limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by a clarifying sentence about its relationship to rabbitmq_list_connections, and ends with a brief @return note. Every sentence contributes useful information, and there is no redundant or wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (no parameters, output schema present, no annotations), the description is largely complete: it states what is listed, what the addresses look like (desensitized), and how it differs from a sibling. The only minor gap is the absence of explicit read-only or permission information, though the list verb and output schema mitigate this.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, and the schema description coverage is effectively 100% given the empty input schema. The description adds no parameter information because there are no parameters to describe, which matches the baseline of 4 for parameterless tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '列出...所有 RabbitMQ 目标 Broker 实例清单与脱敏地址' (list all configured RabbitMQ target broker instances and masked addresses). It explicitly distinguishes this tool from the sibling rabbitmq_list_connections by contrasting 'Broker 实例配置' (broker instance configuration) with '外部客户端 TCP 链路' (external client TCP connections). This gives an agent enough information to identify the tool's purpose without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description names the alternative tool (rabbitmq_list_connections) and explains the context in which this tool is useful: to clearly distinguish broker instance configuration from external client TCP connections. It does not explicitly state when not to use it, but the distinction provides clear usage context. No misleading guidance is present.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_list_connectionsA

列出当前 MCP 服务配置的所有 RabbitMQ 实例连接清单与脱敏地址.

[注意区分] 本工具返回的是配置中心中管理的目标 Broker 实例(如 connections.yaml 中配置的连接别名), 若要排查微服务应用连入 RabbitMQ 的物理客户端 TCP 链路,请调用 rabbitmq_list_client_connections。

@return 脱敏后的 Broker 实例配置信息列表

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose meaningful behavior: this is a read/list operation over configuration, and addresses are returned masked (脱敏), which the schema does not convey. It omits any auth/permission requirements or empty-config behavior, but for a zero-parameter read tool the disclosure is reasonably strong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, and the bracketed distinction note earns its space by preventing a wrong-tool call. The @return line is slightly redundant given an output schema exists, but overall it is tight and well-ordered.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, zero-parameter listing tool with an output schema present, the description covers scope, masking, and tool selection adequately; return-value detail is rightly left to the schema. The one gap is the unaddressed overlap with rabbitmq_list_configured_brokers.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes no parameters, so per the rubric the baseline is 4. There is nothing for the description to add or omit on this dimension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

It gives a specific verb+resource (list all RabbitMQ instance connections configured for this MCP service) and clarifies what the returned entity actually is — config-center Broker aliases, not live sockets. That is a real disambiguation. However, it never distinguishes itself from the very similarly named sibling rabbitmq_list_configured_brokers, which an agent could easily confuse with this tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly routes the agent: use this for config-center managed Broker instances, use rabbitmq_list_client_connections to troubleshoot physical client TCP links. That is a clear when-to-use plus a named alternative. It stops short of covering the near-duplicate sibling rabbitmq_list_configured_brokers, leaving one routing hazard unresolved.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_list_exchangesB

查询指定实例的交换机列表及类型、持久化配置.

@param connection 目标连接别名,默认为 'default' @param vhost 可选的虚拟主机过滤 @return 交换机元数据列表报告或降级提示

ParametersJSON Schema
NameRequiredDescriptionDefault
vhostNo
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It adds one genuinely useful trait — an output that may be a '降级提示' (degraded hint) rather than a full report — but omits auth requirements, connection failure behavior, and explicit read-only confirmation beyond the implied 'list'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose sentence is front-loaded and the @param/@return tags are functional rather than redundant, since the schema carries no descriptions. The tag block is slightly boilerplate-heavy but every line conveys information not present elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be fully explained, and the @return line gives an adequate summary. For a low-risk read tool with zero annotation coverage, the description covers purpose and both parameters well; only usage routing against siblings is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it largely does: it labels the connection alias with its default and identifies vhost as an optional filter, documenting both parameters. It stops short of format examples for vhost or what a non-default connection alias must reference.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (查询...交换机列表) and adds scope detail (type and persistence config returned). This clearly separates it from write-oriented siblings like rabbitmq_declare_exchange and rabbitmq_delete_exchange, though it does not name any sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance at all — nothing says when to reach for list_exchanges versus list_queues or list_bindings, or under what conditions vhost filtering is desirable. It only documents parameters, leaving the selection decision entirely to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_list_queuesB

查询指定实例的全部队列及其积压消息、未确认数与消费者全景指标.

@param connection 目标连接别名,默认为 'default' @param vhost 可选的虚拟主机过滤 @return 队列列表报告或降级提示

ParametersJSON Schema
NameRequiredDescriptionDefault
vhostNo
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It adds useful detail about the returned metrics and the possibility of a 'degraded hint' response, but it does not disclose permissions, read-only nature, rate limits, or pagination behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loads the core purpose before the parameter annotations. Every line earns its place, though the @param/@return block is slightly repetitive of schema defaults.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be fully explained, and the description covers both parameters. However, it falls short on sibling differentiation and behavioral safety details, which matter for an agent choosing between this and rabbitmq_get_queue.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description compensates by documenting both parameters: the connection alias with its default, and the optional vhost filter. It adds meaning beyond the bare schema, though it does not explain parameter formats or edge cases.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific verb (查询/list), the resource (全部队列/all queues), and the returned metrics (积压消息、未确认数、消费者全景指标). It is clear what the tool does, but it does not explicitly distinguish itself from the sibling rabbitmq_get_queue, which is also queue-focused.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that this tool is for listing queues, but it gives no explicit when-to-use guidance, no exclusions, and no mention of the sibling rabbitmq_get_queue or other alternatives. An agent must infer the context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_overviewB

获取 RabbitMQ 集群节点状态、队列统计与全局消息吞吐大盘.

依据 ADR-0001 双核架构设计,当未配置 Management API 时自动优雅降级。

@param connection 目标连接别名,默认为 'default' @return 集群指标概览字典或降级提示

ParametersJSON Schema
NameRequiredDescriptionDefault
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, but it does disclose a genuine behavioral trait: graceful degradation when the Management API is absent, plus the ADR-0001 dual-core architecture context. It does not clarify read-only safety, permissions, or whether the fallback yields partial data, so it is useful but incomplete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in the first line, followed by the degradation caveat and param/return tags. Reasonably tight, though the ADR-0001 architecture reference is internal jargon that adds little for an invoking agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be explained, and the single optional parameter is covered. What is missing is usage context — when to call this instead of the many granular rabbitmq_* siblings — leaving the agent to infer the routing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single 'connection' parameter, but the description compensates by defining it as the target connection alias with a 'default' value. That explains the parameter's meaning; the default itself is already in the schema, so the added value is modest.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific resource and scope ('cluster node status, queue statistics, and global message throughput dashboard'), which clearly separates it from the list/get siblings like rabbitmq_list_queues or rabbitmq_get_queue. It doesn't explicitly name those siblings, but the cluster-wide aggregation framing is distinct enough for an agent to route correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to prefer this overview over the granular sibling tools, nor any prerequisites. The only conditional statement ('automatically degrades when Management API is not configured') is a runtime behavior, not a usage recommendation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_peek_messagesA

对队列头部消息实施无损诊断采样 (Peek).

读取消息后延迟在循环结束后统一触发 reject(requeue=True),确保数据零丢失且不出队,同时防止重复读取同一条消息 (ADR-0002)。

@param queue 目标队列名称 @param count 采样数量限制(1-50,默认 10) @param connection 目标连接别名,默认为 'default' @return 采样消息清单报告

ParametersJSON Schema
NameRequiredDescriptionDefault
countNo
queueYes
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses the reject(requeue=True) mechanism, zero data loss, no dequeue, and no duplicate reads (ADR-0002). This is exactly the behavior an agent needs before touching broker messages. Gaps remain on permissions/rate limits and error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and safety implication, followed by a compact mechanism sentence and three @param lines. The mechanism sentence is slightly dense but each clause earns its place for a tool where data loss is a real risk.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-parameter read tool with an output schema (so return values need not be described), the definition covers purpose, safety mechanism, and parameter meanings. Missing only explicit routing against the sibling get/consume tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: it explains 'queue' as the target queue name, 'count' as a sampling limit with range 1-50 (default 10), and 'connection' as a target alias defaulting to 'default'. The range constraint and defaults are meaningful additions beyond the bare schema titles.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: non-destructive sampling (peek) of queue-head messages, with the key qualifier '无损' and '不出队' that separates it from a consuming read. It does not explicitly name the sibling rabbitmq_get_messages, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'诊断采样' implies a diagnostic/inspection use case, but there is no explicit when-to-use or when-not guidance and no alternative named (e.g., why peek instead of rabbitmq_get_messages). Usage must be inferred from the purpose.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_pingA

测量与 RabbitMQ Broker 的 AMQP 链路往返延迟.

建立底层 TCP/AMQP 会话与信道后立即安全关闭,用于网络可达性与响应时间探活。

@param connection 目标连接别名,默认为 'default' @return 包含探活状态与延迟(毫秒)的结构化报告

ParametersJSON Schema
NameRequiredDescriptionDefault
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations, but the description carries behavioral weight: it explains that a low-level TCP/AMQP session and channel are established then immediately closed safely, and that a structured report is returned. Missing auth/permission details keeps it from 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short, front-loaded, and uses @param/@return tags efficiently. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, the description need not explain return fields, and it already covers purpose, safety behavior, and the lone parameter. Complete for a simple ping tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate; it does by explaining that 'connection' is a target connection alias and defaults to 'default'. It does not add validation, format, or source-of-alias detail.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: measuring AMQP round-trip latency to RabbitMQ, with a clear health-probe framing. It implies a distinct role from list/declare/delete siblings, even without naming one.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Indicates the use case (network reachability and response-time probing), which gives clear context for when to use it. It does not name alternatives or when-not conditions, so it stops short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_publish_messageA

向指定交换机与路由键发布消息,支持 JSON 自动序列化与持久化配置.

受全局写保护门禁 (--allow-write) 约束。

@param exchange 目标交换机名称 @param routing_key 路由寻址键,默认为空 @param payload 消息载荷,支持 dict, list, str 或 bytes @param delivery_mode 投递模式,1=非持久化,2=持久化(默认 2) @param priority 消息优先级(0-255) @param expiration 消息过期时间(毫秒数字或字符串) @param headers 自定义消息属性头字典 @param connection 目标连接别名,默认为 'default' @return 消息投递确认报告

ParametersJSON Schema
NameRequiredDescriptionDefault
headersNo
payloadNo
exchangeYes
priorityNo
connectionNodefault
expirationNo
routing_keyNo
delivery_modeNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose real behavioral traits: the write gate requirement, automatic JSON serialization, persistence via delivery_mode, and a delivery-confirmation return. It stops short of failure semantics or whether the exchange must pre-exist.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, followed by the gate warning and a compact @param block. The @param repetition is justified because the schema carries zero descriptions, so little is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter write tool with no annotations but an output schema, the description documents every parameter and the write gate, leaving return values to the output schema. Minor behavioral gaps (error handling, exchange existence) remain but are not blocking.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: it defines delivery_mode (1=non-persistent, 2=persistent), priority range (0-255), expiration units (ms as number or string), payload types (dict/list/str/bytes), and defaults for routing_key and connection. This goes well beyond what the bare schema conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('publish a message') with the addressing target (exchange + routing key), which cleanly separates it from the declare/bind/list siblings. An agent can identify this as the message-sending tool without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description notes it is gated by the global write-protection flag (--allow-write), which is a genuine usage prerequisite, but it never states when to prefer this over alternatives or any when-not conditions. Usage is only implied by the tool's name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_purge_queueA

受控清空指定队列中的全部待消费消息.

强制要求二次确认 (confirm: bool = False),未确认时仅返回受影响预估报告 (ADR-0002)。

@param name 目标队列名称 @param confirm 二次确认标识,默认为 False @param connection 目标连接别名,默认为 'default' @return 清空结果或二次确认预估报告

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
confirmNo
connectionNodefault

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does so well: it discloses that this is a destructive purge of all pending messages, that a second confirmation is mandatory, and that an unconfirmed call safely degrades to an impact estimate (ADR-0002). It omits permission requirements and irreversibility guarantees, but the confirmation/dry-run behavior is genuinely useful context beyond the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the purpose and the safety constraint, followed by compact JSDoc tags. The tag block is slightly redundant with the opening prose but earns its place by documenting otherwise-undocumented parameters.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be detailed here, yet the @return line still summarizes the two possible outcomes. For a destructive queue operation with zero annotations, the definition covers the operation, the safety workflow, and all parameters adequately.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it documents all three parameters via @param tags, including the semantics and defaults of 'confirm' (False) and 'connection' ('default'). It adds meaningful meaning over a bare schema, though it does not clarify connection-alias resolution or name format.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('清空/purge' the '指定队列') plus the exact scope ('全部待消费消息'), which cleanly separates it from rabbitmq_delete_queue (removes the queue) and rabbitmq_get/peek_messages (reads messages). An agent can identify the operation without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains the two-step confirm workflow but never states when to prefer this over siblings such as rabbitmq_delete_queue, nor any prerequisites beyond the confirm flag. Usage is implied by the destructive-purge semantics rather than explicitly guided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rabbitmq_unbind_queueA

解除队列与指定交换机之间的路由绑定.

受全局写保护门禁 (--allow-write) 约束。

@param queue 目标队列名称 @param exchange 目标交换机名称 @param routing_key 路由键,默认为空字符串 @param arguments 可选绑定参数 @param connection 目标连接别名,默认为 'default' @return 解绑结果报告

ParametersJSON Schema
NameRequiredDescriptionDefault
queueYes
exchangeYes
argumentsNo
connectionNodefault
routing_keyNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry behavioral disclosure. It does disclose the write-protection gate that can block the call, which is genuinely useful context, but it omits reversibility (re-bind), error behavior when the binding does not exist, and any auth/scope details beyond the gate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence of purpose front-loaded first, followed by a compact @param block and a @return line. Every line maps to a real field or behavior and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the terse @return note is sufficient and return values need not be expanded. For a 5-parameter mutation with zero schema coverage, the description covers purpose, all parameters, defaults, and the write gate; the only meaningful gap is not routing the agent to bind_queue or explaining failure modes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description carries the full burden, and it delivers: every one of the 5 parameters gets a meaning plus defaults for routing_key ('') and connection ('default'). No format, alias-list, or argument-shape detail is added, but the semantic mapping is complete.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: '解除队列与指定交换机之间的路由绑定' (remove the routing binding between a queue and a specified exchange). This clearly distinguishes it from the sibling rabbitmq_bind_queue by operation direction, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It discloses a real gating condition — the tool is subject to the global write-protection gate (--allow-write) — which tells the agent when the call will be blocked. However, there is no explicit guidance on when to choose unbind over bind, or on prerequisites such as the binding existing first.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 20 tool updatesv1.0.4
    • First observedrabbitmq_bind_queue
    • First observedrabbitmq_declare_exchange
    • First observedrabbitmq_declare_queue
    • First observedrabbitmq_delete_exchange
    • First observedrabbitmq_delete_queue
    • First observedrabbitmq_get_messages
    • First observedrabbitmq_get_queue
    • First observedrabbitmq_list_bindings
    • First observedrabbitmq_list_channels
    • First observedrabbitmq_list_client_connections
    • First observedrabbitmq_list_configured_brokers
    • First observedrabbitmq_list_connections
    • First observedrabbitmq_list_exchanges
    • First observedrabbitmq_list_queues
    • First observedrabbitmq_overview
    • First observedrabbitmq_peek_messages
    • First observedrabbitmq_ping
    • First observedrabbitmq_publish_message
    • First observedrabbitmq_purge_queue
    • First observedrabbitmq_unbind_queue

TDQS

A3.6/5.0

Scored across 20 tools

Disambiguation3/5

Most tools are clearly distinct by resource and action, but rabbitmq_list_connections and rabbitmq_list_configured_brokers are explicitly aliases of the same operation, creating a direct duplication. Additionally, rabbitmq_peek_messages and rabbitmq_get_messages overlap in purpose, though their descriptions help differentiate them.

Naming Consistency5/5

All 20 tools follow a consistent rabbitmq_verb_noun snake_case pattern with no deviations. The naming is entirely predictable and easy to parse.

Tool Count4/5

20 tools is on the high side but still reasonable for a full RabbitMQ broker management surface covering queues, exchanges, bindings, publishing, and diagnostics. One tool (the alias) is redundant, but the set as a whole is well-scoped.

Completeness4/5

The surface covers core CRUD for queues and exchanges, binding management, message publish/peek/get, and diagnostic operations. Minor gaps exist, such as no explicit get-exchange details or consumer management tools, but essential workflows are well covered.

Maintenance

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers