You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
MCP tools/list fetched as a single page — tools beyond the first page are silently dropped #986
The MCP client retrieves a server's tool list with a single tools/list request and never follows the nextCursor pagination marker. Any server that paginates its tool catalog will have every tool past the first page silently omitted — no error, no warning.
Details
Two code paths are affected, both in packages/opencode/src/mcp/index.ts:
Standard path — client.listTools(). In @modelcontextprotocol/sdk@1.26.0 this issues a single request and does not loop over pagination:
Lenient fallback — listToolsLenient() calls client.request({ method: "tools/list", params: {} }, ...), a single request that ignores nextCursor even though LenientListToolsResultSchema models that field.
Because neither path advances the cursor, tools beyond the first page are dropped from the registered tool set and from the tool-list cache.
Impact
Minor→Medium. Only affects servers whose tool catalog is large enough to paginate; most servers return all tools in one page. When it does occur, the failure is silent — affected tools simply never appear.
Suggested fix
Loop on nextCursor, concatenating tools, in both the standard and lenient paths before returning/caching.
Add a test with a multi-page tools/list response to verify all pages are collected.
Closing as fixed on main: MCP tools/list is now paginated with cursor following and duplicate-cursor / page-limit guards (mcp/catalog.ts). Please reopen if you still see this on v0.12.9 or later.
Activity
anandgupta42 commentedon Nov 5, 2026
Closing as fixed on
main: MCPtools/listis now paginated with cursor following and duplicate-cursor / page-limit guards (mcp/catalog.ts). Please reopen if you still see this on v0.12.9 or later.