Sifter - Turn a folder of documents into typed records you can query
@sifter-ai
Sifter extracts structured, typed records from your documents (PDFs, scans, contracts, invoices) using a natural-language field spec, then lets an agent query and aggregate them — exact counts, sums, filters, with citations back to the source page. Unlike RAG, it answers collecti
Overview
What is Sifter?
Sifter is an MCP server that converts a folder of documents into a queryable database of typed records. It extracts structured data (e.g., from invoices, contracts, receipts) using natural language schema definitions, then enables agents to query and aggregate over the entire collection with every value cited back to its source document, page, and bounding box.
How to use Sifter?
Connect via an MCP client configuration: remote (hosted endpoint with Bearer API key) or local (self-hosted using uvx sifter-mcp and docker compose up -d). Once connected, use the server’s tools to create a sift (define extraction fields in plain language), upload documents (PDFs, scans, images, etc.), and then list, filter, or aggregate records with full citations.
Key features of Sifter
- Extract typed records from any document using natural language
- Query and aggregate over all records with exact answers
- Every value cited back to source page and bounding box
- Supports PDFs, scans, images, contracts, receipts, invoices
- Self-host locally for free with your own model (MIT license)
- Connect via hosted endpoint or local Docker deployment
Use cases of Sifter
- Aggregate invoice totals per client for financial reporting
- Identify unpaid invoices and amounts across all documents
- Find contracts expiring within a specific timeframe
- Query all documents for exact counts and filtered lists
- Extract structured data from scanned receipts or contracts
FAQ from Sifter
How is Sifter different from RAG?
RAG excels at finding passages but cannot answer aggregations like counts, sums, or group-bys across a document collection. Sifter extracts every document into typed records so you can query the whole set and get exact, traceable answers.
What do I need to run Sifter locally?
You need Docker (to run