Unified knowledge management MCP server with document intelligence and research workflows
Reason this release was yanked:
Under-tested release; staging pipeline being established before re-publishing
Project description
Lore
lore-knowledge-mcp · Operational knowledge layer for engineering teams and their AI agents.
The Problem
Your agents start every session knowing nothing about your systems. Every runbook you've written. Every gotcha you've hit. Every incident you've debugged. None of it carries forward.
You re-explain. They re-discover. Context vanishes when the session ends.
Lore fixes that.
Without Lore With Lore
───────────────────────────── ──────────────────────────────────
Agent starts fresh every time Agent queries Lore on startup
"How does our infra work?" Gets: topology, gotchas, runbooks,
You re-explain everything past incidents, verified decisions
Context lost at session end Knowledge persists across all sessions
How It's Different
| Tool | Built for | What it remembers | Agent-native |
|---|---|---|---|
| OB1 / personal memory | One person | Your thoughts and captures | No |
| Mem0 / Zep | App developers | User preferences, conversations | Partially |
| Confluence / Notion | Human teams | Documentation (human-browsed) | No |
| Lore | Engineering teams + AI agents | How your systems actually work — searchable by meaning, not just keywords | Yes |
Lore is not a second brain. It's the operational intelligence your agents need to work in your environment — not just any environment.
What Lore Does
Knowledge Base
Your team's operational knowledge — always queryable by any agent. Capture the things that matter: runbooks, hard-won gotchas, architecture decisions, deployment state. Every entry carries attribution so agents know who wrote it and whether a human has verified it.
Investigations
When something breaks, open a structured investigation. Document the symptom, test hypotheses, record what you tried and what you found. Six months later when the same issue resurfaces — different engineer, different agent — the trail is there.
Journal
A permanent record of milestones, architecture decisions, and buying decisions. The kind of thing that lives in someone's head until they leave the team.
Built for Multi-Agent Systems
In a multi-agent environment, provenance matters. Every Lore entry carries author, source_type, and verified.
kb_search("proxmox lxc dns")
[1] "LXC inherits host resolv.conf — Tailscale breaks containers"
david · human · ✓ verified
[2] "LXC DNS fix after Tailscale install"
engineer-agent · agent · unreviewed
[3] "LXC DNS configuration reference"
research-agent · agent · ✗ disputed
Your agents know: result 1 is production-safe. Result 2, spot-check before acting. Result 3, review first.
Semantic Search (v0.6.0+)
Lore finds entries by meaning, not just keywords. Search "DNS broken in containers" and it returns an entry titled "LXC containers inherit resolv.conf from the host" — no keyword overlap required.
Powered by local sentence-transformers embeddings (no API key, no external calls), combined with FTS5 lexical search and Reciprocal Rank Fusion. The same model used by mcp-memory-service, fully self-hosted.
Enable it
pip install lore-knowledge-mcp[semantic]
LORE_SEMANTIC_SEARCH=true lore-mcp
What you get
| Mode | When to use |
|---|---|
fts |
Exact term matches (default when semantic is off) |
semantic |
Meaning-based retrieval, no keyword overlap needed |
hybrid |
Best of both — FTS5 + vector via RRF (recommended) |
Backfill existing KB
If you already have entries, generate embeddings for them:
kb_backfill_embeddings() # idempotent, safe to re-run
kb_embedding_status() # check coverage
Configuration
| Variable | Default | Notes |
|---|---|---|
LORE_SEMANTIC_SEARCH |
false |
Master switch — off = current behavior unchanged |
LORE_EMBEDDING_MODEL |
all-MiniLM-L6-v2 |
384d, ~90MB, English-optimized |
LORE_RRF_K |
10 |
Increase to 30–60 for corpora >10k entries |
For multilingual content, set LORE_EMBEDDING_MODEL=paraphrase-multilingual-MiniLM-L12-v2 (same 384d, no schema change).
Automating Lore in Your Workflow
Add one line to every agent's system prompt and one entry to ~/.mcp.json — that's the entire integration. Each phase of your engineering workflow reads prior knowledge from Lore and writes its findings back, so nothing is re-discovered from scratch.
→ How to wire Lore into a 6-phase multi-agent pipeline — full walkthrough with code examples for every phase: research, architecture review, implementation, adversarial code review, QA, and documentation.
Quick Start
No database setup required. Lore runs out of the box with SQLite.
1. Install
pip install lore-knowledge-mcp
Optional: semantic search
pip install lore-knowledge-mcp[semantic]
Then set LORE_SEMANTIC_SEARCH=true. See Semantic Search for details.
2. Start the server
# Stdio mode (for local MCP clients like Claude Code)
lore-mcp
# HTTP mode (for remote or multi-agent access)
lore-mcp --host 0.0.0.0 --port 8000
3. Add to your MCP client
Claude Code / Claude Desktop — add to ~/.mcp.json:
{
"mcpServers": {
"lore": {
"type": "stdio",
"command": "lore-mcp"
}
}
}
Or for HTTP mode (recommended for teams):
{
"mcpServers": {
"lore": {
"type": "http",
"url": "http://localhost:8000/mcp"
}
}
}
That’s it. Lore is ready.
Tool Reference
Knowledge Base
| Tool | What it does |
|---|---|
kb_add |
Add an entry. Accepts author, source_type for attribution. |
kb_search |
Semantic search with optional topic filter. |
kb_get |
Fetch full entry by ID. |
kb_list |
List entries, filter by topic. |
kb_update |
Update content, tags, or set verified flag. |
kb_delete |
Delete entry (requires confirm=true). |
Investigations
| Tool | What it does |
|---|---|
investigation_add |
Open or add to an investigation. |
investigation_list |
List investigations, filter by topic. |
investigation_get |
Fetch full investigation by ID. |
investigation_log_experiment |
Log a structured hypothesis → result → conclusion. |
investigation_list_experiments |
List all logged experiments. |
Journal
| Tool | What it does |
|---|---|
journal_append |
Add a milestone, decision, or reflection. |
journal_list |
List recent entries (default 20). |
journal_get |
Fetch entry by ID. |
snapshot_config |
Snapshot a config object to the journal. |
Document Ingestion
| Tool | What it does |
|---|---|
kb_ingest_doc |
Ingest a markdown file into the KB. |
kb_ingest_dir |
Batch-ingest a directory, with change detection. |
kb_sync_status |
Check what's changed since last sync. |
MCP Index
| Tool | What it does |
|---|---|
mcp_index_scan |
Scan all configured MCP servers and index their tools. |
mcp_index_search |
Search indexed tools by description. |
mcp_index_get_server |
Get all tools for a specific MCP server. |
mcp_index_rebuild |
Force a full rescan. |
Search
| Tool | What it does |
|---|---|
multi_search |
Search across KB, investigations, journal, and transcripts at once. |
search_local |
Search local files by content. |
search_transcripts |
Search Whisper transcript segments. |
deduplicate_results |
Deduplicate a result set by similarity threshold. |
cluster_results |
Cluster results by topic. |
Backends
| SQLite | PostgreSQL | |
|---|---|---|
| Setup required | None | Existing PostgreSQL instance |
| Best for | Solo developers, local use | Teams, shared agents, production |
| Config | DB_BACKEND=sqlite (default) |
DB_BACKEND=postgres + connection vars |
| Data location | ~/.local/share/lore/ |
Your database |
SQLite is the default. No configuration needed — just install and run.
PostgreSQL is for teams who want a shared knowledge layer accessible from multiple machines or agents simultaneously.
# PostgreSQL setup
export DB_BACKEND=postgres
export DB_HOST=your-db-host
export DB_PORT=5432
export DB_NAME=lore
export DB_USER=your-user
export DB_PASSWORD=your-password
lore-mcp
License
MIT — see LICENSE
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lore_knowledge_mcp-0.6.0.tar.gz.
File metadata
- Download URL: lore_knowledge_mcp-0.6.0.tar.gz
- Upload date:
- Size: 66.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
263f830c5602ee4ae2edbe25a83dfac0ed1f258d80bbeae8134bb296246bdfd1
|
|
| MD5 |
b93af3165fed69184e6c33d31a4596ae
|
|
| BLAKE2b-256 |
f42e11314f863f2e531df54335a2ae0b45d07ac95a2ff64e8e249e23ccb098f9
|
Provenance
The following attestation bundles were made for lore_knowledge_mcp-0.6.0.tar.gz:
Publisher:
publish.yml on davidgut1982/lore-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lore_knowledge_mcp-0.6.0.tar.gz -
Subject digest:
263f830c5602ee4ae2edbe25a83dfac0ed1f258d80bbeae8134bb296246bdfd1 - Sigstore transparency entry: 1624201398
- Sigstore integration time:
-
Permalink:
davidgut1982/lore-mcp@d1c7e33e85c13185cecc3d5bc5e5c58ba53f7f62 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/davidgut1982
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d1c7e33e85c13185cecc3d5bc5e5c58ba53f7f62 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lore_knowledge_mcp-0.6.0-py3-none-any.whl.
File metadata
- Download URL: lore_knowledge_mcp-0.6.0-py3-none-any.whl
- Upload date:
- Size: 61.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
87058a1519e7d531d2798d578e268e9cb0f98bfe7e62c57636b7b8622038f0d0
|
|
| MD5 |
ec9a16280d543c4892aa178394848adf
|
|
| BLAKE2b-256 |
b2fa08a6165f150c5d5037e986f5513914c018bff2531441502c6e3fbf9b3021
|
Provenance
The following attestation bundles were made for lore_knowledge_mcp-0.6.0-py3-none-any.whl:
Publisher:
publish.yml on davidgut1982/lore-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lore_knowledge_mcp-0.6.0-py3-none-any.whl -
Subject digest:
87058a1519e7d531d2798d578e268e9cb0f98bfe7e62c57636b7b8622038f0d0 - Sigstore transparency entry: 1624201469
- Sigstore integration time:
-
Permalink:
davidgut1982/lore-mcp@d1c7e33e85c13185cecc3d5bc5e5c58ba53f7f62 -
Branch / Tag:
refs/tags/v0.6.0 - Owner: https://github.com/davidgut1982
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@d1c7e33e85c13185cecc3d5bc5e5c58ba53f7f62 -
Trigger Event:
release
-
Statement type: