Skip to main content

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 name mnemos was 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aura_mnemos-0.1.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

aura_mnemos-0.1.0-py3-none-any.whl (11.6 kB view details)

Uploaded Python 3

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

Hashes for aura_mnemos-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4df958c8cc5f68b3cefce8f6e29be603b5ac799fcfd570f1c4e30a9c5c54d5af
MD5 5e7ccdb63dad7833edcb1f776aaaa2ea
BLAKE2b-256 a7f4fb5bc435b3ca7c365bcefa3edc1eae1a00855c0ed4833a42ad2c1c7a9a9e

See more details on using hashes here.

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

Hashes for aura_mnemos-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 47ae9f35d0ae9b3c38dac1872353e61bcf9c93e31089600b092464d54a8a5d2a
MD5 f2ae6ffa90dbf0dff3f20bb793acabe6
BLAKE2b-256 2e5a5b696d730249ee5fe9bcf8f45696930a2912c4b45518deea0e0e761e01d8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page