Skip to main content
Glama

Apocrypha

Apocrypha ist Jensens Einzelbenutzer-, append-only Remote-MCP-Speicher für nützlichen persönlichen Kontext, den ein Assistent nicht in seinem normalen eingebauten Speicher ablegen sollte. Claude und ChatGPT teilen sich denselben standardmäßigen Streamable-HTTP-Endpunkt unter /mcp. Es unterstützt standardbasiertes OAuth 2.1 für Clients wie Claude, behält aber auch ein separates statisches Bearer-Token für Clients, die einen Autorisierungs-Header direkt setzen können.

Umfang: nur außergewöhnlicher Speicher

Apocrypha folgt den allgemeinen Speicher- und Komprimierungssemantiken von OptMem mit einer Spezialisierung: Es ist kein zweiter Allzweck-Speicher. Ein Assistent sollte hier nur schreiben, wenn persönlicher Kontext es wert ist, erinnert zu werden, der Assistent jedoch beurteilt, dass er diesen Kontext nicht in seinem eigenen persönlichen Speicher ablegen soll – zum Beispiel Wohnung, Einkommen, finanzielle Laufbahn, sozioökonomische Umstände oder damit zusammenhängender Arbeitspipeline-Kontext. Fakten, die für den normalen eingebauten Speicher geeignet sind, gehören dorthin und sollten nicht auch in Apocrypha kopiert werden. Diese Trennung vermeidet redundante oder widersprüchliche Erinnerungen über Systeme hinweg.

LOG.txt ist maßgeblich. Es verwendet OptMems 320-Byte-Festbreiten-Datensätze (ein durch Zeilenumbruch beendeter Speicher pro Datensatz), und TREE/<size> verwendet dessen 288-Byte-Festbreiten-Binär-Merge-Datensätze. Korrekturen sind spätere Log-Einträge; rohe Erinnerungen werden nie bearbeitet oder gelöscht. Google Drive ist nur ein auf dem Telefon lesbarer Spiegel.

Related MCP server: JauMemory MCP Server

Werkzeuge

  • apocrypha_wake: obligatorischer Lesevorgang des stehenden Kontexts, unterhalb der Client-Antwortlimits paginiert; verweigert, solange eine Komprimierung aussteht.

  • apocrypha_note: zeichnet nur sonst nicht erlaubten dauerhaften Kontext auf, kollabiert Leerzeichen, hängt einen datierten Speicher an, spiegelt Drive und gibt die nächste neu mögliche Komprimierung zurück.

  • apocrypha_sleep: holt oder erledigt die nächste Merge-Tree-Komprimierung.

  • apocrypha_recall: case-insensitive Regex-Suche über das vollständige rohe Log.

  • apocrypha_forget: kürzt eine falsche Zusammenfassung und alle darüber liegenden Zusammenfassungen, ohne das Log zu berühren.

Wake gibt absichtlich jeden rohen Datensatz zurück, solange das Log innerhalb seines 96-Zeilen-Renderbudgets passt. Sobald das Log dieses Budget überschreitet, kachelt es die vollständige Historie mit gespeicherten Baumzusammenfassungen in Richtung Vergangenheit und zunehmend feineren Details in Richtung Gegenwart. Eine Notiz gibt nur die erste neu mögliche Komprimierung zurück; jede Schlafantwort gibt die nächste Aufgabe in der Kaskade zurück. Das Entleeren dieser Kaskade vor dem Aufwachen ist beabsichtigt, da Wake nie aus einem teilweise aufgebauten Baum rendert.

Die Komprimierung folgt OptMems kategorieneutraler Regel: Behalte, was dauerhafte Wirkung hat, verwerfe, was nicht, und erfinde nichts. Das rohe Log bleibt maßgeblich, unabhängig davon, was eine Zusammenfassung auslässt.

Lokale Verifikation

npm install
npm test

Die Tests umfassen einen OptMem-Stresstest mit 2.000 Speichern, Invarianten für Festdatensätze und Bäume, Paginierung, zunehmende Details in Richtung Gegenwart, Byte-Identität von Vergessen/Wiederaufbau, Neustart-Persistenz, MCP-Schemas und die Drive-batchUpdate-Anfrage.

Entwicklungs- und Bereitstellungsworkflow

C:\Users\Jensen\code\apochrypha ist das Entwicklung-Checkout. Der öffentliche main-Zweig von GitHub ist die Release-Quelle, und Alpha stellt diesen veröffentlichten Zweig bereit, nicht unveröffentlichte lokale Dateien.

  1. Nehmen Sie Änderungen im lokalen Checkout vor und führen Sie npm test aus.

  2. Committen Sie die Änderungen und pushen Sie main zu GitHub.

  3. Führen Sie von PowerShell aus ./scripts/deploy-alpha.ps1 aus.

