tju-yxq opened a new issue, #3051:
URL: https://github.com/apache/rocketmq-dashboard/issues/3051

   ## Problem
   
   The AI/MCP/CLI inventory tools are deliberately read-only, but three of them 
execute full in-memory inventories and return every row in one response:
   
   - `rmq.topic.list` calls `MetadataService.listTopics(...)`
   - `rmq.group.list` calls `MetadataService.listConsumerGroups(...)`
   - `rmq.alert.rule.list` calls `AlertService.listRules()`
   
   The regular web endpoints use provider-aware pagination for topics and 
consumer groups (`listTopicsPage` / `listConsumerGroupsPage`, max page size 
100), but the tool catalog exposes no `page` or `pageSize` input and the 
handlers do not use those paged services. A large instance can therefore return 
thousands of projected rows to an AI client in one call, increasing response 
latency, memory pressure, and context consumption. Alert rules have no paged 
tool path at all.
   
   This is different from message-query payload budgeting already handled in 
#2538/#2539 and tool authorization work in #2370: those changes do not bound 
inventory tool responses.
   
   ## Expected behavior
   
   - Inventory tools should accept explicit `page` and `pageSize` inputs with a 
small maximum page size.
   - Topic and consumer-group tools should use the existing paged 
service/provider paths instead of materializing and projecting the complete 
inventory.
   - The alert-rule tool should use a paged repository query rather than 
filtering the full rule list in memory.
   - Tool output should retain total/page/size and the existing item projection 
so clients can request additional pages.


-- 
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