6030ca8cea
Port from anomalyco/opencode#35439/#35500: preserve full MCP catalogs across paginated tools/list responses. The MCP spec allows servers to paginate tools/list, resources/list, and prompts/list via an opaque nextCursor token. The Python SDK's ClientSession.list_* methods fetch exactly one page per call, and hermes never passed the cursor back — on a paginated server every tool, resource, and prompt past page 1 was silently invisible to the agent. Adds _paginate_full_list() (cursor-draining helper with a 50-page runaway cap and spec-correct opaque-string cursor validation) and applies it at all three discovery sites: _discover_tools(), the tools/list_changed refresh handler, and the list_resources/list_prompts utility handlers. The keepalive probe intentionally keeps its single-page call (liveness only). E2E: real stdio MCP server serving 3 pages (2/1/1 tools) — old code discovered 2 tools, new code discovers all 4.