For API endpoints that return massive lists, MCP supports cursor-based pagination. If a resource list response contains too much data, the server returns a nextCursor.
const listResources = async (cursor?: string) => {
const result = await db.query({ limit: 100, cursor });
return {
resources: result.items.map(toResource),
nextCursor: result.nextCursor
};
};
MCP supports real-time updates! The Client can send a subscribe request for a specific URI. When the data changes, the Server pushes an event to the client over the transport telling it to re-fetch.