Two tables rather than one: summaries to work out where to look, chunks to answer from. That two-step is what keeps a large folder answerable without pushing the whole corpus through the model's context window.
A Node MCP server over a local LanceDB index of documents you hold on disk. A seed script builds two tables — a catalog of document summaries and a table of vectorised chunks — and the server searches both, so a question can be about the collection as a whole or about one document.
- Document-level search over the summary catalog, for questions about what the collection contains
- Chunk search scoped to the documents the catalog turned up
- Chunk search across every document at once, for when you do not know where the answer lives
- The index stays on disk on your machine; paired with a local model, nothing goes to the cloud
- Lookups made per question, so the model spends context on what it needs rather than on the corpus
Node.js 18+ and npx, plus a local directory to hold the index, passed to the server as its argument. Seeding needs a summarisation model and an embedding model, pulled from Ollama first. The seed script takes the index directory and the documents directory, and can be re-run to rebuild the index from scratch.
One command — npx lance-mcp PATH_TO_LOCAL_INDEX_DIR
