Where does the bug appear (feature/product)?
Cursor IDE
Describe the Bug
When an MCP server returns tools/list using MCP cursor pagination (nextCursor), Cursor registers only the first page and never fetches subsequent pages. With a server exposing 14 tools across 2 pages (page size 8), Cursor shows only 8; the 6 tools on page 2 are absent from the agent and from Settings → Tools & MCP (“8 tools enabled”). It persists across full restarts and isn’t fixed by toggling the server.
Steps to Reproduce
- Configure a stdio MCP server whose tools/list is cursor-paginated and returns more tools than one page — e.g. codebase-memory-mcp v0.9.0 (public: GitHub - DeusData/codebase-memory-mcp: High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies. · GitHub), which returns 14 tools in pages of 8.
- Connect it in Cursor → Settings → Tools & MCP. Only 8 tools are listed.
- Confirm the server actually offers 14 by querying it directly over stdio:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
'{"jsonrpc":"2.0","id":3,"method":"tools/list","params":{"cursor":"8"}}' \
| codebase-memory-mcp
or on Windows PowerShell:
$env:CBM_CACHE_DIR = Join-Path $env:TEMP "cbm-probe" # throwaway store; leaves your real data untouched
@'
{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"0"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}
{"jsonrpc":"2.0","id":3,"method":"tools/list","params":{"cursor":"8"}}
'@ | & "$env:USERPROFILE\.local\bin\codebase-memory-mcp.exe" --ui=false
Remove-Item Env:\CBM_CACHE_DIR
→ id 2 returns 8 tools + “nextCursor”:“8”; id 3 ({“cursor”:“8”}) returns the remaining 6 with no nextCursor. Total = 14. Cursor never issues the second (cursor) request. Server-side detail + full evidence: DeusData/codebase-memory-mcp#971.
Expected Behavior
Per the MCP spec, list operations paginate via cursor/nextCursor; the client should keep calling tools/list with the returned cursor until nextCursor is absent, aggregating all pages. Cursor should register all 14 tools.
Operating System
Windows 10/11
Version Information
Version: 3.10.20 (user setup)
VS Code Extension API: 1.125.0
Commit: 23b9fb205fe595ea2be29da7214e19762d037fc0
Date: 2026-07-07T07:03:33.071Z
Layout: IDE
Build Type: Stable
Release Track: Default
Electron: 40.10.3
Chromium: 144.0.7559.236
Node.js: 24.15.0
V8: 14.4.258.32-electron.0
xterm.js: 6.1.0-beta.256
OS: Windows_NT x64 10.0.26200
Additional Information
- Querying the server directly returns all 14 across 2 pages; only Cursor truncates to page 1.
- Cursor’s cached descriptors under ~/.cursor/projects//mcps//tools/ contain exactly the 8 page-1 tools.
- All 8 shown are enabled (not user-disabled); a full restart doesn’t change it.
Does this stop you from using Cursor
No - Cursor works, but with this issue