Prototyp · Vorschau: alle Server aus der offiziellen Registry, alle 30 Minuten synchronisiert. Bewertungen und Benutzerkonten folgen in einem späteren Schritt.
PopNx MCPMCP-Server für alle, die KI nutzen · in einfachen Worten erklärt

Attestari

von attestariVersion 0.0.8i★ –iLäuft auf deinem Computer
Name in der Registryio.github.attestari/attestari

Installieren

Überblick

Beschreibung vom Entwickler (englisches Original)

Auditable memory for AI agents: provable deletion, tamper-evident audit, time-travel recall.

Die drei Säulen von PopNx MCP

Diese drei werden nie zu einer Punktzahl zusammengefasst: Meinungen, Messungen und Beliebtheit sind verschiedene Dinge.

Was du damit machen kannst

Für diesen Server haben wir noch keine Zusammenfassung in einfacher Sprache geschrieben. Unten stehen die Fakten, die wir aus der Registry gelesen haben.

  • Verbindung: Läuft auf deinem Computer
  • Transport: stdio
  • Kategorie: Suche & KI-Gedächtnis
  • Das musst du eintragen: ATTESTARI_KEK, ATTESTARI_DATABASE_URL, ANTHROPIC_API_KEY

Installation

Wähle die KI-App, die du nutzt, und kopiere die Einstellungen.

Bevor du installierst

  • Basischecks: 1 von 1 bestanden
  • Läuft auf deinem Computer mit den Rechten deines Benutzerkontos (Dateien, Netzwerk, Apps).
  • Das trägst du selbst ein: ATTESTARI_KEK, ATTESTARI_DATABASE_URL, ATTESTARI_SQLITE_PATH, ATTESTARI_MCP_ALLOW_FORGET, ANTHROPIC_API_KEY

Als geheim markierte Werte sind Schlüssel zu deinem Konto. Gib sie nie weiter und füge sie nie in einen Chat ein.

Du brauchst

  • PyPIuv für Python installiert (für den Befehl uvx)

Welche App nutzt du?

Wähle oben deine App. Wir merken sie uns, damit der Button beim nächsten Mal „In … installieren“ anzeigt.

Öffne Claude Desktop → Settings → Developer → Edit Config und füge dies in claude_desktop_config.json ein

{
  "mcpServers": {
    "attestari": {
      "command": "uvx",
      "args": [
        "attestari"
      ],
      "env": {
        "ATTESTARI_KEK": "your-value",
        "ATTESTARI_DATABASE_URL": "your-value",
        "ATTESTARI_SQLITE_PATH": "your-value",
        "ATTESTARI_MCP_ALLOW_FORGET": "your-value",
        "ANTHROPIC_API_KEY": "your-value"
      }
    }
  }
}

Führe das in deinem Terminal aus

claude mcp add attestari --env ATTESTARI_KEK=your-value --env ATTESTARI_DATABASE_URL=your-value --env ATTESTARI_SQLITE_PATH=your-value --env ATTESTARI_MCP_ALLOW_FORGET=your-value --env ANTHROPIC_API_KEY=your-value -- uvx attestari

Trag die leeren Werte ein, bevor du ihn startest.

In Cursor öffnen

Oder kopier die Einstellungen selbst

In .cursor/mcp.json in deinem Projekt oder in ~/.cursor/mcp.json einfügen

