exo
Exo
Eine persönliche Kontextebene für agentische Lebenssysteme.
Exo — kurz für Exocortex, der Teil deines Denkens, der außerhalb deines Kopfes lebt — ist eine Aufzeichnung eines Lebens, in einer Form, die dir gehört. Alles, was du konsumierst, alles, was du schreibst, und alles, was eine Maschine aus beidem geschlossen hat, an einem Ort mit einer einzigen SQL-Oberfläche.
Eine gefilterte Kopie dieser Aufzeichnung wird auf einem schreibgeschützten MCP-Server veröffentlicht, sodass jeder Assistent, der vor dir steht, sie als Kontext nutzen kann – ohne dass der Anbieter dieses Assistenten die Aufzeichnung besitzt.
loaders ─────────▶ the record ─────────▶ the surface
what reaches it what it holds what it exposes
(one per source, (tier zones, one (a fixed set of named
each writes one SQL surface, one questions, read-only
zone) wall) by construction)Warum
Du solltest deinen persönlichen Kontext, dein operatives Wissen und dein Gedächtnis so weit wie möglich besitzen. Das macht sie portabel, und es ist das Einzige, was feinkörnige Privatsphäre überhaupt möglich macht.
Du besitzt die Routine, nicht den Scheduler. Selbsthosting ist bewundernswert und nicht schmerzfrei; manchmal ist die Infrastruktur eines anderen die richtige Antwort. Was nicht umziehen sollte, ist die Aufzeichnung.
Kein Plattform-Lock-in, kein Modell-Lock-in. Die Aufzeichnung ist Parquet und Markdown auf deiner Festplatte. Die Oberfläche ist MCP, das jeder Assistent spricht.
Triff dich, wo du arbeitest. Ein zentraler Speicher, der über MCP erreichbar ist, bedeutet, dass derselbe Kontext deinen Terminal-Agenten, deinen Editor und dein Telefon erreicht.
Das existiert, weil die Alternative ein Dutzend Silos sind, die jeweils ein Zehntel von dir kennen und keines davon zurückgibt.
Related MCP server: mcp-multi-db
Was es tatsächlich tut
Loader holen deine Daten aus den Silos, in denen sie gefangen sind: Last.fm, Letterboxd, Goodreads, Untappd, Trakt, Raindrop, deine Claude- und ChatGPT-Exporte, deine Markdown-Notizen, deine veröffentlichten Texte, deine Git-Repos. Jeder Loader schreibt genau eine Zone und sonst nichts.
Die Aufzeichnung hält sie getrennt nach wer schreiben darf, nicht nach dem, was die Daten sind:
Stufe | was es ist | geschrieben von |
T0 Konsum | was die Welt über dich aufgezeichnet hat – Scrobbles, Bewertungen, Speicherungen | nur Loader |
T1 verfasst | deine Worte: Notizen, Beiträge, Urteile, Rezepte, Aufgaben | du, von Hand |
T2 abgeleitet | was eine Maschine geschlossen hat: Atome, Vektoren, Affinitäten | nur Ableitung |
Ableitung liest T0 und T1 und kann T2 physisch nicht sehen – das Profil, durch das es liest, hat überhaupt keine T2-Sichten. T2 wird also immer aus den Grunddaten neu generiert, und exo verify beweist das, indem es zweimal ableitet und die Digests vergleicht. Maschinenausgabe wird niemals Maschineneingabe.
Die Oberfläche veröffentlicht eine physisch getrennte Kopie, die nur Zeilen enthält, die du als veröffentlichbar deklariert hast. Zurückgehaltenes Material fehlt in den veröffentlichten Dateien, wird nicht zur Lesezeit gefiltert, sodass kein Fehler im Downstream und keine injizierte Anweisung es erreichen kann. Die Richtlinie ist fail-closed: Eine nicht deklarierte Zone lässt den Build fehlschlagen, anstatt in die eine oder andere Richtung zu standardisieren.
Die Engine und deine Instanz
Dieses Repository ist die Engine. Sie enthält keine Daten und wird es auch nie.
Deine Daten, deine Konfiguration und deine eigenen Loader leben in einer Instanz – einem separaten, privaten Verzeichnis (normalerweise ein eigenes privates Repo), das die Engine über $EXO_HOME findet:
your-instance/
exo.toml who you are, where your inputs live
serve-manifest.json what may leave this machine
raw/ your exports and mirrors
zones/ the record itself
plugins/ loaders only you could have
items/ your tasks, habits, slots
procedures/ how you do a recurring thing, by handEin Loader gehört in die Engine, wenn seine Eingabe ein Format ist – ein Last.fm-Export, ein Ordner mit Markdown, ein Verzeichnis mit Git-Repos. Jeder kann so etwas halten. Ein Loader gehört in deine Instanz, wenn seine Eingabe ein Ort ist: die Veranstaltungskalender deiner Stadt, deine Schwester-Repos, dein Blog. Der Test ist nicht, wie spezifisch der Code ist, sondern ob ein Fremder diese Eingabe überhaupt halten könnte.
Start
uv sync
uv run exo init ~/my-exo # scaffold an instance
export EXO_HOME=~/my-exo
# drop your exports into $EXO_HOME/raw/exports/, then:
uv run exo rebuild # ingest -> index -> derive -> catalog
uv run exo query "SELECT artist, count(*) FROM t0_music GROUP BY 1 ORDER BY 2 DESC LIMIT 10"
uv run exo publish --dry-run # what would leave, and what is held backDie Vorlagen, die exo init kopiert, sind exo/templates/ – lies sie, bevor du die Kopien bearbeitest.
Erreiche es von deinem Telefon aus
Der Sinn der Lesefläche ist, dass die Aufzeichnung antwortet, wenn du dich nicht in der Nähe des Rechners befindest, der sie hält. worker/ ist ein Cloudflare Worker, der MCP über HTTP spricht – dauerhaft schreibgeschützt, serviert nur das Veröffentlichungspaket – und worker/README.md führt dich durch die Einrichtung und Verbindung mit Poke, dem iMessage-Assistenten:
cd worker
cp wrangler.example.toml wrangler.toml # your database id, your buckets, your name
npx wrangler d1 create exo # + r2 bucket create exo-vectors
npx wrangler deploy
npx wrangler secret put AUTH_TOKEN # openssl rand -hex 32dann veröffentliche ein Bundle darin (exo publish --cf, dann import.sh), und füge die URL des Workers und das Token unter poke.com/integrations/new hinzu. Jeder MCP-Client funktioniert auf die gleiche Weise – Poke ist nur derjenige, der dich per SMS erreicht.
Dann lies CONTEXT.md – es ist das Vokabular, und der Rest des Repos setzt es voraus.
Ehrliche Grenzen
Die Anschaffungskosten sind real. Dies ist ein Werkzeug für jemanden, der bereits Notizen macht, seine Daten bereits exportiert und sich das bereits gewünscht hat. Es wird die Gewohnheit nicht für dich aufbauen.
Loader brechen. Sie lesen die Exportformate anderer Leute und kratzen die Seiten anderer Leute. Jeder behält seine letzte gute Datei, anstatt sie mit einem Fehler zu überschreiben, aber ein verrotteter Loader ist eine Frage der Zeit.
Es ist ein zweites Gehirn darunter. Ein persönliches Wiki, Loader für Konsumdaten und Archive, etwas Destillation obendrauf. Das Neue ist keines davon; es ist, dass sie eine Aufzeichnung mit einer einzigen Veröffentlichungsgrenze teilen.
Der Chat-Export-Loader ist ein Taschenmesser. Er normalisiert Claude- und ChatGPT-Exporte in eine Form, was nützlich ist, ob du den Rest willst oder nicht.
Die Entscheidungen
Jede nicht offensichtliche Wahl hat eine ADR in docs/adr. Die tragenden:
a DuckDB catalog over tier-native files, and the wall | |
split the ETL: the laptop ingests, the cloud rebuilds | |
the remote read surface is permanently read-only | |
bound the blast radius of an injected read | |
the code is public, the instance is private | |
a procedure is a resource, not a tool |
Mitwirken
Lies zuerst CONTRIBUTING.md – insbesondere den Teil darüber, niemals personenbezogene Daten in dieses Repository zu legen, auch nicht deine eigenen, und die Liste der klein aussehenden Änderungen, die jede ID in einer laufenden Instanz neu prägen.
MIT.
This server cannot be installed
Maintenance
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
- FlicenseNot gradedqualityBmaintenanceModel Context Protocol (MCP) server that gives AI assistants a safe, correct data-analyst capability over business metrics - without raw SQL improvisation.
- AlicenseAqualityAmaintenanceRead-only MCP server for querying PostgreSQL, MySQL, and SQLite from AI agents — multi-database, safe by default.4181ISC
- AlicenseNot gradedqualityBmaintenanceMCP server providing read-only access to SQL Server databases for AI assistants, enabling schema exploration, query execution, and foreign key inference with token-efficient TOON responses.1MIT
- AlicenseAqualityAmaintenanceA read-only MCP server that exposes SQL database access to LLMs, supporting multiple database types, compact columnar results, pagination, and file export.622MIT
Related MCP Connectors
The personal context layer for AI: your profile and files, read by any MCP client over OAuth.
Person-owned, portable AI memory as a remote MCP server, readable and writable by any MCP client.
Private-by-default, local-first memory/context/task orchestrator for MCP apps and agents.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/reeswrites/exo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server