This reference documents the checked-in Query MCP catalog. It is derived from the default and
change-planning Tool contracts in src/tools/catalog.rs and their checked-in schema snapshots. The
default catalog has 24 Tools; enabling change-planning adds five non-mutating planning Tools for a
total of 29. Use tools/list as the live authority for the caller-visible subset.
All default Tools have readOnlyHint=true, destructiveHint=false, and do not create a RocketMQ
Admin mutation session. See the authorization matrix for discovery and call-time checks. Logical
aliases such as cluster, proxy_name, and fields explicitly marked logical in the argument
tables are not network addresses.
Each Tool has a risk level and requires the corresponding principal scope. For HTTP, scopes come
from verified OAuth claims. For stdio, Principal::local(profile) synthesizes them: every profile
gets rocketmq:read; diagnose, diagnostic, and operator also get rocketmq:diagnose; and
plan and operator also get rocketmq:plan.
| Risk level | Required scope |
|---|---|
| ReadOnly | rocketmq:read |
| Diagnose | rocketmq:diagnose |
| Plan | rocketmq:plan |
tools/list discovery checks only the principal scope and the role's Tool allow/deny rule. It does
not check configured clusters, the principal cluster claim, tenant binding, or runtime
allow_change_planning; discovery therefore does not prove that a call will be accepted. At
call-time, an explicit cluster is checked against server configuration, the role cluster rule,
the principal rocketmq_clusters claim when present, and the configured tenant binding. A planning
call also checks the compiled feature and runtime allow_change_planning=true then.
The two inventory Tools permit cluster omission. Their server-default/sole-configured-cluster
fallback therefore has no per-cluster authorization or tenant check at call-time; do not treat an
omitted-cluster inventory request as a stronger per-cluster authorization guarantee.
Unless a Tool section says otherwise, input objects reject unknown fields and have no mutually
exclusive fields. Examples are tools/call.params.arguments objects. Each response example is a
representative JSON fragment: every actual success carries the complete common envelope.
The following checked-in validation rules are referenced by every argument table below. They apply
after JSON type validation. An optional argument typed ... or null defaults to null when
omitted unless the relevant table says otherwise. This maps every cursor and filter entry and
the nullable planning fields below; limit is the stated exception with a default of 50.
| Input category | Contract |
|---|---|
cursor |
Optional opaque continuation from data.next_cursor, at most 256 bytes. It is not a client-defined offset or address. |
Inventory filter |
Optional Topic or Consumer Group inventory filter: trim it, convert ASCII letters to lowercase, and require at most 1,024 bytes. |
| Exact identifier | Trimmed nonempty identifier of 1--255 bytes. This category applies to Topic, Consumer Group, Producer Group, and message identifiers. |
| Logical alias | Trimmed 1--100 byte ASCII token using only letters, digits, ., _, and -. . and .. are permitted; IP literals, socket/endpoint forms, :, /, \\, @, =, &, ?, and control characters are rejected. |
| Broker logger | Original (not case-normalized) value of at most 128 bytes which must be an allowlisted rocketmq_broker:: module path. |
| Configuration-state Broker selection | A nonempty 1--64 element selection of logical aliases; it is sorted and deduplicated before lookup. |
| HA selection | broker_names is zero through 64 logical aliases. controller_names is zero through 32 non-duplicate logical aliases; a nonempty controller_names list requires include_sync_state=true. |
| Controller metadata selection | controller_names is zero through 32 non-duplicate logical aliases. |
For rocketmq_list_topics and rocketmq_list_consumer_groups, an omitted or null cluster
selects the explicit default cluster only when one is configured; otherwise it is valid only when
the server configuration contains exactly one cluster. In every other case the request is invalid.
Successful calls return the rocketmq-mcp.v2 envelope with schema_version, request_id,
cluster, observed_at, freshness_ms, cache_status, partial, warnings, and typed
data. cache_status is hit, miss, or bypass. source_failures is serialized only when it
is nonempty: entries are sanitized, sorted and deduplicated, capped at 16, make partial=true,
and add source_failures_present to warnings. If the cap is exceeded, warnings also includes
source_failures_truncated and the response remains partial. warnings can also include
output_rows_truncated. The controlled Query/Admin projections omit addresses, credentials,
tokens, message bodies, and other configured sensitive values.
The paginated Tools use limit and cursor. limit is an optional unsigned integer from 1 through
200 and defaults to 50. cursor follows the common 256-byte opaque-cursor rule. Paged data
contains items, count, total_count, has_more, and next_cursor. More than 1,000 output
rows are truncated, with partial=true and output_rows_truncated. A serialized response over
1 MiB instead fails with OutputTooLarge (output_too_large); it is not returned as a truncated
partial response.
{
"schema_version": "rocketmq-mcp.v2",
"request_id": "request-opaque",
"cluster": "production-a",
"observed_at": "2026-09-04T12:00:00Z",
"freshness_ms": 0,
"cache_status": "miss",
"partial": false,
"warnings": [],
"data": {
"cluster": "production-a"
}
}Purpose and access. Summarizes Brokers plus Topic and Consumer Group counts for one configured cluster. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
Output. data contains the logical cluster, brokers summaries, topic_count,
consumer_group_count, and generated_at.
{"cluster":"production-a"}{"cluster":"production-a","data":{"topic_count":42,"consumer_group_count":9,"brokers":[{"broker_name":"broker-a","broker_active":true}]}}Purpose and access. Lists a bounded, optionally filtered Topic page. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string or null | no | Optional logical alias; omission/null follows the explicit-default or sole-configured-cluster rule. |
filter |
string or null | no | Optional Topic inventory filter; trim, ASCII-lowercase, at most 1,024 bytes. |
limit |
integer or null | no | Page limit, 1--200; defaults to 50. |
cursor |
string or null | no | Opaque continuation from the preceding response, at most 256 bytes. |
Output. Paged data.items contains Topic entries with their visible cluster and optional
consumer-group context.
{"cluster":"production-a","filter":"orders","limit":25}{"cluster":"production-a","data":{"items":[{"topic":"orders","cluster":"production-a","consumer_group":null}],"count":1,"total_count":1,"has_more":false,"next_cursor":null}}Purpose and access. Describes one Topic with bounded queue-route data. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
topic |
string | yes | Exact Topic name. |
limit |
integer or null | no | Queue-route page limit, 1--200; defaults to 50. |
cursor |
string or null | no | Opaque queue-route continuation, at most 256 bytes. |
Output. data identifies the Topic and returns its bounded route/queue observations with normal
page metadata. Internal Broker addresses are not serialized.
{"cluster":"production-a","topic":"orders","limit":50}{"cluster":"production-a","data":{"topic":"orders","brokers":[],"items":[],"count":0,"total_count":0,"has_more":false,"next_cursor":null}}Purpose and access. Returns bounded route data for one Topic. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
topic |
string | yes | Exact Topic name. |
limit |
integer or null | no | Route page limit, 1--200; defaults to 50. |
cursor |
string or null | no | Opaque route continuation, at most 256 bytes. |
Output. data contains the Topic's Broker and queue route observations with page metadata;
address-bearing source fields remain omitted.
{"cluster":"production-a","topic":"orders"}{"cluster":"production-a","data":{"topic":"orders","brokers":[],"items":[],"count":0,"total_count":0,"has_more":false,"next_cursor":null}}Purpose and access. Lists a bounded, optionally filtered Consumer Group page and consumption summaries. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string or null | no | Optional logical alias; omission/null follows the explicit-default or sole-configured-cluster rule. |
filter |
string or null | no | Optional Consumer Group inventory filter; trim, ASCII-lowercase, at most 1,024 bytes. |
limit |
integer or null | no | Page limit, 1--200; defaults to 50. |
cursor |
string or null | no | Opaque continuation, at most 256 bytes. |
Output. Paged data.items contains the visible Consumer Group records and the standard page
metadata.
{"cluster":"production-a","filter":"orders","limit":25}{"cluster":"production-a","data":{"items":[],"count":0,"total_count":0,"has_more":false,"next_cursor":null}}Purpose and access. Gets bounded per-queue lag for one Topic and Consumer Group. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
topic |
string | yes | Exact Topic name. |
consumer_group |
string | yes | Exact Consumer Group name. |
limit |
integer or null | no | Queue page limit, 1--200; defaults to 50. |
cursor |
string or null | no | Opaque continuation. |
Output. Paged data contains per-queue current, broker, and lag observations plus page
metadata.
{"cluster":"production-a","topic":"orders","consumer_group":"orders-consumer","limit":50}{"cluster":"production-a","data":{"topic":"orders","consumer_group":"orders-consumer","items":[],"count":0,"total_count":0,"has_more":false,"next_cursor":null}}Purpose and access. Describes one logical Broker's state. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
broker_name |
string | yes | Trimmed nonempty exact identifier, 1--255 bytes; used only for Broker-name lookup, not as a network endpoint. It does not apply logical-alias or endpoint-shaped rejection. |
Output. data contains the logical Broker, bounded Broker summaries, and generated_at; the
source NameServer address is not serialized.
{"cluster":"production-a","broker_name":"broker-a"}{"cluster":"production-a","data":{"broker_name":"broker-a","brokers":[{"broker_name":"broker-a","broker_active":true}]}}Purpose and access. Returns bounded readiness, store, recovery, HA, and security diagnostics for one logical Broker. It is read-only and diagnose risk.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
broker_name |
string | yes | Logical Broker name. |
Output. data includes the diagnostics schema version, observed time, Broker diagnostic rows,
unavailable-Broker count, and sanitized warnings.
{"cluster":"production-a","broker_name":"broker-a"}{"cluster":"production-a","data":{"broker_name":"broker-a","diagnostics_schema_version":"rocketmq-broker-diagnostics.v1","unavailable_brokers":0,"brokers":[{"broker_name":"broker-a","coverage":"available"}]}}Purpose and access. Reads the fixed allowlisted configuration summary for one logical Broker. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
broker_name |
string | yes | Logical Broker name. |
Output. data.brokers reports generation and the fixed summary fields; it never returns a
free-form configuration dump.
{"cluster":"production-a","broker_name":"broker-a"}{"cluster":"production-a","data":{"broker_name":"broker-a","brokers":[{"broker_name":"broker-a","generation":12,"send_message_thread_pool_nums":8}]}}Purpose and access. Reads temporary filter state for one allowlisted rocketmq_broker logger
target. It is read-only and diagnose risk.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
broker_name |
string | yes | Logical Broker name. |
logger |
string | yes | Original form, at most 128 bytes, and an allowlisted rocketmq_broker:: module path. |
Output. data.brokers reports support, logger, optional INFO or DEBUG level, temporary
operation identifiers, and expiry only when available.
{"cluster":"production-a","broker_name":"broker-a","logger":"rocketmq_broker::processor"}{"cluster":"production-a","data":{"broker_name":"broker-a","logger":"rocketmq_broker::processor","brokers":[{"broker_name":"broker-a","supported":true,"level":"INFO"}]}}Purpose and access. Reads bounded drain progress for one configured logical Proxy. It is read-only and diagnose risk.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
proxy_name |
string | yes | Configured logical Proxy alias. |
Output. data reports phase, admission/routing/readiness flags, zero-pending state, and bounded
pending counters.
{"cluster":"production-a","proxy_name":"proxy-a"}{"cluster":"production-a","data":{"proxy_name":"proxy-a","admission_open":true,"routing_open":true,"readiness_published":true,"zero_pending":false}}Purpose and access. Correlates read-only lag, route, and Broker evidence into a diagnosis report. It is read-only and diagnose risk; callers cannot supply a time range or thresholds.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
topic |
string | yes | Exact Topic name. |
consumer_group |
string | yes | Exact Consumer Group name. |
Output. data is the versioned diagnosis report, including its evidence snapshot, findings,
recommendations, and sanitized warnings.
{"cluster":"production-a","topic":"orders","consumer_group":"orders-consumer"}{"cluster":"production-a","data":{"summary":"No lag diagnosis finding was produced","root_causes":[],"recommendations":[]}}Purpose and access. Lists a bounded page of pseudonymous consumer connections for one exact Consumer Group. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
consumer_group |
string | yes | Exact Consumer Group name. |
limit |
integer or null | no | Page limit, 1--200; defaults to 50. |
cursor |
string or null | no | Opaque continuation. |
Output. Paged data.items has logical Broker names, pseudonymous client_alias, language,
version, and optional update time; client addresses are not exposed.
{"cluster":"production-a","consumer_group":"orders-consumer","limit":25}{"cluster":"production-a","data":{"consumer_group":"orders-consumer","items":[{"broker_name":"broker-a","client_alias":"consumer-1","language":"RUST","version":1}],"count":1,"total_count":1,"has_more":false,"next_cursor":null}}Purpose and access. Lists a bounded page of pseudonymous producer connections for one exact Topic and Producer Group. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
topic |
string | yes | Exact Topic name. |
producer_group |
string | yes | Exact Producer Group name. |
limit |
integer or null | no | Page limit, 1--200; defaults to 50. |
cursor |
string or null | no | Opaque continuation. |
Output. Paged data.items has pseudonymous connection observations and page metadata.
{"cluster":"production-a","topic":"orders","producer_group":"orders-producer","limit":25}{"cluster":"production-a","data":{"topic":"orders","producer_group":"orders-producer","items":[{"broker_name":"broker-a","client_alias":"producer-1","language":"RUST","version":1}],"count":1,"total_count":1,"has_more":false,"next_cursor":null}}Purpose and access. Reads fixed body-free metadata for one message using process-lifetime aliases. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
message_id |
string | yes | Exact message identifier. |
Output. data supplies aliases, Topic, optional born/stored times, queue position, size, flags,
reconsume count, and transaction offset. Message body and address data are absent.
{"cluster":"production-a","message_id":"message-opaque"}{"cluster":"production-a","data":{"message_alias":"message-1","unique_message_alias":null,"topic":"orders","queue_id":0,"queue_offset":42,"store_size":128}}Purpose and access. Reads version-CAS observations for one Topic at selected logical Brokers. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
topic |
string | yes | Exact Topic name. |
broker_names |
array of strings | yes | 1--64 logical aliases; sorted and deduplicated configuration-state selection. |
Output. data.brokers returns each Broker's version, queue counts, and ordering state.
{"cluster":"production-a","topic":"orders","broker_names":["broker-a"]}{"cluster":"production-a","data":{"topic":"orders","brokers":[{"broker_name":"broker-a","version":12,"read_queue_nums":8,"write_queue_nums":8,"order":false}]}}Purpose and access. Reads version-CAS Consumer Group observations at selected logical Brokers. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
group |
string | yes | Exact Consumer Group name. |
broker_names |
array of strings | yes | 1--64 logical aliases; sorted and deduplicated configuration-state selection. |
Output. data.brokers contains group configuration observations including version, retries,
timeouts, consume flags, and Broker selection fields.
{"cluster":"production-a","group":"orders-consumer","broker_names":["broker-a"]}{"cluster":"production-a","data":{"group":"orders-consumer","brokers":[{"broker_name":"broker-a","version":12,"retry_max_times":16,"retry_queue_nums":1,"consume_enable":true}]}}Purpose and access. Returns a bounded snapshot page of deterministic per-queue Topic statistics and aggregate totals. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
topic |
string | yes | Exact Topic name. |
limit |
integer or null | no | Queue page limit, 1--200; defaults to 50. |
cursor |
string or null | no | Opaque continuation. |
Output. data includes deterministic per-queue items, normal page metadata, and complete
aggregate totals.
{"cluster":"production-a","topic":"orders","limit":50}{"cluster":"production-a","data":{"topic":"orders","items":[],"count":0,"total_count":0,"has_more":false,"next_cursor":null}}Purpose and access. Reads fixed address-free Topic configuration observations and semantic differences across Brokers. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
topic |
string | yes | Exact Topic name. |
Output. data contains observations per logical Broker and explicit inconsistent fields, not a
free-form Broker configuration.
{"cluster":"production-a","topic":"orders"}{"cluster":"production-a","data":{"topic":"orders","brokers":[{"broker_name":"broker-a","read_queue_nums":8,"write_queue_nums":8}],"inconsistent_fields":[]}}Purpose and access. Reads fixed address-free configuration and connection observations for one Consumer Group. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
consumer_group |
string | yes | Exact Consumer Group name. |
Output. data contains the Group's configuration and connection observations, with endpoints
and credential material omitted.
{"cluster":"production-a","consumer_group":"orders-consumer"}{"cluster":"production-a","data":{"consumer_group":"orders-consumer","brokers":[{"broker_name":"broker-a"}],"total_connection_count":0}}Purpose and access. Returns a bounded snapshot page of deterministic per-queue progress and complete aggregate totals. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
consumer_group |
string | yes | Exact Consumer Group name. |
limit |
integer or null | no | Queue page limit, 1--200; defaults to 50. |
cursor |
string or null | no | Opaque continuation. |
Output. data includes per-queue progress rows, normal page metadata, and aggregate totals.
{"cluster":"production-a","consumer_group":"orders-consumer","limit":50}{"cluster":"production-a","data":{"consumer_group":"orders-consumer","items":[],"count":0,"total_count":0,"has_more":false,"next_cursor":null}}Purpose and access. Reads bounded HA observations for logical master Brokers, optionally with configured Controller synchronization state. It is read-only and diagnose risk.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
broker_names |
array of strings | no | Defaults to []; zero through 64 logical master aliases. |
include_sync_state |
boolean | no | Defaults to false; must be true when controller_names is nonempty. |
controller_names |
array of strings | no | Defaults to []; zero through 32 non-duplicate logical Controller aliases. |
Output. data contains bounded Broker HA observations and, when requested and available,
Controller synchronization observations.
{"cluster":"production-a","broker_names":["broker-a"],"include_sync_state":true,"controller_names":["controller-a"]}{"cluster":"production-a","data":{"brokers":[{"broker_name":"broker-a","broker_id":0,"in_sync_slave_count":1}],"controller_sync_states":[]}}Purpose and access. Reads bounded metadata for configured logical Controllers. It is read-only and diagnose risk.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
controller_names |
array of strings | no | Defaults to []; zero through 32 non-duplicate logical Controller aliases. |
Output. data.controllers provides group, leadership, peer-count, and log-index observations
where available.
{"cluster":"production-a","controller_names":["controller-a"]}{"cluster":"production-a","data":{"controllers":[{"controller_name":"controller-a","is_leader":true,"peer_count":3}]}}Purpose and access. Reads fixed allowlisted configuration values and differences for configured NameServers. It is read-only.
| Argument | Type | Required | Rules |
|---|---|---|---|
cluster |
string | yes | Configured logical cluster alias. |
Output. data.nameservers contains the fixed summary fields and inconsistent_fields; it never
returns a free-form NameServer configuration dump.
{"cluster":"production-a"}{"cluster":"production-a","data":{"nameservers":[{"nameserver_name":"nameserver-a","values":{"cluster_test":false}}],"inconsistent_fields":[]}}change-planning is compiled separately and remains disabled until runtime policy permits it. Each
Tool has readOnlyHint=true and produces a plan only: none has Apply mode, confirmation, operator
identity, or a RocketMQ mutation API call. The ToolResponse<ChangePlan>.data object reports
mutates_cluster=false, planned changes, impact analysis, and rollback suggestions. Do not treat a
generated plan as authorization to change a cluster.
All five inputs reject unknown fields. Each has required string cluster, required string reason,
and required object desired. The Guard authorizes cluster against a configured cluster before
the current-state query; planning does not add a separate logical-alias normalization. reason is
an ordinary required string. There are no mutually exclusive fields declared by these contracts.
The rules column identifies the current-state query validation that applies after decoding, if any.
Planning output is intentionally not a redacted Resource projection. It returns reason, and
planned_changes can echo config_value and other desired strings. Never put credentials, tokens,
secrets, or other sensitive values in any planning input.
Purpose. Generates a non-mutating Topic creation plan.
desired field |
Type | Required | Rules |
|---|---|---|---|
topic |
string | yes | Current planner does no extra runtime normalization; schema type is only string. |
read_queue_nums |
integer (u32) or null |
no | Defaults to null; minimum 0. |
write_queue_nums |
integer (u32) or null |
no | Defaults to null; minimum 0. |
perm |
string or null | no | Defaults to null; no additional scalar bound in this schema. |
{"cluster":"production-a","reason":"capacity preparation","desired":{"topic":"orders","read_queue_nums":8,"write_queue_nums":8,"perm":"read_write"}}{"schema_version":"rocketmq-mcp.v2","request_id":"request-opaque","cluster":"production-a","observed_at":"2026-09-04T12:00:00Z","freshness_ms":0,"cache_status":"bypass","partial":false,"warnings":[],"data":{"mutates_cluster":false,"plan_type":"create_topic"}}Purpose. Generates a non-mutating Topic configuration update plan.
desired field |
Type | Required | Rules |
|---|---|---|---|
topic |
string | yes | Passed to describe_topic: trimmed nonempty exact identifier, 1--255 bytes. |
config_key |
string | yes | No additional scalar bound in this schema. |
config_value |
string | yes | No additional scalar bound in this schema. |
{"cluster":"production-a","reason":"review config change","desired":{"topic":"orders","config_key":"message.type","config_value":"normal"}}{"schema_version":"rocketmq-mcp.v2","request_id":"request-opaque","cluster":"production-a","observed_at":"2026-09-04T12:00:00Z","freshness_ms":0,"cache_status":"bypass","partial":false,"warnings":[],"data":{"mutates_cluster":false,"plan_type":"update_topic_config"}}Purpose. Generates a non-mutating Topic permission update plan.
desired field |
Type | Required | Rules |
|---|---|---|---|
topic |
string | yes | Passed to describe_topic: trimmed nonempty exact identifier, 1--255 bytes. |
perm |
string | yes | No additional scalar bound in this schema. |
{"cluster":"production-a","reason":"review access change","desired":{"topic":"orders","perm":"read_write"}}{"schema_version":"rocketmq-mcp.v2","request_id":"request-opaque","cluster":"production-a","observed_at":"2026-09-04T12:00:00Z","freshness_ms":0,"cache_status":"bypass","partial":false,"warnings":[],"data":{"mutates_cluster":false,"plan_type":"update_topic_permissions"}}Purpose. Generates a non-mutating Broker configuration update plan.
desired field |
Type | Required | Rules |
|---|---|---|---|
broker_name |
string | yes | Passed to describe_broker: trimmed nonempty exact identifier, 1--255 bytes. |
config_key |
string | yes | No additional scalar bound in this schema. |
config_value |
string | yes | No additional scalar bound in this schema. |
{"cluster":"production-a","reason":"review broker configuration","desired":{"broker_name":"broker-a","config_key":"flushDiskType","config_value":"ASYNC_FLUSH"}}{"schema_version":"rocketmq-mcp.v2","request_id":"request-opaque","cluster":"production-a","observed_at":"2026-09-04T12:00:00Z","freshness_ms":0,"cache_status":"bypass","partial":false,"warnings":[],"data":{"mutates_cluster":false,"plan_type":"update_broker_config"}}Purpose. Generates a non-mutating Consumer offset reset plan.
desired field |
Type | Required | Rules |
|---|---|---|---|
topic |
string | yes | Passed to query_consumer_lag: trimmed nonempty exact identifier, 1--255 bytes. |
consumer_group |
string | yes | Passed to query_consumer_lag: trimmed nonempty exact identifier, 1--255 bytes. |
target_offset |
integer (i64/int64) or null |
no | Defaults to null; no additional scalar bound in this schema. |
timestamp_millis |
integer (i64/int64) or null |
no | Defaults to null; no additional scalar bound in this schema. |
target_offset and timestamp_millis are both optional in the schema; the schema declares no
mutual-exclusion rule for them.
{"cluster":"production-a","reason":"review offset recovery","desired":{"topic":"orders","consumer_group":"orders-consumer","target_offset":42}}{"schema_version":"rocketmq-mcp.v2","request_id":"request-opaque","cluster":"production-a","observed_at":"2026-09-04T12:00:00Z","freshness_ms":0,"cache_status":"bypass","partial":false,"warnings":[],"data":{"mutates_cluster":false,"plan_type":"reset_consumer_offset"}}