What happened?
MCP startup only discovers the first tools/list page. A server can connect successfully while tools on later pages are missing. An enabled_tools entry naming only a second-page tool produces an empty catalog.
connectStepMcpServer calls listTools once and ignores nextCursor.
Steps to reproduce
- Serve a local HTTP MCP fixture: the first tools/list response contains tool_0 and nextCursor; the next page contains tool_1.
- Connect through connectStepMcpServer.
- Observe only one tools/list request and tool_0. The existing invokeRemoteMcpTool path correctly follows both pages against the same fixture.
The reproduction calls the production function directly without loading extensions.
Expected behavior
Collect every page before filtering and publishing the tools.
I have a small fix in my fork that reuses listAllMcpTools. Six new regression cases fail before the fix and pass afterwards; 33 focused tests and npm run check pass on Windows. Full Linux validation passed: build:offline, npm run check, and the complete isolated ./test.sh.
I'd like to submit the PR once approved with lgtm.
Version
Step Code 0.1.0, main @ cb5fc14; Node v24.14.0, Windows.
What happened?
MCP startup only discovers the first tools/list page. A server can connect successfully while tools on later pages are missing. An enabled_tools entry naming only a second-page tool produces an empty catalog.
connectStepMcpServer calls listTools once and ignores nextCursor.
Steps to reproduce
The reproduction calls the production function directly without loading extensions.
Expected behavior
Collect every page before filtering and publishing the tools.
I have a small fix in my fork that reuses listAllMcpTools. Six new regression cases fail before the fix and pass afterwards; 33 focused tests and npm run check pass on Windows. Full Linux validation passed: build:offline, npm run check, and the complete isolated ./test.sh.
I'd like to submit the PR once approved with lgtm.
Version
Step Code 0.1.0, main @ cb5fc14; Node v24.14.0, Windows.