Anyone who has written a long novel knows the question: did I establish this, or did I only plan it? Being able to search the setting notes and the manuscript separately answers that directly, and having both semantic and regex search means you can look for a phrase you remember exactly or an idea you only remember vaguely.
A writing-support server for long-form fiction. A project is a directory holding `novel.json`, a settings folder for character and world notes, and a contents folder for the manuscript itself. Both are indexed, and every search can be scoped to one or the other, which is the distinction that matters when you are asking whether a detail is established or merely drafted. A file watcher keeps the index current as you write.
- `search_novel_text` — full-text search across the project with regular expression support
- `search_rag` — semantic similarity search using multilingual-e5-small embeddings over Qdrant, with 384-dimension vectors and multilingual coverage
- A `fileType` parameter on both searches — `content` for manuscript only, `settings` for notes only, `both` by default
- `list_novel_projects` — enumerate the projects under the root you configured
- Reading and creating files: fetch the settings, the manuscript or the instruction files for a project, and add a new settings or content file
- Chunking with 20% overlap so a passage split across chunks keeps its context, and pre-filtering done inside Qdrant rather than after retrieval
Nothing — no account, no key. Node.js 20.0.0 or higher, plus Docker if you want semantic search; when `--qdrant-url` is not given the server starts Qdrant in Docker itself, and `--docker-enabled` turns that off. From a clone, `npm install` and `npm run build`, then point the client at `dist/index.js` with `--project-root` set to the directory holding your novels. When Qdrant is unavailable the server falls back with a detailed error rather than silently degrading.
