Skip to content

mcp: list_resources has no pagination — large workspaces may exceed transport buffers #133

@bug-ops

Description

@bug-ops

Description

list_resources returns all tracked documents in a single response with no pagination. For large workspaces with many open files, this can produce a response exceeding MCP transport buffer limits (especially over stdio).

The _request: Option<PaginatedRequestParams> parameter is already accepted but ignored.

Expected Behavior

When max_documents (or a configurable page size) is exceeded, list_resources should return a cursor-based paginated response using the next_cursor field of ListResourcesResult.

Actual Behavior

All resources are returned in one shot regardless of count. No cursor is ever set.

Environment

  • Version: 0.3.6
  • Marked in source as TODO(critic-S5) in crates/mcpls-core/src/mcp/server.rs:551

Logs / Evidence

// TODO(critic-S5): paginate when max_documents == 0 (unlimited mode can produce
// very large single-page responses that may exceed transport buffers).

Notes

The PaginatedRequestParams from rmcp already carries a cursor field — implementation would use it to slice open_paths() output and emit next_cursor when more pages remain.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Low: cosmetic, edge case unlikely in practiceenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions