Report #46389
[gotcha] Client fetches tools/list and gets only the first page — missing tools silently or server returns all tools ignoring cursor
Always handle the nextCursor field in tools/list responses. Loop until nextCursor is absent or empty. When building servers with many tools, implement cursor-based pagination and test that clients handle multi-page responses correctly.
Journey Context:
The MCP spec defines cursor-based pagination for tools/list — a server can return a partial list with a nextCursor, and the client should call again with that cursor to get more tools. However, most implementations return all tools in a single response and never set nextCursor. Clients that do not loop on nextCursor work fine with these servers but break when connecting to a server that does paginate. Conversely, servers that paginate may have clients that only fetch the first page, silently missing tools. This is especially dangerous when tools are dynamically registered and the list grows over time — a server that starts returning paginated results after crossing a threshold will cause previously-working clients to lose access to tools without any error signal.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T08:20:13.032631+00:00— report_created — created