Das Bereitstellungsskript verweigert einen unsauberen Baum, einen Nicht-main-Zweig oder einen lokalen Commit, der von origin/main abweicht. Auf Alpha führt es ein Fast-Forward-Only-Update durch, installiert gesperrte Produktionsabhängigkeiten, startet den Dienst neu und überprüft den lokalen Health-Endpunkt. Der Laufzeitzustand bleibt getrennt: Anmeldeinformationen liegen in /etc/apocrypha.env, während das append-only Log, der Zusammenfassungsbaum und der OAuth-Zustand in /var/lib/apocrypha liegen; keiner davon ist Teil von Git.

Google-Autorisierung (einmalig, auf dem Laptop)

  1. Aktivieren Sie in Google Cloud die Google Docs API und erstellen Sie einen Desktop-OAuth-Client.

  2. Konfigurieren Sie den OAuth-Zustimmungsbildschirm und veröffentlichen Sie ihn in Produktion. Wenn Sie ihn im Testmodus lassen, läuft das Refresh-Token nach sieben Tagen ab.

  3. Fügen Sie http://127.0.0.1:53682/oauth2callback hinzu, wenn die Client-Konfiguration eine autorisierte Weiterleitungs-URI verlangt.

  4. Führen Sie aus:

GOOGLE_CLIENT_ID='...' GOOGLE_CLIENT_SECRET='...' npm run oauth:google

Der Helfer fordert access_type=offline, prompt=consent und nur https://www.googleapis.com/auth/documents. Legen Sie das gedruckte Refresh-Token in /etc/apocrypha.env; committen Sie es nicht.

Der Spiegel zielt auf GOOGLE_DOC_ID, nicht auf den Dokumenttitel. Das Umbenennen des Google-Dokuments bricht die Synchronisierung nicht und darf nicht durch eine titelbasierte Suche ersetzt werden.

Auf Alpha bereitstellen

Kopieren Sie dieses Projekt nach /srv/apocrypha und führen Sie dann als root aus:

cd /srv/apocrypha
npm ci --omit=dev
useradd --system --home /var/lib/apocrypha --shell /usr/sbin/nologin apocrypha || true
chown -R apocrypha:apocrypha /var/lib/apocrypha
install -o root -g root -m 600 deploy/apocrypha.env.example /etc/apocrypha.env
install -o root -g root -m 644 deploy/apocrypha.service /etc/systemd/system/apocrypha.service
systemctl daemon-reload
systemctl enable --now apocrypha

Bearbeiten Sie /etc/apocrypha.env mit echten, unabhängigen MCP_BEARER_TOKEN- und OAUTH_ACCESS_KEY-Werten, bevor Sie den Dienst starten. Der Prozess bindet immer 127.0.0.1; nginx ist der einzige öffentliche Listener.

Claude verbinden

Geben Sie im Dialog für benutzerdefinierte Verbindungen von Claude https://mcp.jensenabler.com/mcp ein und lassen Sie die optionalen Felder für OAuth-Client-ID und Client-Secret leer. Claude entdeckt die OAuth-Metadaten von Apocrypha und registriert sich dynamisch. Wenn die Autorisierungsseite von Apocrypha geöffnet wird, fügen Sie den privaten OAUTH_ACCESS_KEY ein und genehmigen Sie den Zugriff. Verwenden Sie hier nicht die Google-OAuth-Client-Anmeldeinformationen.

Der Genehmigungsschlüssel wird nur auf der Autorisierungsseite verwendet. Claude erhält ein eingeschränktes, ablaufendes Zugriffstoken und ein rotierendes Refresh-Token; es erhält niemals den Genehmigungsschlüssel oder das statische Bearer-Token.

Einen Bearer-Token-Client verbinden

Für einen MCP-Client, der benutzerdefinierte Header unterstützt, verwenden Sie Streamable HTTP unter https://mcp.jensenabler.com/mcp mit Authorization: Bearer <MCP_BEARER_TOKEN>. Das statische Token ist unabhängig von Claudes OAuth-Anmeldeinformationen.

Abnahmeaufrufe

curl https://mcp.jensenabler.com/healthz
curl -i -X POST https://mcp.jensenabler.com/mcp

Für eine Prüfung auf Protokollebene verwenden Sie den MCP Inspector mit Streamable HTTP, URL https://mcp.jensenabler.com/mcp, und entweder dessen OAuth-Flow oder den Anfrage-Header Authorization: Bearer <MCP_BEARER_TOKEN>.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Cross-session, cross-device memory for your agent: remember and recall notes. No key to start.

  • Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.

  • Universal memory for AI agents and tools. Save, organize and search context anywhere.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JensenAbler/apocrypha'

If you have feedback or need assistance with the MCP directory API, please join our Discord server