Unified knowledge management MCP server with document intelligence and research workflows
Project description
Lore
The operational knowledge layer for engineers and their AI agents.
The Problem
Your agents are capable. But every session, they start from zero — no knowledge of your infrastructure, no memory of what broke last month, no idea why you made that architecture call.
You re-explain. They re-discover. Context vanishes when the session ends.
Lore fixes that.
Without Lore: With Lore:
───────────────── ──────────────────────────────────
Agent session starts Agent queries Lore on startup
"How does our infra work?" Gets: topology, gotchas, runbooks,
You re-explain everything recent incidents, verified decisions
Session ends, context lost Knowledge persists across all sessions
Next agent starts informed
What Lore Does
Knowledge Base
Structured operational knowledge your agents query in real time.
# Capture a hard-won gotcha
kb_add(topic="proxmox", title="LXC resolv.conf inherits from host — breaks without Tailscale",
content="...", author="david", source_type="human")
# Agent queries before touching anything
kb_search(query="proxmox lxc dns") # returns the gotcha instantly
Investigations
Structured debugging with a traceable paper trail from symptom to resolution.
investigation_add(topic="anki-media", title="Media not loading after container restart",
content="Hypothesis: mount collision between container volumes...")
investigation_log_experiment(title="Mount collision test", hypothesis="...",
results={"collision": True}, conclusion="Confirmed. Remove duplicate mount.")
Six months later, a different engineer hits the same issue. The trail is there.
Journal
Permanent record of milestones, architecture decisions, and buying decisions.
journal_append(entry_type="milestone",
content="Migrated monitoring stack to ops bastion. Rationale: centralized visibility.",
tags=["monitoring", "migration"])
Attribution
In a multi-agent system, provenance matters. Every Lore entry carries author, source_type, and verified.
kb_search("proxmox lxc networking")
Results:
[1] "LXC resolv.conf inherits from host — Tailscale breaks containers"
author: david | source_type: human | verified: true
[2] "LXC container DNS fix after Tailscale install"
author: engineer-agent | source_type: agent | verified: null
[3] "LXC DNS configuration reference"
author: research-agent | source_type: agent | verified: false
Agents know: result 1 is production-safe. Result 2, spot-check first. Result 3, review before acting.
Quick Start
Solo (SQLite — no server needed)
pip install lore-mcp
export DB_BACKEND=sqlite KNOWLEDGE_DATA_DIR=~/.lore
lore-mcp
Add to Claude Code (~/.claude.json or project .mcp.json):
{
"mcpServers": {
"lore": {
"command": "lore-mcp",
"env": {
"DB_BACKEND": "sqlite",
"KNOWLEDGE_DATA_DIR": "/home/yourname/.lore"
}
}
}
}
Team (PostgreSQL)
pip install lore-mcp
export DB_BACKEND=local DB_HOST=localhost DB_PORT=5432 \
DB_NAME=lore DB_USER=lore_user DB_PASSWORD=yourpassword
lore-mcp --host 0.0.0.0 --port 5555
All agents on your team point at http://your-server:5555/mcp. One shared knowledge layer.
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 (topic, title, content, tags). |
investigation_list |
List investigations, filter by topic. |
investigation_get |
Fetch full investigation by ID. |
investigation_log_experiment |
Log a structured experiment with hypothesis, methodology, results, 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. |
cluster_results |
Cluster results by topic. |
Backends
| Backend | Use case | Setup |
|---|---|---|
| SQLite | Solo / local dev / single machine | No server, one env var |
| PostgreSQL | Team / shared / production | Self-hosted DB |
| Supabase | Cloud PostgreSQL | Managed, zero-ops |
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 work | Yes |
Lore is not a second brain. It's the operational intelligence layer your agents need to work in your environment — not just any environment.
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.5.0.tar.gz.
File metadata
- Download URL: lore_knowledge_mcp-0.5.0.tar.gz
- Upload date:
- Size: 48.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ee93fad84c1e59ee71b512ed449a4a080529d01f6fedc209f7f94b5f900b8103
|
|
| MD5 |
4d1464562fb39a7a8f420e8bb6bf014d
|
|
| BLAKE2b-256 |
73a8e6e13b58a7c7b0fee339dc79c222cec9eebf0adf15921e54d8d2978aaea2
|
Provenance
The following attestation bundles were made for lore_knowledge_mcp-0.5.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.5.0.tar.gz -
Subject digest:
ee93fad84c1e59ee71b512ed449a4a080529d01f6fedc209f7f94b5f900b8103 - Sigstore transparency entry: 1615481574
- Sigstore integration time:
-
Permalink:
davidgut1982/lore-mcp@05203fb0f17b69645955e75167d5a069007e0b93 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/davidgut1982
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@05203fb0f17b69645955e75167d5a069007e0b93 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lore_knowledge_mcp-0.5.0-py3-none-any.whl.
File metadata
- Download URL: lore_knowledge_mcp-0.5.0-py3-none-any.whl
- Upload date:
- Size: 46.0 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 |
ed7d0b07dfcb4502e16c3bf95c0b9551f8e1a199afa80829963a5b4e8233977d
|
|
| MD5 |
c14bceb57d5d008c11779b467a2e89a6
|
|
| BLAKE2b-256 |
a00926b8653e52d2dce1c1197090c479b5831724a077834665defcc295377ecd
|
Provenance
The following attestation bundles were made for lore_knowledge_mcp-0.5.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.5.0-py3-none-any.whl -
Subject digest:
ed7d0b07dfcb4502e16c3bf95c0b9551f8e1a199afa80829963a5b4e8233977d - Sigstore transparency entry: 1615481602
- Sigstore integration time:
-
Permalink:
davidgut1982/lore-mcp@05203fb0f17b69645955e75167d5a069007e0b93 -
Branch / Tag:
refs/tags/v0.5.0 - Owner: https://github.com/davidgut1982
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@05203fb0f17b69645955e75167d5a069007e0b93 -
Trigger Event:
release
-
Statement type: