On the author's 558-document dev-docs corpus with 25 hand-written queries, Hit@5 is 0.92 and nDCG@10 is 0.87; on the public BEIR SciFact benchmark nDCG@10 is 0.671. More telling: reranking is off by default because the bundled cross-encoder measured 27 points of nDCG@10 worse on dev docs, and the README says so with a link to the experiment. The eval harness is a command you can run on your own corpus rather than a number you have to take on faith.
A self-hosted docs search server. You ingest directories, git commit history or crawled websites into SQLite or PostgreSQL, and the agent queries that index rather than pulling entire files into context. Embeddings run locally through ONNX, so semantic search needs no API key.
- 9 tools and 3 resources over MCP
- search_docs searches by keyword or by hybrid keyword-plus-semantic ranking, returning ranked excerpts with matched terms wrapped in mark tags
- get_doc returns a full document by path; get_related walks the link graph with multi-hop depth and relation-type filtering
- search_git_history searches indexed commit messages, so the agent can find out why something was built
- get_context returns a usage-weighted summary of what matters most, ranked by how often documents have actually been read
- get_graph_stats reports orphans, hubs and relation distribution across the corpus
- upsert_doc, delete_doc and update_metadata write back — gated behind GNOSIS_MCP_WRITABLE
- Resources at gnosis://docs, gnosis://docs/{path} and gnosis://categories expose the corpus directly
The Python package gnosis-mcp, version 0.14.1, installed with pip or uv and started as `gnosis-mcp serve`; a container image and uvx also work. Nothing else is required — SQLite is created automatically. Semantic search needs the embeddings extra, which downloads a 23MB local model on first run. PostgreSQL is selected by setting GNOSIS_MCP_DATABASE_URL, and write tools stay off until GNOSIS_MCP_WRITABLE is true.
One command — pip install gnosis-mcp
