Skip to main content
Glama

Exo

Персональный контекстный слой для агентных жизненных систем.

Exo — сокращение от экзокортекс, той части вашего мышления, которая живёт вне вашей головы, — это единая запись жизни в форме, которой владеете вы. Всё, что вы потребляете, всё, что вы пишете, и всё, что машина заключила из первых двух, — в одном месте с единым SQL-интерфейсом поверх всего.

Отфильтрованная копия этой записи публикуется на MCP-сервере только для чтения, чтобы любой ассистент перед вами мог использовать её как контекст — без того, чтобы вендор этого ассистента стал владельцем записи.

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)

Зачем

Вы должны владеть своим личным контекстом, своими операционными знаниями и своей памятью настолько, насколько это возможно. Именно это делает их переносимыми, и только это вообще делает возможной тонкозернистую конфиденциальность.

  • Вы владеете рутиной, не владея планировщиком. Самостоятельный хостинг всего — дело похвальное и не безболезненное; иногда чужая инфраструктура — правильный ответ. Перемещаться не должно только записи.

  • Никакой привязки к платформе, никакой привязки к модели. Запись — это parquet и markdown на вашем диске. Интерфейс — MCP, на котором говорит каждый ассистент.

  • Встречает вас там, где вы работаете. Централизованное хранилище, доступное через MCP, означает, что один и тот же контекст достигает вашего терминального агента, вашего редактора и вашего телефона.

Это существует потому, что альтернатива — дюжина силосов, каждый из которых знает десятую часть вас, и ни один из них не отдаст её обратно.

Related MCP server: mcp-multi-db

Что это на самом деле делает

Загрузчики вытаскивают ваши данные из силосов, в которых они заперты: Last.fm, Letterboxd, Goodreads, Untappd, Trakt, Raindrop, ваши экспорты из Claude и ChatGPT, ваши заметки в markdown, ваши опубликованные тексты, ваши git-репозитории. Каждый загрузчик пишет ровно в одну зону и больше никуда.

Запись хранит их разделёнными по тому, кто может писать, а не по тому, что это за данные:

уровень

что это

кем пишется

T0 потребление

что мир записал о вас — скробблы, оценки, сохранения

только загрузчики

T1 авторское

ваши слова: заметки, посты, вердикты, рецепты, задачи

вы, вручную

T2 производное

что машина заключила: атомы, векторы, аффинности

только деривация

Деривация читает T0 и T1 и физически не может видеть T2 — профиль, через который она читает, вообще не имеет представлений T2. Поэтому T2 всегда регенерируется из эталонных данных, и exo verify доказывает это, выполняя деривацию дважды и сравнивая дайджесты. Машинный вывод никогда не становится машинным входом.

Поверхность публикует физически отдельную копию, содержащую только строки, которые вы объявили публикуемыми. Удерживаемый материал отсутствует в опубликованных файлах, а не отфильтровывается во время чтения, поэтому ни ошибка ниже по потоку, ни внедрённая инструкция не могут до него добраться. Политика fail-closed: незадекларированная зона приводит к сбою сборки, а не выбирает значение по умолчанию в ту или иную сторону.

Движок и ваш инстанс

Этот репозиторий — движок. Он не хранит данных и никогда не будет.

Ваши данные, ваша конфигурация и ваши собственные загрузчики живут в инстансе — отдельном приватном каталоге (обычно в собственном приватном репозитории), который движок находит через $EXO_HOME:

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 hand

Загрузчик поставляется в движке, если его вход — это формат — экспорт Last.fm, папка с markdown, каталог git-репозиториев. Любой может владеть таким. Загрузчик принадлежит вашему инстансу, если его вход — это место: календари заведений вашего города, ваши смежные репозитории, ваш блог. Критерий не в том, насколько специфичен код; а в том, может ли посторонний вообще владеть таким входом.

Начало

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 back

Шаблоны, которые копирует exo init, находятся в exo/templates/ — прочитайте их, прежде чем редактировать копии.

Доступ с телефона

Смысл поверхности чтения в том, что запись отвечает, когда вы находитесь далеко от машины, которая её хранит. worker/ — это Cloudflare Worker, говорящий на MCP через HTTP — постоянно только для чтения, обслуживающий только публикационный пакет, — а worker/README.md пошагово описывает его развёртывание и подключение к Poke, ассистенту iMessage:

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 32

затем опубликуйте в него пакет (exo publish --cf, затем import.sh) и добавьте URL Worker'а и этот токен на poke.com/integrations/new. Любой MCP-клиент работает так же — Poke просто тот, кто достучится до вас по текстовому сообщению.

Затем прочитайте CONTEXT.md — это словарь, и остальная часть репозитория предполагает его.

Честные ограничения

  • Стоимость старта реальна. Это инструмент для того, кто уже ведёт заметки, уже экспортирует свои данные и уже хотел этого. Он не создаст эту привычку за вас.

  • Загрузчики ломаются. Они читают чужие форматы экспорта и скрейпят чужие страницы. Каждый из них сохраняет свой последний удачный файл, а не перезаписывает его при сбое, но прогнивший загрузчик — лишь вопрос времени.

  • Под капотом это второй мозг. Личная вики, загрузчики для данных потребления и архивов, некоторая дистилляция сверху. Новизна не в какой-то одной из этих частей; а в том, что они разделяют одну запись с одной границей публикации.

  • Загрузчик экспорта чатов — это складной нож. Он нормализует экспорты Claude и ChatGPT в единую форму, что полезно независимо от того, хотите ли вы остальное из этого.

Решения

Каждое неочевидное решение имеет ADR в docs/adr. Несущие из них:

0001

каталог DuckDB поверх файлов, родных для уровней, и стена

0005

разделите ETL: ноутбук загружает, облако пересобирает

0006

удалённая поверхность чтения постоянно только для чтения

0007

ограничьте радиус поражения внедрённого чтения

0014

код публичен, инстанс приватный

0016

процедура — это ресурс, а не инструмент

Участие

Сначала прочитайте CONTRIBUTING.md — особенно часть о том, чтобы никогда не помещать личные данные в этот репозиторий, включая ваши собственные, и список изменений, которые выглядят мелкими, но пересоздают каждый id в работающем инстансе.

MIT.

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

  • F
    license
    Not graded
    quality
    B
    maintenance
    Model Context Protocol (MCP) server that gives AI assistants a safe, correct data-analyst capability over business metrics - without raw SQL improvisation.
  • A
    license
    A
    quality
    A
    maintenance
    Read-only MCP server for querying PostgreSQL, MySQL, and SQLite from AI agents — multi-database, safe by default.
    4
    18
    1
    ISC
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP 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.
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    A read-only MCP server that exposes SQL database access to LLMs, supporting multiple database types, compact columnar results, pagination, and file export.
    6
    22
    MIT

View all related MCP servers

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.

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/reeswrites/exo'

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