{
  "mcpServers": {
    "attestari": {
      "command": "uvx",
      "args": [
        "attestari"
      ],
      "env": {
        "ATTESTARI_KEK": "your-value",
        "ATTESTARI_DATABASE_URL": "your-value",
        "ATTESTARI_SQLITE_PATH": "your-value",
        "ATTESTARI_MCP_ALLOW_FORGET": "your-value",
        "ANTHROPIC_API_KEY": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

In VS Code öffnen

Oder kopier die Einstellungen selbst

In .vscode/mcp.json in deinem Projekt einfügen

{
  "servers": {
    "attestari": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "attestari"
      ],
      "env": {
        "ATTESTARI_KEK": "your-value",
        "ATTESTARI_DATABASE_URL": "your-value",
        "ATTESTARI_SQLITE_PATH": "your-value",
        "ATTESTARI_MCP_ALLOW_FORGET": "your-value",
        "ANTHROPIC_API_KEY": "your-value"
      }
    }
  }
}

Dein Browser fragt, ob er die App öffnen darf, dann zeigt die App die Einstellungen und bittet dich um Bestätigung. Schlüsselwerte bleiben leer, damit du sie selbst einträgst.

Dieser Server läuft auf deinem Computer, und ChatGPT kann sich nur mit Servern im Internet verbinden. Wähle eine andere App.

Deine Auswahl bleibt in einem Cookie auf diesem Gerät; kein Konto nötig.

Werte, die du selbst einträgst

  • ATTESTARI_KEK geheim env
    Base64 32-byte root key. Set it to enable encryption at rest and cryptographic erasure (forget() destroys the subject's key and signs the certificate). Without it, forget() is a logical delete and ce…
  • ATTESTARI_DATABASE_URL geheim env
    Postgres DSN. Set it to use Postgres + pgvector instead of the default local SQLite file (concurrent access, indexed hybrid search).
  • ATTESTARI_SQLITE_PATH env
    Where the default SQLite ledger lives.
  • ATTESTARI_MCP_ALLOW_FORGET env
    Set to 1 to offer the forget_subject tool (off by default, since erasure is irreversible and an agent can be steered by what it reads). When on, it is flagged destructive and takes two calls: a previ…
  • ANTHROPIC_API_KEY geheim env
    Enables Claude-powered fact extraction; falls back to the built-in regex extractor when unset.

Diese Einstellungen werden aus dem Registry-Eintrag des Entwicklers erzeugt. Wenn in der README etwas anderes steht, folge der README.

Was er kann

Läuft auf deinem Computer; die Tool-Liste erscheint nach der Installation in deiner KI-App.

Basischecksi

Wir prüfen Informationen, die jeder sehen kann; den Code haben wir nicht gelesen. Checks, die nicht zutreffen, werden nicht mitgezählt. · Geprüft am 7. Nov. 2026

  • ✓ Bestanden

    Entwickler passt zum Repo

    Der Registry-Name wurde mit dem GitHub-Konto attestari bestätigt, dem das Repo gehört

  • … Noch nicht geprüft

    Wird noch gepflegt

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • … Noch nicht geprüft

    Hat eine Lizenz

    Dieses Repo haben wir noch nicht von GitHub gelesen

  • – Nicht zutreffend

    Endpunkt antwortet

    Dieser Server läuft auf deinem Computer; es gibt keinen Endpunkt im Internet

  • – Nicht zutreffend

    Anmeldung mit OAuth

    Läuft auf deinem Computer und nutzt stattdessen lokale Einstellungen

  • … Noch nicht geprüft

    Keine versteckten Anweisungen in Tool-Beschreibungen

    Läuft auf deinem Computer; Tool-Listen können wir nur von Endpunkten im Internet lesen

Im Vergleich mit anderen in Suche & KI-Gedächtnisi

  • Mehr Sterne als 0 % der anderen 7259 Server in dieser Kategorie
  • Neuer in der Registry veröffentlicht als 57 % der anderen 7259 Server in dieser Kategorie
  • Basischecks gleich gut wie oder besser als bei 100 % der anderen 7259 Server in dieser Kategorie

Verglichen mit allen aktiven Servern dieser Kategorie in der Registry. Sterne zählen nur, wenn dem Herausgeber das Repo gehört.

Häufige Fragen

Ist Attestari sicher?

Er hat 1 von 1 zutreffenden Basischecks bestanden. Den Code haben wir nicht gelesen. Bevor du einen Schlüssel oder Token hinzufügst, sieh nach, welche Zugriffe der Server verlangt, und nutze einen Schlüssel, der nur die Berechtigungen hat, die du brauchst.

Welche Schlüssel oder Codes braucht er?

Das musst du eintragen: ATTESTARI_KEK, ATTESTARI_DATABASE_URL, ANTHROPIC_API_KEY

Läuft er auf meinem Computer oder in der Cloud?

Er läuft auf deinem Computer. Deine KI-App startet ihn bei Bedarf, und die Daten laufen nicht über die Server des Entwicklers (außer der Server ruft selbst einen Onlinedienst auf).

Wird er noch gepflegt?

Das GitHub-Repo wurde zuletzt – geändert, und die neueste Version (0.0.8) kam vor 28 Tagen in die Registry.

Welche Apps können ihn nutzen?

Apps, die MCP unterstützen, etwa Claude Desktop, Claude Code, Cursor und VS Code. Außerdem brauchst du Python (uv) auf deinem Computer.

Was kann ich stattdessen nutzen?

In derselben Kategorie: Context7, Codebase Memory, Exa

Alternativen

Server derselben Kategorie von anderen Entwicklern, sortiert nach Sternen.

So liest du eine Karte:★ GitHub-SterneiDrei Säulen: Bewertungen · Checks · NutzungiAktualisiert = neueste Version in der Registry veröffentlichti

Context7

von upstash

Up-to-date docs for AI agents

Computer oder Cloud★ 64.224MITAktualisiert gestern
Installieren

Codebase Memory

von DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

Läuft auf deinem Computer★ 48.148MITAktualisiert vor 20 Tagen
Installieren

Exa

von exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

Läuft in der Cloud★ 5.213MITAktualisiert letzten Monat
Installieren

README vom Entwickler

README öffnen

Unverändert aus dem Repo des Entwicklers übernommen. PopNx MCP hat den Inhalt weder geprüft noch empfiehlt es ihn. HTML, Bilder und Skripte wurden entfernt. Links führen von dieser Website weg.

Attestari

The auditable memory layer for AI agents. Give your agent long-term memory — like any memory layer — except every fact carries a receipt (where it came from, when), it runs on plain Postgres, the audit trail is tamper-evident, and any user's data can be provably deleted with a signed certificate.

from attestari import Memory

mem = Memory() mem.add("Hi, I'm Alice. I live in Toronto and I work at Acme.", subject_id="alice", valid_from="2021-06-01") mem.add("Update: I moved to Berlin and I now work at Globex.", subject_id="alice", valid_from="2026-01-01") # supersedes Acme + Toronto

mem.answer("where does the user work", subject_id="alice") # -> "Globex" (latest) mem.answer("where did the user live", subject_id="alice", as_of="2022-01-01") # -> "Toronto" (time-travel)

cert = mem.forget("alice") # right-to-be-forgotten -> a signed deletion certificate

No database, no API key, no model download required to run that — the core engine has zero dependencies.


Contents

  • Why it's different
  • What you get
  • Quickstart (30 seconds)
  • The Python API
  • Run it for real — Postgres · server + console · MCP · TypeScript
  • REST API
  • Configuration
  • Provable deletion + tamper-evident audit, in one demo
  • Already using Mem0 or Zep? Wrap it
  • For auditors and DPOs
  • How it works — and the Atlas, the engine on one illustrated page
  • Project layout
  • Docs & contributing

Why it's different

Hosted memory is a black box: you can't see where a "memory" came from, you can't cleanly delete one user's data, and you can't *prove* the history wasn't altered. For a bank, hospital, or insurer — and under GDPR / the EU AI Act — that's a dealbreaker. Attestari is the neutral, self-hostable layer that fixes exactly that.

AttestariTypical memory layer
Runs on plain Postgres (no graph DB)✅✗ (needs Neo4j / a vector service)
Provenance on every fact✅partial
Bi-temporal ("what was true on date D?")✅✗
Provable deletion + certificate (GDPR)✅✗
Tamper-evident audit trail (hash chain)✅✗
Works across model vendors✅usually locked to one

The last two rows are the moat. Deletion you can prove: each user's data is encrypted with their own key; forget() destroys the key, so the content is unrecoverable — while an immutable log and a signed certificate remain as proof. A history you can verify: every event is hash-linked, so verify_audit() catches any edit, insert, or delete — and the proof survives deletion.

What you get

  • Provenance on every fact — each memory traces back to the exact source message, with a character span, confidence, and timestamps.
  • Bi-temporal time travel — query memory as_of any past instant; corrections supersede old facts without erasing them, so history is always reconstructable. as_of filters on valid time (when a fact was true). System time (when Attestari recorded it) is stored on every fact, but there's no query on it yet.
  • Provable deletion — forget(subject_id) crypto-shreds a user's data and returns a signed DeletionCertificate; content backups and replicas are covered (key storage needs its own backup policy — see the threat model).
  • Tamper-evident audit — a hash-linked event chain; verify_audit() detects any edit/insert/delete, and the proof survives crypto-shred.
  • Conflict resolution — single- vs multi-valued predicates; conflicts are surfaced via conflicts(), not silently dropped.
  • Entity resolution — merge "the same entity, many surface forms," reversibly. Merges are recorded, but reads don't follow them yet: search() and timeline() still see each surface form separately.
  • Hybrid retrieval — semantic (pgvector) ⊕ keyword (full-text), with the bi-temporal filter built in.
  • Runs anywhere — zero-dependency in-memory engine, or durable on one Postgres
  • pgvector container. No graph database. Works across model vendors.

Quickstart (30 seconds)

git clone https://github.com/attestari/attestari && cd attestari

python examples/spike.py # zero-dep end-to-end loop python examples/agent_with_memory.py # the "give an agent memory" pattern

You'll see facts change over time, a bi-temporal query answer differently "as of" different dates, a provenance trace back to the source, and a forget() that issues a certificate. No install, no API key, no database.

The Python API

One facade, Memory, covers the whole surface:

from attestari import Memory

mem = Memory() # zero-dep, in-memory (tests, demos)

mem = Memory.local() # durable in one local SQLite file — zero infrastructure

mem = Memory.postgres() # durable on Postgres + pgvector (production service)

--- write -------------------------------------------------------------

fact_ids = mem.add( "I moved to Berlin and I now work at Globex.", subject_id="alice", # whose memory this is valid_from="2026-01-01", # when it became true (defaults to now) source_ref="chat:msg-42", # where it came from (for provenance) )

--- read --------------------------------------------------------------

mem.search("where does the user work", subject_id="alice") # ranked SearchResults mem.answer("where does the user work", subject_id="alice") # -> "Globex" mem.answer("where did the user live", subject_id="alice", as_of="2022-01-01") # time travel: recall as-of a past date mem.timeline(subject_id="alice") # full bi-temporal history mem.get_provenance(fact_ids[0]) # source episode + span mem.conflicts(subject_id="alice") # surfaced conflicts

--- govern ------------------------------------------------------------

report = mem.verify_audit() # AuditReport — is the hash chain intact? cert = mem.forget("alice") # DeletionCertificate — provable erasure

MethodReturnsWhat it does
add(text, *, subject_id, valid_from=…, source_ref=…)list[str]Ingest a message; extract, dedup, and supersede facts.
search(query, *, subject_id, as_of=…, limit=5)list[SearchResult]Hybrid retrieval with an optional time filter.
answer(query, **kwargs)`str \None`The single top object for a query.
timeline(*, subject_id)list[Edge]Every fact for a subject, live and superseded.
get_provenance(fact_id)`Provenance \None`Trace a fact to its source episode + span.
conflicts(*, subject_id=None)list[dict]Conflicts resolved by predicate cardinality.
resolve_entities(names=None, *, auto=True)ResolutionResultMerge duplicate entities (reversible).
forget(subject_id)DeletionCertificateCrypto-shred a subject; return proof.
verify_audit(deep=False)AuditReportVerify the tamper-evident hash chain; deep=True also catches silent edits to event content.

Run it for real

Three storage tiers, one engine — every guarantee (audit chain, crypto-shred, deep verification, time travel) holds on all three:

TierStorageForSetup
Memory()in-memorytests, demos, determinismnone
Memory.local()one SQLite file (~/.attestari/attestari.db)a personal agent, MCP, prototypes — durable, single-processnone (stdlib)
Memory.postgres()Postgres + pgvectorproduction: concurrent access, indexed hybrid searchone container

Durable with zero infrastructure (survives restarts; nothing to install or run):

from attestari import Memory

mem = Memory.local() # or Memory.local("path/to/agent.db")

Durable, on Postgres + pgvector (one container, no graph DB):

ATTESTARI_PG_PORT=5433 docker compose up -d       # applies the schema on first boot

pip install -e ".[postgres,embeddings]" export ATTESTARI_DATABASE_URL=postgresql://attestari:attestari@localhost:5433/attestari

Already have a Postgres (managed or local)? The schema ships inside the pip package — no clone needed:

python -m attestari.initdb postgresql://user:pass@host:5432/db   # idempotent
from attestari import Memory

mem = Memory.postgres() # durable; materialized projections + pgvector + full-text search

As a REST API + visual console:

pip install -e ".[server]"

uvicorn attestari.server:app # API at /v1/*, the memory-graph console at /

As an MCP server (any agent — Claude, frameworks — can use it) — exposes add_memory / search_memory / get_provenance over stdio, plus forget_subject if you opt in (below). Register it in your MCP client's config (e.g. Claude Desktop's claude_desktop_config.json); the client launches the process for you:

{

"mcpServers": { "attestari": { "command": "attestari-mcp", "args": [], "env": { "ATTESTARI_SQLITE_PATH": "~/.attestari/attestari.db", "ANTHROPIC_API_KEY": "sk-ant-...", "ATTESTARI_KEK": "base64-kek-here" } } } }

Only `command`/`args` are required. Durable by default (memories go to the local

SQLite file, so they survive app restarts); the env block is where per-server config lives — add ATTESTARI_DATABASE_URL to use Postgres instead of SQLite, ANTHROPIC_API_KEY to upgrade extraction to Claude, ATTESTARI_KEK to enable crypto-shred. To run it standalone (e.g. to debug): attestari-mcp (or python -m attestari.mcp). Without a local install, MCP clients can spawn it straight from PyPI: uvx --from "attestari[server]" attestari-mcp.

Erasure over MCP is opt-in. An agent can be steered by text it reads, and erasure can't be undone, so forget_subject is only offered when the env block sets "ATTESTARI_MCP_ALLOW_FORGET": "1". It is then flagged destructive (clients that honour tool annotations ask before running it) and takes two calls: the first previews what would be erased and returns a manifest_hash; the second passes that hash back as confirm_manifest_hash, and erases only if the subject's records still match the preview. Leave it off unless the agent is meant to erase people; Memory.forget() and POST /v1/forget are unaffected.

From TypeScript — the TS client talks to the REST API, so start the server first (see above; it defaults to http://localhost:8000). Then see clients/ts (@attestari/client), a thin typed client mirroring the Memory surface.

With LangChain: see clients/langchain (attestari-langchain) — a AttestariRetriever (recall facts with provenance) and AttestariChatMessageHistory (drop-in memory for RunnableWithMessageHistory) for any chain or agent.

With real Claude extraction (instead of the zero-dep deterministic extractor):

pip install -e ".[anthropic]"

export ANTHROPIC_API_KEY=sk-ant-... python examples/spike.py --llm anthropic

Enable crypto-shred deletion (turn forget() from a logical delete into cr

Nur der Anfang wird gezeigt; den Rest findest du im Repo

PopNx fragen