Context
While writing regression tests for the mcp-go → go-sdk migration (#5742), a pagination regression was discovered.
Finding
pkg/vmcp/client/client.go queryTools (around line 700) does a single ListTools with ListToolsRequest{} — no cursor loop. The go-sdk paginates tools/list at DefaultPageSize=1000, so backends with >1000 tools are silently truncated.
The same issue applies to queryResources and queryPrompts.
Impact: vMCP servers aggregating backends with >1000 tools will silently drop tools beyond the first page. Non-cursor-following clients see an incomplete tool set.
Regression test coverage
TestRegression_Over1000Tools_CompleteSetReceived in test/integration/vmcp/pagination_regression_test.go — skipped test with t.Skip("vMCP does not follow pagination cursors; see gap-analysis V1 / follow-up issue"). Serves as a regression anchor for when cursor-following is implemented.
MCP spec reference
MCP 2025-11-25 §"Pagination": tools/list supports cursor; servers MAY paginate. Clients must follow nextCursor.
Acceptance criteria
queryTools, queryResources, and queryPrompts should follow pagination cursors until exhausted
- The skipped test should be un-skipped and pass
- A backend exposing >1000 tools should return the complete set through vMCP
Context
While writing regression tests for the mcp-go → go-sdk migration (#5742), a pagination regression was discovered.
Finding
pkg/vmcp/client/client.goqueryTools(around line 700) does a singleListToolswithListToolsRequest{}— no cursor loop. The go-sdk paginatestools/listatDefaultPageSize=1000, so backends with >1000 tools are silently truncated.The same issue applies to
queryResourcesandqueryPrompts.Impact: vMCP servers aggregating backends with >1000 tools will silently drop tools beyond the first page. Non-cursor-following clients see an incomplete tool set.
Regression test coverage
TestRegression_Over1000Tools_CompleteSetReceivedintest/integration/vmcp/pagination_regression_test.go— skipped test witht.Skip("vMCP does not follow pagination cursors; see gap-analysis V1 / follow-up issue"). Serves as a regression anchor for when cursor-following is implemented.MCP spec reference
MCP 2025-11-25 §"Pagination":
tools/listsupportscursor; servers MAY paginate. Clients must follownextCursor.Acceptance criteria
queryTools,queryResources, andqueryPromptsshould follow pagination cursors until exhausted