Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

MCP tools/list fetched as a single page — tools beyond the first page are silently dropped

Open
#986 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
72/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
typescript
Domain
api

Research direction

Start in packages/opencode/src/mcp/index.ts and inspect both the standard client.listTools() path and listToolsLenient() request path, paying attention to nextCursor handling. Add a multi-page tools/list test that verifies tools from every page are collected and retained in the registered tool set and cache.

Written by the indexing model from the issue text.

Description

Summary

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 pathclient.listTools(). In @modelcontextprotocol/sdk@1.26.0 this issues a single request and does not loop over pagination:
    async listTools(params, options) {
      const result = await this.request({ method: 'tools/list', params }, ListToolsResultSchema, options);
      ...
    }
    
  • Lenient fallbacklistToolsLenient() 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.
Dominant language
TypeScript
Stars
813
Forks
134
Avg merge
2d 3h
Merged PRs (30d)
65

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from AltimateAI/altimate-code

All issues in AltimateAI/altimate-code

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.