MCP-style live lookups are structurally incapable of aggregation queries across large datasets; the distinction is between scoped single-entity lookups ("why was customer A upset last week?") which a single tool call can satisfy, and set-level queries ("which customers were upset last week?") which require a synced, vectorized local cache because live pagination/timeouts make them infeasible.
It defines the exact boundary where tool-calling architectures break and a persistence/sync layer becomes mandatory, rather than a nice-to-have. Engineers wiring agents to SaaS APIs via MCP will hit this on any fleet-wide or historical query.
Any read-only tool-call abstraction over a paginated external API fails on aggregate or cross-entity queries; a mirrored, indexed store is required for the set-level query class.
Live lookup methodology in platforms like MCP does not support live aggregation across vast datasets.
Asking 'Why was customer A upset last week?' vs 'Which customers were upset last week?'
Simple MCP server connections are not enough for complex semantic queries across large company data sets.