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]

Reply via email to