{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"npm_npm-mcp-utilspagination","slug":"npm-mcp-utilspagination","name":"@mcp-utils/pagination","type":"mcp","url":"https://www.npmjs.com/package/@mcp-utils/pagination","page_url":"https://unfragile.ai/npm-mcp-utilspagination","categories":["mcp-servers","app-builders"],"tags":["mcp","pagination","cursor","vurb","mcp-server"],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"npm_npm-mcp-utilspagination__cap_0","uri":"capability://tool.use.integration.cursor.based.pagination.state.management.for.mcp.tool.responses","name":"cursor-based pagination state management for mcp tool responses","description":"Manages opaque cursor tokens that encode pagination state (offset, filters, sort order) without exposing internal implementation details to clients. Cursors are generated and validated server-side, allowing stateless pagination across MCP tool invocations while maintaining security and consistency. The implementation abstracts cursor encoding/decoding logic, enabling tools to focus on data retrieval rather than pagination mechanics.","intents":["I need to paginate large result sets from MCP tools without exposing database queries or internal state to clients","I want to provide stateless pagination where clients only pass opaque cursor tokens between requests","I need to ensure pagination cursors are tamper-proof and can't be manipulated by clients to access unauthorized data"],"best_for":["MCP server developers building tools that return large datasets (search results, database queries, API list endpoints)","teams implementing cursor-based pagination patterns in LLM agent tool ecosystems","builders needing secure, stateless pagination without session management"],"limitations":["Cursor tokens are opaque — clients cannot inspect or modify pagination state directly, limiting client-side optimization","Requires server-side state reconstruction on each request if using stateless cursor encoding, adding CPU overhead for large datasets","No built-in support for concurrent pagination streams — each cursor is independent, making it difficult to resume interrupted paginations"],"requires":["MCP server runtime (Node.js 18+ or compatible environment)","vurb framework as peer dependency for MCP integration","TypeScript or JavaScript environment for package consumption"],"input_types":["cursor token (string, opaque)","page size / limit (integer)","tool response data (structured, typically JSON)"],"output_types":["paginated response envelope (JSON with data array, next_cursor, has_more boolean)","cursor token (string, base64-encoded or encrypted)"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-mcp-utilspagination__cap_1","uri":"capability://data.processing.analysis.cursor.token.encoding.and.decoding.with.configurable.serialization","name":"cursor token encoding and decoding with configurable serialization","description":"Encodes pagination state (offset, filters, metadata) into opaque cursor tokens using configurable serialization strategies (JSON + base64, encryption, signed tokens). Decodes and validates cursors on subsequent requests, reconstructing pagination context. Supports custom serialization backends, allowing teams to choose between simple base64 encoding for development or encrypted/signed tokens for production security.","intents":["I need to serialize pagination state into a compact, URL-safe cursor token that clients can pass back","I want to encrypt or sign cursor tokens to prevent tampering while keeping them stateless","I need to customize cursor encoding (e.g., use JWT for distributed systems, base64 for simplicity)"],"best_for":["MCP server developers implementing cursor pagination with custom serialization requirements","teams needing signed/encrypted cursors for security-sensitive pagination (e.g., user-specific result sets)","builders prototyping pagination and wanting to swap serialization strategies without refactoring"],"limitations":["Serialization overhead — encoding/decoding cursors adds latency (~5-10ms per cursor operation depending on strategy)","No built-in compression — large pagination state objects result in long cursor tokens, potentially exceeding URL length limits","Encryption/signing requires key management — teams must handle key rotation and storage independently"],"requires":["Node.js 18+ with crypto module support (for signed/encrypted cursors)","vurb framework integration","optional: external key management service for production encryption"],"input_types":["pagination state object (JavaScript object with offset, filters, sort, etc.)","cursor token (string, base64 or encrypted)","serialization strategy configuration (enum or custom function)"],"output_types":["cursor token (string, URL-safe)","decoded pagination state (JavaScript object)"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-mcp-utilspagination__cap_2","uri":"capability://tool.use.integration.automatic.pagination.envelope.generation.for.mcp.tool.responses","name":"automatic pagination envelope generation for mcp tool responses","description":"Wraps tool response data in a standardized pagination envelope (data array, next_cursor, has_more flag, total_count metadata) that conforms to MCP response schema expectations. Automatically calculates pagination metadata (whether more results exist, next cursor value) based on result set size and limit, reducing boilerplate in tool implementations. Handles edge cases like empty results, final page detection, and cursor exhaustion.","intents":["I want to return paginated results from my MCP tool without manually constructing pagination metadata","I need to signal to clients whether more results are available and provide the next cursor in a standard format","I want to include total result count or other pagination metadata in responses without custom logic per tool"],"best_for":["MCP tool developers building list/search endpoints that return large datasets","teams standardizing pagination response format across multiple MCP tools","builders wanting to reduce pagination boilerplate and ensure consistent client-side pagination handling"],"limitations":["Assumes sequential pagination — does not support random access or jumping to arbitrary pages","Total count calculation may be expensive for large datasets — requires full result enumeration or separate count query","No built-in support for result filtering/sorting at pagination layer — must be handled by tool implementation"],"requires":["vurb MCP server framework","Node.js 18+","tool response data in array format (or convertible to array)"],"input_types":["tool response data (array of objects)","pagination parameters (limit, cursor)","optional: total count, sort order, filter metadata"],"output_types":["MCP-compliant pagination envelope (JSON with data, next_cursor, has_more, total_count)"],"categories":["tool-use-integration","data-processing-analysis"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-mcp-utilspagination__cap_3","uri":"capability://tool.use.integration.limit.and.offset.validation.with.configurable.constraints","name":"limit and offset validation with configurable constraints","description":"Validates pagination parameters (limit, offset, cursor) against configurable constraints (max page size, max offset, allowed cursor formats) before processing. Prevents abuse (e.g., requesting 1M results per page) and ensures pagination parameters conform to tool requirements. Supports per-tool configuration, allowing different tools to enforce different pagination limits based on data characteristics and performance budgets.","intents":["I need to prevent clients from requesting excessively large page sizes that would overload my MCP tool","I want to enforce maximum offset values to prevent scanning entire datasets inefficiently","I need different pagination limits for different tools (e.g., 100 results max for expensive queries, 1000 for cheap ones)"],"best_for":["MCP server developers protecting tools from pagination abuse and DoS attacks","teams with heterogeneous data sources requiring different pagination constraints per tool","builders implementing rate limiting and resource protection at the pagination layer"],"limitations":["Validation adds latency (~1-2ms per request) — may be noticeable in high-throughput scenarios","Constraints are static — no dynamic adjustment based on server load or resource availability","No built-in rate limiting — validation only checks parameter bounds, not request frequency"],"requires":["vurb MCP server framework","Node.js 18+","configuration object defining per-tool pagination constraints"],"input_types":["limit (integer)","offset (integer)","cursor (string, optional)","tool identifier (string, for per-tool constraint lookup)"],"output_types":["validation result (boolean or error object)","normalized pagination parameters (clamped to constraints)"],"categories":["tool-use-integration","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm_npm-mcp-utilspagination__cap_4","uri":"capability://data.processing.analysis.pagination.state.reconstruction.from.cursor.tokens","name":"pagination state reconstruction from cursor tokens","description":"Reconstructs complete pagination state (offset, filters, sort order, user context) from opaque cursor tokens, validating token integrity and ensuring reconstructed state matches the original request context. Handles cursor expiration, token versioning, and backward compatibility with older cursor formats. Enables stateless pagination by allowing servers to derive pagination context entirely from the cursor without maintaining session state.","intents":["I need to reconstruct pagination state from a cursor token without storing session data on the server","I want to validate that a cursor token hasn't been tampered with or expired before using it","I need to support multiple cursor token versions as my pagination schema evolves"],"best_for":["MCP server developers implementing stateless pagination across distributed systems","teams needing to validate cursor integrity without maintaining server-side session stores","builders evolving pagination schemas and requiring backward compatibility with older cursor formats"],"limitations":["Cursor validation requires cryptographic operations — adds ~5-10ms latency per request","No support for cursor revocation — once issued, a cursor remains valid until expiration","Token versioning adds complexity — requires careful schema migration planning as pagination logic evolves"],"requires":["vurb MCP server framework","Node.js 18+ with crypto support","cursor token (previously generated by encode function)","optional: cursor expiration configuration"],"input_types":["cursor token (string, base64 or encrypted)","optional: request context (user ID, tool ID, filters) for validation"],"output_types":["reconstructed pagination state (JavaScript object with offset, filters, etc.)","validation result (boolean or error details)"],"categories":["data-processing-analysis","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":29,"verified":false,"data_access_risk":"high","permissions":["MCP server runtime (Node.js 18+ or compatible environment)","vurb framework as peer dependency for MCP integration","TypeScript or JavaScript environment for package consumption","Node.js 18+ with crypto module support (for signed/encrypted cursors)","vurb framework integration","optional: external key management service for production encryption","vurb MCP server framework","Node.js 18+","tool response data in array format (or convertible to array)","configuration object defining per-tool pagination constraints"],"failure_modes":["Cursor tokens are opaque — clients cannot inspect or modify pagination state directly, limiting client-side optimization","Requires server-side state reconstruction on each request if using stateless cursor encoding, adding CPU overhead for large datasets","No built-in support for concurrent pagination streams — each cursor is independent, making it difficult to resume interrupted paginations","Serialization overhead — encoding/decoding cursors adds latency (~5-10ms per cursor operation depending on strategy)","No built-in compression — large pagination state objects result in long cursor tokens, potentially exceeding URL length limits","Encryption/signing requires key management — teams must handle key rotation and storage independently","Assumes sequential pagination — does not support random access or jumping to arbitrary pages","Total count calculation may be expensive for large datasets — requires full result enumeration or separate count query","No built-in support for result filtering/sorting at pagination layer — must be handled by tool implementation","Validation adds latency (~1-2ms per request) — may be noticeable in high-throughput scenarios","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.05,"quality":0.2,"ecosystem":0.55,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:23.904Z","last_scraped_at":"2026-04-22T08:11:33.540Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=npm-mcp-utilspagination","compare_url":"https://unfragile.ai/compare?artifact=npm-mcp-utilspagination"}},"signature":"LejSoFURxrb58EdcFnOZMaUP3dnd9s9hHiKOdi1q6XP7J6IBlHftOcoqZmB/YE6DLc6tPlWnR+Rbp0wmdw+PCA==","signedAt":"2026-06-18T20:35:18.083Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/npm-mcp-utilspagination","artifact":"https://unfragile.ai/npm-mcp-utilspagination","verify":"https://unfragile.ai/api/v1/verify?slug=npm-mcp-utilspagination","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}