
Seu cursor de paginação MCP é uma fronteira de segurança
Um agente de IA raramente consome um grande resultado do PostgreSQL em uma única chamada.
Ele lê uma página, raciocina, chama outra ferramenta e volta.
Enquanto isso, as linhas mudam.
LIMIT/OFFSET descreve uma posição em uma lista em mudança. Inserções podem duplicar linhas entre páginas. Exclusões podem ignorá-las.
Para ferramentas MCP, use um conjunto de chaves determinísticas como:
ORDER BY created_at DESC, id DESC
Então retorne um cursor opaco vinculado a:
- os últimos valores de ordenação
- inquilino e ambiente
- hash de filtro normalizado
- versão de ordenação e consulta
- teto de tamanho da página
- regra de instantâneo
- expiração
O servidor deve rejeitar um cursor quando qualquer um desses escopos mudar.
Também documente a consistência. A próxima página reflete dados comprometidos ao vivo, um marco de alta capturado ou um resultado materializado de curta duração?
A paginação por conjunto de chaves previne a deriva de posição. Não cria magicamente um instantâneo entre chamadas de ferramentas separadas.
Cada página deve carregar has_more, contagem retornada, filtros, frescor ou tempo de instantâneo, estado de truncamento e um ID de rastreamento. Caso contrário, o modelo pode apresentar a página um como a resposta completa.
Finalmente, tente o mesmo cursor após um tempo limite. Ele deve produzir a mesma página lógica sob o contrato—não avançar ou reiniciar silenciosamente.
Guia de implementação completa: Servidor MCP para Postgres: faça da paginação um contrato de dados estável
A implementação de paginação estável é crucial para empresas que utilizam agentes de IA em suas operações. A segurança e a consistência dos dados são fundamentais para garantir que as informações apresentadas sejam precisas e confiáveis, especialmente em ambientes dinâmicos.
