Shared cognitive substrate for AI agents (local-first, Markdown-native, MCP)
Project description
Lithos
Shared memory for AI agents.
A local, privacy-first knowledge base that enables heterogeneous AI agents to share knowledge and coordinate work.
The Problem
When agents cannot share what they know, every agent starts from zero. Work is duplicated, discoveries are lost, and coordination breaks down. Lithos solves this by providing a persistent, shared knowledge layer that compounds in value over time.
What It Is
Lithos is an MCP server that provides a shared knowledge store for AI agents running on your local infrastructure. Knowledge is stored as human-readable Markdown files (compatible with Obsidian) while providing fast full-text and semantic search for agents.
Who It's For
Lithos is the Knowledge Layer for teams running AI agents in production.
Just as Alation coined the term "Knowledge Layer" for enterprise data governance, Lithos provides the equivalent for AI agent systems: a structured, searchable, shared memory that compounds in value the more it is used. Each agent interaction enriches the knowledge base, making every subsequent agent smarter and faster.
- Teams running multiple AI agents (Agent Zero, OpenClaw, Claude Code, custom agents)
- Developers who want agents to share discoveries and avoid duplicate work
- Anyone who needs agent knowledge to be inspectable and version-controlled
Key Features
- 📁 Markdown-first: All knowledge stored as Obsidian-compatible
.mdfiles - 🔍 Fast search: Tantivy full-text + ChromaDB semantic search
- 🕸️ Knowledge graph: NetworkX-powered relationships via
[[wiki-links]] - 🤝 Multi-agent coordination: Task claiming, findings sharing, status tracking
- 🧠 Research cache: One-call freshness check so agents skip redundant research — returns hit/miss/stale with update guidance
- 🔗 URL deduplication: Automatic detection and prevention of duplicate notes from the same source URL
- 🧬 Provenance tracking: Declare which notes a synthesis is derived from and query lineage across the knowledge base
- 🔌 MCP interface: Works with any MCP-compatible agent or tool
- 🏠 Local & private: No cloud dependencies, you own your data
Quickstart
Agent Zero
Agent Zero running inside docker on the same machine running lithos
{
"mcpServers": {
"lithos": {
"url": "http://host.docker.internal:8765/sse"
}
}
}
OpenClaw
Update mcporter.json Probably in ~/.openclaw/workspace/config/mcporter.json
Use localhost if running on the same machine as OpenClaw, otherwise the name or IP address of the server.
{
"mcpServers": {
"lithos": {
"baseUrl": "http://<your hostname>:8765/sse"
}
},
"imports": []
}
Claude code
claude mcp add --transport sse lithos http://localhost:8765/sse
Documentation
- CLI Reference — installing and using the
lithoscommand-line tool - Specification — full technical specification
- LCMA Design — design notes
Tech Stack
| Component | Technology |
|---|---|
| Storage | Markdown + YAML frontmatter |
| Full-text search | Tantivy |
| Semantic search | ChromaDB + sentence-transformers |
| Knowledge graph | NetworkX |
| Agent interface | MCP (FastMCP) |
| File sync | watchdog |
Development Commands
# Install dependencies (uses uv)
uv sync --extra dev
# Run unit tests
uv run --extra dev pytest -m "not integration" tests/ -q
# Run integration tests
uv run --extra dev pytest -m integration tests/ -q
# Run all tests with coverage
uv run --extra dev pytest tests/ --cov=lithos --cov-report=xml
# Lint
uv run --extra dev ruff check .
# Format check
uv run --extra dev ruff format --check src/ tests/
# Type check
uv run --extra dev pyright src/
# Auto-fix lint + format
uv run --extra dev ruff check --fix . && uv run --extra dev ruff format src/ tests/
# Start server (stdio)
uv run lithos serve
# Start server (SSE)
uv run lithos serve --transport sse --port 8765
# Docker
cd docker && docker compose up -d --build
# run pointing at data dir
LITHOS_DATA_PATH="<DATA DIR PATH>" docker compose up -d --build
# stop
cd docker && docker compose down
Project details
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 lithos_mcp-0.2.0.tar.gz.
File metadata
- Download URL: lithos_mcp-0.2.0.tar.gz
- Upload date:
- Size: 592.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c82b077e322743bd7af87a864ceabd6b992b88b9a0447cd9eacee49bdc26712f
|
|
| MD5 |
3e082610d76a0d1b7b6364bd8af1b844
|
|
| BLAKE2b-256 |
ac8868978b32119056df493ce43b1fe61ea0804aae99bb6df74f77d81ea8f59f
|
Provenance
The following attestation bundles were made for lithos_mcp-0.2.0.tar.gz:
Publisher:
pypi.yml on agent-lore/lithos
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lithos_mcp-0.2.0.tar.gz -
Subject digest:
c82b077e322743bd7af87a864ceabd6b992b88b9a0447cd9eacee49bdc26712f - Sigstore transparency entry: 1280509473
- Sigstore integration time:
-
Permalink:
agent-lore/lithos@ebe37270a4b4cf337cc05c2e7ec47d526e16eb78 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/agent-lore
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@ebe37270a4b4cf337cc05c2e7ec47d526e16eb78 -
Trigger Event:
release
-
Statement type:
File details
Details for the file lithos_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: lithos_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 113.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 |
d42c15677d0f6626959fd0f3281b0f2d26ba219f7cf7c4750a652a717f8aab77
|
|
| MD5 |
f1356ab6fe162abc535551bd153f02f7
|
|
| BLAKE2b-256 |
fe92292a0fad3ed8f218507059247e6414f1d36ba159b375e80282115f4b905b
|
Provenance
The following attestation bundles were made for lithos_mcp-0.2.0-py3-none-any.whl:
Publisher:
pypi.yml on agent-lore/lithos
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
lithos_mcp-0.2.0-py3-none-any.whl -
Subject digest:
d42c15677d0f6626959fd0f3281b0f2d26ba219f7cf7c4750a652a717f8aab77 - Sigstore transparency entry: 1280509477
- Sigstore integration time:
-
Permalink:
agent-lore/lithos@ebe37270a4b4cf337cc05c2e7ec47d526e16eb78 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/agent-lore
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@ebe37270a4b4cf337cc05c2e7ec47d526e16eb78 -
Trigger Event:
release
-
Statement type: