The Problem: RAG is too hard
I have a folder of 50+ PDFs—technical specs, old logs, and some… interesting declassified government documents.
I want to open Claude and ask: “What happened in the 1952 sightings?” and have it answer using my files.
The standard advice for this is a nightmare:
- Spin up a Docker container (Chroma/Qdrant).
- Write a Python script to parse PDFs (LangChain/LlamaIndex).
- Set up an API server to bridge it to the LLM.
People turned “Ctrl+F with semantics” into a distributed systems architecture.
The Solution: local-faiss-mcp
I got tired of the bloat, so I built local-faiss-mcp. It’s a CLI tool that runs 100% locally.
- No Docker: Just a Python script.
-
No API Keys: Uses local embeddings (
all-MiniLM-L6-v2) and FAISS. - MCP Native: Connects directly to Claude Desktop.
Here is how to set it up in 5 minutes.
Step 1: Get some “Cool” Data
To test a RAG system, you need real-world data. Let’s use the ODNI Preliminary Assessment on Unidentified Aerial Phenomena. It’s declassified, text-heavy, and full of weird military jargon—perfect for testing semantic search.
- Create a folder:
mkdir ~/ufo_docs - Download this PDF: ODNI Preliminary Assessment 2021 (PDF)
- (Optional) Throw in the CIA Simple Sabotage Manual just for chaos.
Step 2: Install the Tool
It’s a standard Python package.
pip install local-faiss-mcp
Step 3: Index the Docs (The Magic Part)
We used to have to write ingestion scripts. Now, we just use the CLI.
Run this command to recursively index your new UFO folder:
local-faiss index "~/ufo_docs/**/*.pdf"
You’ll see a progress bar as it:
- Reads the PDFs (using
pypdf). - Chunks the text.
- Calculates embeddings on your CPU.
- Saves a
.indexfile to your disk.
Done. You now have a vector database.
Step 4: Connect to Claude
Open your Claude Desktop config file:
-
Mac:
~/Library/Application Support/Claude/claude_desktop_config.json -
Windows:
%APPDATA%Claudeclaude_desktop_config.json
Add this block:
{
"mcpServers": {
"local-faiss": {
"command": "local-faiss-mcp",
"args": ["--index-dir", "~/ufo_docs"]
}
}
}
Restart Claude. You should see a little “plug” icon indicate two tools are loaded: ingest_document and query_rag_store.
Or use claude in the terminal directly.
Step 5: Ask Questions
Now for the fun part. Open Claude and ask:
“Using your local faiss knowledge: Does the Pentagon’s refusal to answer questions in the UAP Hearing count as ‘General Interference with Organizations’?”
Claude will:
- Call
query_rag_storewith your question. - The CLI will search your FAISS index and return the top N chunks.
- Claude will synthesize the answer with citations.
Advanced: Enabling “God Mode” (Re-ranking)
If your dataset is huge, standard vector search can sometimes be “fuzzy.” You might ask about “Project Mogul” and get results about “Project Grudge.”
In v0.2.0, I added Re-ranking. This uses a second, smarter model (CrossEncoder) to double-check the results before giving them to Claude.
Update your config to enable it:
"args": ["--index-dir", "~/ufo_docs", "--rerank"]
Now the accuracy is much better, running entirely on your laptop.
Summary
We don’t need Kubernetes to chat with a PDF. We just need a good CLI.
If you try this out with your own docs (or the UFO files!), let me know how the re-ranking performs for you.



