
Gnosis MCP
io.github.nicholasglazer由 GitHub 帳號 nicholasglazer 發布v0.17.5更新於 Oct 25, 2026
Zero-config MCP server for searchable documentation. SQLite or PostgreSQL.
概覽
一個在本機執行、零設定的 MCP 伺服器,把你自己的文件索引到 SQLite 或 PostgreSQL,讓助理搜尋文件而不是整份讀取檔案。
- 可以做什麼
- 以關鍵字或語意加關鍵字的混合方式搜尋文件,回傳附有標示的摘錄並統計節省的 token。依路徑取得完整文件、沿關聯與連結尋找相關文件,並檢視知識圖譜統計。搜尋已索引的 git 提交歷史,取得依使用頻率加權的脈絡摘要。僅在開啟寫入模式時建立、取代、刪除文件並修改其中繼資料。
- 適用情境
- 適合助理需要反覆從本機文件庫(例如 API 參考、架構說明或專案文件)找答案,並希望得到有依據、比貼上檔案更省 token 的回覆。也適合想對 git 歷史或爬取的說明網站做檢索的團隊。
- 執行需求
- 以本機 Python 程序執行,可從 PyPI 安裝(pip 或 uvx),也可使用 Docker 映像。預設使用 SQLite,無需設定;PostgreSQL 搭配 pgvector 為選項。關鍵字搜尋需要 SQLite FTS5。語意搜尋需要選用的 embeddings 附加元件;本機 ONNX 模型首次執行時下載,OpenAI 等遠端供應商需要 GNOSIS_MCP_EMBED_API_KEY。設定透過 GNOSIS_MCP_* 環境變數完成。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Gnosis MCP,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Gnosis MCP
Stop pasting files into context. Your AI agent searches your local docs instead.
5–10× fewer tokens per lookup. 92 % Hit@5 on real dev docs. Zero cloud dependencies.
[PyPI] [Downloads] [Python] [MIT License] [CI]
Quick Start · Documentation · Tools · Configuration · Full Reference
[Gnosis MCP — ingest docs, search, view stats, serve]
Ingest docs → Search with highlights → Stats overview → Serve to AI agents
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_docsreturns 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.
Features
- Zero config — SQLite by default,
pip installand 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 — 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_tofrontmatter creates a navigable document graph - Watch mode — auto-re-ingest on file changes
- Prune stale docs —
gnosis-mcp ingest --pruneremoves chunks whose source file was deleted.--wipefor a full reset before re-ingest. - Built-in eval harness —
gnosis-mcp evalprints Hit@K / MRR / Precision@K in one command, against a bundled fixed fixture set - 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).
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:
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.
The same ledger answers the other question — what is this corpus being asked, and where does it come up empty — with gnosis-mcp usage (v0.17.4+): calls, the queries that matched nothing, which documents are served most, which have never been served, and which clients are doing the asking.
Reproducible. gnosis-mcp eval runs a bundled retrieval-quality harness locally in one second — but it ingests nine hardcoded sample documents into a temporary database and answers ten bundled queries, so it returns the same numbers for every corpus and is a smoke test, not a measurement of your docs. To score your own corpus, run python tests/bench/bench_real_corpus.py --corpus <docs-root> --golden <golden.jsonl> (the numbers above come from tests/bench/golden-knowledge.jsonl). tests/bench/*.py reproduce every number. Methodology: 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.
Quick Start
That's it. Your AI agent can now search your docs.
Connect your client — see llms-install.md for copy-paste JSON snippets for Claude Code, Claude Desktop, Cursor, Zed, opencode, Windsurf, VS Code, JetBrains, Cline, and any other MCP client.
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. Pruning only touches documents this root is responsible for: crawled URLs and generated documents (git history) are left alone unless --include-crawled / --include-generated says otherwise.
Want semantic search? Add local embeddings — no API key needed:
Test it before connecting to an editor:
Then wire it into the clients you actually use — one command, no paths to edit:
setup resolves the command path for the machine it runs on instead of the one the README
assumed, and each block it installs is marker-delimited so re-running rewrites it in place. Where
a client does not read the server's own MCP instructions, it also installs the short rule that
gives the agent a reason to prefer gnosis over reading files — a mounted server nobody calls is
the silent failure mode. doctor is the check for that: it reads the access log and tells you
whether a client has really called the server. Details:
docs/cli.md.
gnosis-mcp check is the gate: it exits 0 only when the backend started and the schema the
server needs is present, and it names whatever is missing before exiting 1. Keyword search needs
SQLite FTS5, which is compiled into your Python's SQLite rather than guaranteed by it — check
reports it as FTS5: ready. Anything else: docs/troubleshooting.md.
Run with Docker (zero install)
Multi-arch image, ~140 MB, ships with local ONNX embeddings + REST:
Or use the committed docker-compose.yaml:
Images tagged :latest, :<version>, :<version-minor>, :main, :sha-<sha>. Production
recipes — systemd, reverse proxy, security checklist, upgrades — are in
docs/deployment.md.
Try without installing (uvx)
Documentation
Canonical index — every topic is one hop away: docs/overview.md.
The handful most readers need:
- Install & client setup — every editor's copy-paste config, Windows paths, write mode, embeddings
- CLI — every subcommand and flag
- Configuration — all
GNOSIS_MCP_*env vars - MCP tools & resources — what your agent can call, and what each returns
- Deployment — Docker, systemd, reverse proxy, security checklist
- Troubleshooting — first-run failures and how to recover
- Benchmarks — reproducible retrieval and latency numbers
Also in docs/: REST API · embeddings service · how we measure search · reranker experiments · releasing.
Tools
Gnosis MCP exposes nine tools and three resources over MCP. Your AI agent calls these automatically when it needs information from your docs:
The six read tools are always advertised. The three write tools require GNOSIS_MCP_WRITABLE=true — without it they are withdrawn from tools/list entirely, so a read-only client is never handed a tool it cannot call.
With embeddings configured, search_docs fuses keyword and semantic results with Reciprocal Rank Fusion and returns a highlight field carrying the matched terms in <mark> tags — that is what keeps a lookup at a few hundred tokens instead of a full file. get_context is the session-start tool: it ranks documents by how often they are actually retrieved, unless GNOSIS_MCP_ACCESS_LOG=false turns tracking off.
Full reference — every parameter, return shape, error, and the graph relation types (related, content_link, git_co_change, git_ref, plus the typed frontmatter edges): docs/tools.md.
Configuration
Nothing required for SQLite — zero config works. Override via GNOSIS_MCP_* env vars. The four most-asked:
The remaining 45 — chunking, search limits, RRF, reranking, crawl, webhooks, column overrides, logging — are documented in docs/config.md.
Backend selection is automatic: set GNOSIS_MCP_DATABASE_URL to a postgresql:// URL and it uses PostgreSQL; leave it unset and it uses SQLite at ~/.local/share/gnosis-mcp/docs.db. Override with GNOSIS_MCP_BACKEND=sqlite|postgres. PostgreSQL setup — gnosis-mcp[postgres], gnosis-mcp init-db, CREATE EXTENSION IF NOT EXISTS vector, then gnosis-mcp embed — is in docs/overview.md.
Embeddings
Semantic search is the one optional add-on most setups want. Local ONNX is the recommended path: zero config, no API key, ~23 MB quantized model (MongoDB/mdbr-leaf-ir, Apache 2.0) auto-downloaded on first run.
Remote providers work the same way via gnosis-mcp embed --provider openai (needs GNOSIS_MCP_EMBED_API_KEY) or --provider ollama. Model choices, dimensions, the OpenAI-compatible POST /v1/embed service, and pre-computed vectors for your own pipeline: docs/embeddings-service.md · docs/config.md.
Available On
MCP Registry (feeds VS Code MCP gallery and GitHub Copilot) · PyPI · mcp.so · Glama · cursor.directory
AI-Friendly Docs
Development
All tests run without a database. Keep it that way.
Good first contributions: new embedding providers, export formats, ingestion for new file types (via optional extras). Open an issue first for larger changes.
Sponsors
If Gnosis MCP saves you time, consider sponsoring the project.
License
Learn more
- Documentation index — the canonical map of every docs page
- Installation guide — copy-paste setup for every MCP client
- Published docs — the same docs, rendered for browsing
- PyPI — releases, version history, install
- Why this exists — the write-up behind gnosis-mcp
來源:README.md,提交 8397bd0
工具
0版本歷史
1- v0.17.5最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分