A persistent-memory MCP server for AI agents, with an honest health endpoint that survives its store dying.
Project description
aura-mnemos
A persistent-memory MCP server for AI agents, with an honest health endpoint that survives its store dying.
Install name is
aura-mnemos(import aura_mnemos); the plain namemnemoswas already taken on PyPI by an unrelated project.
Why
Every agent session starts blank. The conversation history is there, but the knowing — the things you learned last week, the patterns you noticed, the decisions you made — evaporates when the context window closes. mnemos is the shelf you put those things on. A small, durable, honest shelf.
And honest means honest. When the shelf breaks — the database file is missing, the disk is full, the permissions are wrong — mnemos tells you. It does not crash silently. It does not return empty results that look like "nothing found." It says "I am broken" in a way your agent can hear and act on. This is the disaster test: the server must survive its store dying, and the health endpoint must tell the truth about it.
Install
pip install aura-mnemos # MCP server only — stdlib, zero dependencies
pip install "aura-mnemos[health]" # + FastAPI health sidecar
Requires Python ≥ 3.10.
Use as an MCP server
Configure your MCP client to launch aura-mnemos:
{
"mcpServers": {
"mnemos": {
"command": "aura-mnemos",
"args": []
}
}
}
The store lives at ~/.mnemos/mnemos.db by default. Override with the MNEMOS_DB environment variable.
Tools
remember — store a memory with optional tags and source.
{
"content": "The AURA mesh runs on trust and honest health endpoints.",
"tags": "philosophy",
"source": "6E"
}
Returns {"id": 1, "created_at": "2026-07-19T12:00:00+00:00"}.
recall — search memories by content substring.
{
"query": "mesh",
"limit": 10
}
Returns {"count": 1, "results": [{"id": 1, "content": "...", "tags": "...", "source": "...", "created_at": "..."}]}.
list_recent — list the most recent memories.
{
"limit": 5
}
Same result shape as recall.
Every tool returns {"error": "..."} when the store is unreachable — the server never crashes, never lies.
Honest health
Start the health sidecar:
aura-mnemos-health
# listens on 127.0.0.1:8080 by default; set PORT to change it
When the store is alive:
curl http://127.0.0.1:8080/health
{
"status": "ok",
"timestamp": "2026-07-19T16:16:22.486547+00:00",
"version": "0.1.0",
"checks": [
{ "name": "sqlite", "status": "ok", "latency_ms": 0.27, "detail": "/home/you/.mnemos/mnemos.db" },
{ "name": "memories_table", "status": "ok", "latency_ms": 0.17, "detail": "/home/you/.mnemos/mnemos.db" }
]
}
When the store is missing:
MNEMOS_DB=/nonexistent/db.sqlite aura-mnemos-health &
curl http://127.0.0.1:8080/health
{
"status": "down",
"timestamp": "2026-07-19T16:16:22.868237+00:00",
"version": "0.1.0",
"checks": [
{ "name": "sqlite", "status": "down", "latency_ms": null, "detail": "database not found: /nonexistent/db.sqlite" },
{ "name": "memories_table", "status": "down", "latency_ms": null, "detail": "database not found: /nonexistent/db.sqlite" }
]
}
The overall status is the worst of the individual checks (ok < degraded < down).
The disaster must actually happen. mnemos does not lie about its store. The test suite proves it: test_health_down_when_db_missing sets MNEMOS_DB to a path that does not exist and asserts the status is not "ok". If that test ever passes when the store is alive, the test is lying — and the test is designed to fail when it lies.
Roadmap (not shipped here)
These are directions the project may grow, but none of them exist yet:
- Graph layer — link memories by topic, entity, or relationship (beyond substring search)
- Native apps — desktop/mobile clients that read and write the same store
- Framework adapters — LangChain, CrewAI, Microsoft Semantic Kernel integrations
- Mesh bridge — sync stores across the AURA mesh (Ubuntu ↔ macOS)
If you want one of these, the store schema is stable and documented. The SQLite file is yours.
Attribution / provenance
Part of the AURA Pattern Library — © Reality Optimizer. Built by a human-led mesh of small models and Claude. Apache-2.0.
The shelf is small. What you put on it is yours.
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 aura_mnemos-0.1.0.tar.gz.
File metadata
- Download URL: aura_mnemos-0.1.0.tar.gz
- Upload date:
- Size: 12.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4df958c8cc5f68b3cefce8f6e29be603b5ac799fcfd570f1c4e30a9c5c54d5af
|
|
| MD5 |
5e7ccdb63dad7833edcb1f776aaaa2ea
|
|
| BLAKE2b-256 |
a7f4fb5bc435b3ca7c365bcefa3edc1eae1a00855c0ed4833a42ad2c1c7a9a9e
|
File details
Details for the file aura_mnemos-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aura_mnemos-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
47ae9f35d0ae9b3c38dac1872353e61bcf9c93e31089600b092464d54a8a5d2a
|
|
| MD5 |
f2ae6ffa90dbf0dff3f20bb793acabe6
|
|
| BLAKE2b-256 |
2e5a5b696d730249ee5fe9bcf8f45696930a2912c4b45518deea0e0e761e01d8
|