Zero-config MCP server for searchable documentation (SQLite default, PostgreSQL optional)
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
claude mcp add gnosis-mcp -- uvx gnosis-mcp{
"mcpServers": {
"gnosis-mcp": {
"command": "uvx",
"args": ["gnosis-mcp"]
}
}
}MCP Servers overview
<!-- mcp-name: io.github.nicholasglazer/gnosis -->
<div align="center">
<h1>Gnosis MCP</h1>
<p><strong>Stop pasting files into context. Your AI agent searches your local docs instead.<br>5–10× fewer tokens per lookup. 92 % Hit@5 on real dev docs. Zero cloud dependencies.</strong></p>
<p>
<a href="https://pypi.org/project/gnosis-mcp/"><img src="https://img.shields.io/pypi/v/gnosis-mcp?color=blue" alt="PyPI"></a>
<a href="https://pypi.org/project/gnosis-mcp/"><img src="https://img.shields.io/pypi/dm/gnosis-mcp?color=green" alt="Downloads"></a>
<a href="https://pypi.org/project/gnosis-mcp/"><img src="https://img.shields.io/pypi/pyversions/gnosis-mcp" alt="Python"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green" alt="MIT License"></a>
<a href="https://github.com/nicholasglazer/gnosis-mcp/actions"><img src="https://github.com/nicholasglazer/gnosis-mcp/actions/workflows/publish.yml/badge.svg" alt="CI"></a>
</p>
<p>
<a href="#quick-start">Quick Start</a> ·
<a href="#git-history">Git History</a> ·
<a href="#web-crawl">Web Crawl</a> ·
<a href="#backends">Backends</a> ·
<a href="#editor-integrations">Editors</a> ·
<a href="#tools--resources">Tools</a> ·
<a href="#embeddings">Embeddings</a> ·
<a href="llms-full.txt">Full Reference</a>
</p>
<a href="#quick-start"><img src="https://raw.githubusercontent.com/nicholasglazer/gnosis-mcp/main/demo/demo-hero.gif" alt="Gnosis MCP — ingest docs, search, view stats, serve" width="700"></a>
<br>
<sub>Ingest docs → Search with highlights → Stats overview → Serve to AI agents</sub>
</div>
---
### Without a docs server
- LLMs hallucinate API signatures that don't exist
- Entire files dumped into context — 3,000–15,000 tokens per doc
- Architecture decisions buried across dozens of files
- Every repeated lookup pays full context cost
### With Gnosis MCP
- `search_docs` returns ranked, highlighted excerpts — typically 300–800 tokens
- Real answers grounded in your actual docs, not guesses from training data
- One local index across hundreds of files — instant multi-doc search
- **5–10× token savings** per lookup when your corpus covers the question
---
## What makes gnosis-mcp different
- **Your data stays on your machine.** SQLite by default, PostgreSQL at scale — nothing leaves the host.
- **Index anything that's docs-shaped.** Markdown, git commit history, crawled websites — one index, one search API.
- **Measured, not marketed.** Ships BEIR SciFact numbers (0.671 nDCG@10 — within 1 % of the Lucene BM25 baseline), a reproducible eval harness (`gnosis-mcp eval`), and a chunk-size sweep showing where the quality plateau actually sits.
Full side-by-side vs Context7 / docs-mcp-server / mcp-local-rag: [gnosismcp.com#compare](https://gnosismcp.com/#compare).
---
## Features
- **Zero config** — SQLite by default, `pip install` and go
- **Hybrid search** — keyword (BM25) + semantic (local ONNX embeddings, no API key). Tune RRF fusion with `GNOSIS_MCP_RRF_K`.
- **Cross-encoder reranking** — optional `[reranking]` extra with a 22M-param ONNX model. Off by default. **[Test on your own corpus before enabling](docs/bench-experiments-2026-04-18.md)** — the bundled MS-MARCO reranker hurts dev-doc retrieval in our measurements.
- **Git history** — ingest commit messages as searchable context (`ingest-git`)
- **Web crawl** — ingest documentation from any website via sitemap or link crawl
- **Multi-format** — `.md` `.txt` `.ipynb` `.toml` `.csv` `.json` + optional `.rst` `.pdf`
- **Auto-linking** — `relates_to` frontmatter creates a navigable document graph
- **Watch mode** — auto-re-ingest on file changes
- **Prune stale docs** — `gnosis-mcp ingest --prune` removes chunks whose source file was deleted. `--wipe` for a full reset before re-ingest.
- **Built-in eval harness** — `gnosis-mcp eval` prints Hit@K / MRR / Precision@K in one command
- **PostgreSQL ready** — pgvector + tsvector when you need scale
## Performance
**Fast.** 8.7 ms mean MCP round-trip. Hybrid search p50 < 30 ms on a 700-doc corpus. Keyword QPS scales from 9,463 @ 100 docs to 471 @ 10,000 docs ([full numbers](https://gnosismcp.com/#numbers)).
**Finds the right answer.** On 558 real dev docs with 25 hand-written golden queries: Hit@5 = **0.92**, nDCG@10 = **0.87**, MRR = **0.79**. On BEIR SciFact (5,183 docs, public retrieval benchmark): nDCG@10 = **0.671** — within 1 % of the Lucene BM25 baseline.
**Tokens saved.** Each `search_docs` call returns 200–500 tokens of on-point snippets instead of the 3,000–15,000 tokens a full-file Read would have cost. Track your own with `gnosis-mcp savings` (v0.12.0+) — the ledger writes to `search_access_log` on every call and aggregates per tool per `--days N`:
```
$ gnosis-mcp savings --days 7
Tool calls: 142
Tokens returned: 7,104
Tokens baseline: 231,580
Tokens saved: 224,476
Ratio: 32.6×
```
Typical compression runs 10–60× depending on corpus coverage and query specificity — verify on yours. `access_log` is on by default; `GNOSIS_MCP_ACCESS_LOG=false` opts out.
**Reproducible.** `gnosis-mcp eval` runs a RAG eval harness locally in one second. `tests/bench/*.py` reproduce every number. Methodology: [`docs/benchmarks.md`](docs/benchmarks.md).
**Rerankers stay off by default.** The bundled MS-MARCO cross-encoder drops nDCG@10 by 27 points on dev-docs and adds 400× latency; BGE-reranker-v2-m3 drops it 31 points at 2400×. Test on your corpus before enabling — full write-up: [bench-experiments-2026-04-18](docs/bench-experiments-2026-04-18.md).
## Quick Start
```bash
pip install gnosis-mcp # or: uv tool install gnosis-mcp
gnosis-mcp ingest ./docs/ # loads docs into SQLite (auto-created)
gnosis-mcp serve # starts MCP server
```
That's it. Your AI agent can now search your docs.
**Connect your editor** — see [`llms-install.md`](llms-install.md) for copy-paste JSON snippets for Claude Code, Claude Desktop, Cursor, Windsurf, VS Code, JetBrains, and Cline.
**Re-organized your docs?** `gnosis-mcp ingest ./docs --prune` re-ingests and removes any DB chunk whose source file no longer exists. `--wipe` resets the entire index first. Or run `gnosis-mcp prune ./docs --dry-run` to preview what would be deleted.
**Want semantic search?** Add local embeddings — no API key needed:
```bash
pip install gnosis-mcp[embeddings]
gnosis-mcp ingest ./docs/ --embed # ingest + embed in one step
gnosis-mcp serve # hybrid search auto-activated
```
Test it before connecting to an editor:
```bash
gnosis-mcp search "getting started" # keyword search
gnosis-mcp search "how does auth work" --embed # hybrid semantic+keyword
gnosis-mcp stats # see what was indexed
```
<details>
<summary>Run with Docker (zero install)</summary>
Multi-arch image, ~140 MB, ships with local ONNX embeddings + REST:
```bash
# Serve your ./docs on http://localhost:8000 — MCP at /mcp, REST at /api/*
docker run -p 8000:8000 \
-v "$PWD/docs:/docs:ro" -v gnosis-data:/data \
ghcr.io/nicholasglazer/gnosis-mcp:latest
# First-run: ingest into the persistent volume
docker run --rm \
-v "$PWD/docs:/docs:ro" -v gnosis-data:/data \
ghcr.io/nicholasglazer/gnosis-mcp:latest \
ingest /docs --embed
```
Or use the committed [`docker-compose.yaml`](docker-compose.yaml):
```bash
docker compose up -d
docker compose exec gnosis gnosis-mcp ingest /docs --embed
```
Images tagged `:latest`, `:<version>`, `:<version-minor>`, `:main`, `:sha-<sha>`.
</details>
<details>
<summary>Try without installing (uvx)</summary>
```bash
uvx gnosis-mcp ingest ./docs/
uvx gnosis-mcp serve
```
</details>
## Web Crawl
<div align="center">
<img src="https://raw.githubusercontent.com/nicholasglazer/gnosis-mcp/main/demo/demo-crawl.gif" alt="Gnosis MCP — crawl docs with dry-run, fetch, search, SSRF protection" width="700">
<br>
<sub>Dry-run discovery → Crawl & ingest → Search crawled docs → SSRF protection</sub>
</div>
<br>
Ingest docs from any website — no local files needed:
```bash
pip install gnosis-mcp[web]
# Crawl via sitemap (best for large doc sites)
gnosis-mcp crawl https://docs.stripe.com/ --sitemap
# Depth-limited link crawl with URL filter
gnosis-mcp crawl https://fastapi.tiangolo.com/ --depth 2 --include "/tutorial/*"
# Preview what would be crawled
gnosis-mcp crawl https://docs.python.org/ --dry-run
# Force re-crawl + embed for semantic search
gnosis-mcp crawl https://docs.sveltekit.dev/ --sitemap --force --embed
```
Respects `robots.txt`, caches with ETag/Last-Modified for incremental re-crawl, and rate-limits requests (5 concurrent, 0.2s delay). Crawled pages use the URL as the document path and hostname as the category — searchable like any other doc.
## Git History
Turn commit messages into searchable context — your agent learns *why* things were built, not just *what* exists:
```bash
gnosis-mcp ingest-git . # current repo, all files
gnosis-mcp ingest-git /path/to/repo --since 6m # last 6 months only
gnosis-mcp ingest-git . --include "src/*" --max-commits 5 # filtered + limited
gnosis-mcp ingest-git . --dry-run # preview without ingesting
gnosis-mcp ingest-git . --embed # embed for semantic search
```
Each file's commit history becomes a searchable markdown document stored as `git-history/<file-path>`. The agent finds it via `search_docs` like any other doc — no new tools needed. Incremental re-ingest skips files with unchanged history.
## Editor Integrations
Add the server config to your editor — your AI agent gets `search_docs`, `get_doc`, and `get_related` tools automatically:
```json
{
"mcpServers": {
"docs": {
"command": "gnosis-mcp",
"args": ["serve"]
}
}
}
```
| Editor | Config file |
|--------|------What people ask about gnosis-mcp
What is nicholasglazer/gnosis-mcp?
+
nicholasglazer/gnosis-mcp is mcp servers for the Claude AI ecosystem. Zero-config MCP server for searchable documentation (SQLite default, PostgreSQL optional) It has 27 GitHub stars and its last recorded update is dated 2026-08-20.
How do I install gnosis-mcp?
+
You can install gnosis-mcp by cloning the repository (https://github.com/nicholasglazer/gnosis-mcp) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is nicholasglazer/gnosis-mcp safe to use?
+
Our security agent has analyzed nicholasglazer/gnosis-mcp and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains nicholasglazer/gnosis-mcp?
+
nicholasglazer/gnosis-mcp is maintained by nicholasglazer. The last recorded GitHub activity is dated 2026-08-20, with 2 open issues.
Are there alternatives to gnosis-mcp?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy gnosis-mcp to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/nicholasglazer-gnosis-mcp)<a href="https://claudewave.com/repo/nicholasglazer-gnosis-mcp"><img src="https://claudewave.com/api/badge/nicholasglazer-gnosis-mcp" alt="Featured on ClaudeWave: nicholasglazer/gnosis-mcp" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
The fastest path to AI-powered full stack observability, even for lean teams.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!