Skip to content

kglite-docs

Agent-first knowledge base for documents. Ingest PDFs, Office files, Markdown, HTML, or images; chunk + embed them with BAAI/bge-m3; cluster, tag, summarise, fact-check, translate, and review them β€” and serve the whole thing to AI agents over MCP.

PyPI Python Docs License: MIT

Built on kglite (storage + vector search + clustering) and mcp-methods (MCP framework).


Why this and not generic RAG?

Most "RAG libraries" hand the agent search(query) β†’ list[chunk] and stop. kglite-docs treats the corpus as a living knowledge graph that records who did what β€” and gives the agent typed tools to act on it.

  • πŸ“„ Multi-format ingest β€” PDF, DOCX, PPTX, MD, HTML, TXT, images. All flow into the same Document β†’ Page β†’ Chunk shape.
  • 🀝 Agents are first-class nodes β€” their views, tags, summaries, verifications, and reviews are all queryable.
  • βœ… Cross-checked summaries β€” one agent writes, a different agent verifies. Self-verification is rejected server-side.
  • πŸ“‹ Review kanban β€” chunks move through new β†’ in_review β†’ reviewed with an immutable audit trail.
  • πŸ›‘οΈ Grounding checks β€” score how well an agent's summary aligns with its sources. Catch hallucinations before they ship.
  • 🌍 Translations β€” per-chunk, multi-translator, with author/reviewer provenance.
  • πŸ–ΌοΈ Agent-driven OCR β€” scanned pages handed back as rendered PNGs; agent transcribes and the graph absorbs the result.
  • πŸ”’ Local & private β€” parsing, embedding, and analysis all run on your machine against a local .kgl file. The only network call is a one-time bge-m3 model download; your documents never leave the host. See Confidentiality.

Install

pip install kglite-docs

30 seconds of Python

from kglite_docs import Corpus

with Corpus.create("kb.kgl") as corpus:           # auto-saves on exit
    corpus.ingest_dir("./papers")                  # PDF / DOCX / PPTX / MD / HTML / images
    hits = corpus.search("transformer attention", top_k=5, agent_id="me")
    ctx = corpus.compose_context("transformer attention", max_tokens=3000)
    # ctx["items"] is a ranked, token-budgeted bundle ready for your LLM prompt

30 seconds of agent loop

Cross-checked enrichment in five lines:

sid = corpus.add_summary(
    target_id=hits[0]["id"], text="DPR uses a dual BERT encoder…",
    agent_id="writer", model="opus-4.7",
)
# A different agent verifies β€” self-verification is rejected
corpus.verify_summary(sid, verdict="verified",
                      verifier_agent_id="reviewer", notes="checked p.5")
# Score how grounded the summary is in its source chunks
print(corpus.check_grounding(sid)["supported_fraction"])    # β†’ 1.0

Run it as an MCP server

kglite-docs-mcp --db kb.kgl

Register with Claude Code:

claude mcp add kglite-docs -- kglite-docs-mcp --db /abs/path/kb.kgl

The agent now sees ~30 typed tools (search, compose_context, add_summary, verify_summary, tag_chunk, cluster_chunks, claim_next_review, …) plus cypher_query as an escape hatch.

Read the docs

πŸ“– Full documentation at kglite-docs.readthedocs.io

License

MIT.