Private, local search over your own files, by meaning and keywords, with secrets redacted.
Runs on your machine from its package; the steps are below.
At most: only reads or looks up information.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx lanternkb
MCP client config
{
"mcpServers": {
"lanternkb": {
"command": "uvx",
"args": [
"lanternkb"
]
}
}
}Private, local search over your own files, for you and the AI tools you choose.
lanternkb indexes the folders you pick and searches them by meaning and by exact words. It runs as a local MCP server for Claude Code and other assistants, with no daemon, no open port and no telemetry. Secrets it detects are redacted before anything is stored, and you decide which folders an assistant that sends results to the cloud may see.
macOS 14 or later on Apple silicon, or Linux, with uv:
uv tool install --managed-python --python 3.12 "lanternkb[embed,ui]"
lanternkb setup # asks for folders and whether an assistant may see them, offers the models, indexes
--python 3.12 matters: without it uv may pick an older Python already on the machine, and the install fails.
The install takes about 0.9 GB on macOS, plus about 1.2 GB for the embedding model. uv tool upgrade lanternkb
updates it.
lanternkb search "what did the plumber say about the boiler"
lanternkb search "boiler quote" --type pdf,docx --since 30d
lanternkb recent # files changed lately
lanternkb ui # the settings page, with a search box
lanternkb doctor # checks the setup and says what to fix
Run lanternkb setup before connecting an assistant: the server searches the folders you chose there.
Claude Code:
lanternkb mcp-setup prints a claude mcp add command. Run it.mcp-setup prints deny rules too. Add them to
~/.claude/settings.json to keep its tools away from your local-only folders and the index.Codex, Cursor, VS Code, Gemini CLI and any other MCP client: run lanternkb serve --tier open as a stdio
server. For Codex, in ~/.codex/config.toml:
[mcp_servers.lanternkb]
command = "lanternkb"
args = ["serve", "--tier", "open"]
The user guide has the JSON form the other clients take, and what to watch for.
Notes, code, PDFs, Word and OpenDocument files, rich text, saved web pages and subtitles; scanned pages and audio optionally. Plugins can add file types, embedding models and rules for which folder is open (plugins).
open or local-only, and new folders are local-only.sandbox-exec on macOS, Landlock and
seccomp on Linux.The threat model says what is protected and what is not.
Tested on a synthetic set of files (three open-source code bases and 654 generated notes) with 330 held-out questions: nDCG@10 0.831, against 0.777 for grooveseek with its reranker and 0.760 for QMD, at about 30 ms a search (about 120 ms with reranking, on an M5 Max). On the hardest held-out test of planted fake secrets, the scanner kept 71.9% out of the index, so treat it as a second line of defence: keep credential folders out of indexed folders, or local-only.
example, changeme, a
<placeholder>, a ${VARIABLE}) are left alone.Apache-2.0: see LICENSE, NOTICE and THIRD_PARTY_NOTICES.md.