lizhimins opened a new issue, #4305: URL: https://github.com/apache/rocketmq-dashboard/issues/4305
### Motivation The MCP tool catalog grew to 50 tools without a consistent organizing principle, and it exposes concepts that do not exist on the open-source path. - **Overlapping tools.** `topic.create`/`topic.update` and `group.create`/`group.update` are separate tools even though both are idempotent upserts. Three separate message lookups exist for what is one query with a positional priority. `topic.describe` and `topic.status` overlap. `broker.runtime_info` overlaps `broker.describe`. - **Wrong domain placement.** `topic.send` is a message operation. The DLQ tools sit in their own domain rather than under `message`. `capabilities`/`metrics` are instance-level introspection but sit at the top level. - **`namespace` is exposed but meaningless.** There is no `ns%topic` physical prefix on the open-source path; `namespace` is a display-only field. Exposing it as a tool input/output invites callers to treat it as an isolation mechanism. - **`x-target-mode` schema extension.** A non-standard schema keyword is carried through the catalog and the generator. - **`broker.config_update` advertises an unsupported operation.** Configuration updates are not supported, so the tool can only fail. - **No instance containment model.** Nothing in the catalog expresses that a tool operates on a resource inside an instance, so parameter order and required-ness are inconsistent, and the platform-level tools that legitimately have no instance are not distinguishable from the rest. ### Expected Reorganize the catalog around the resource containment hierarchy — instanceId, then resource name, then sub-resource, then filters, then time window, then paging, then change control — and drop the `namespace` concept: - 50 → 40 tools: make `topic.update`/`group.update` idempotent upserts and drop the create tools; move `topic.send` to `message.send`; merge the three message lookups into `message.query` with positional priority msgId > uniqueKey > key; move the DLQ domain under `message` (`query_dlq`/`redelivery_dlq`); express lite topics as `topic.list --type LITE`; merge `group.skip_accumulated` into `group.reset_offset`; merge `broker.runtime_info` into `broker.describe`; drop `broker.config_update`; move `capabilities`/`metrics` under the instance domain - merge `topic.describe` and `topic.status` into `topic.detail`; add `message.query_by_offset`, `acl.get`, `user.get`, `nameserver.config`, `proxy.config` and the instance domain - address the seven infrastructure tools by physical `clusterName` and resolve back to the owning instance, with the catalog validating that exactly those platform-level tools are exempt from `instanceId` - drop the `x-target-mode` schema extension from the catalog and from the generator, making a residual keyword a hard failure Per `docs/studio-instance-model-spec.md`, the seven infrastructure tools keep physical-cluster semantics (`clusterName`), which is distinct from the `instanceId` used everywhere else. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
