Skip to main content
Glama
miguelvictor

personal-memory-mcp

by miguelvictor

Персональный MCP-сервер памяти

Без потерь, структурированное, запрашиваемое хранилище фактов о вашей жизни, которое Claude читает и записывает во время любого разговора. Одно развёртывание обслуживает одного человека. Полностью работает на бесплатном тарифе Cloudflare (Workers + D1 + KV). Полную спецификацию см. в requirements.md.

  • Факты, а не документы. Каждый факт — это одно датированное утверждение с указанием источника.

  • Только добавление. Исправления добавляют новый факт и выводят из обращения старый с указателем; ничего не удаляется.

  • Аутентификация: OAuth 2.1 с динамической регистрацией клиентов; идентификация через GitHub, привязана к одной учётной записи GitHub.

  • Транспорт: потоковый HTTP на /mcp (без сохранения состояния createMcpHandler, без Durable Objects).

Настройка

1. Создайте ресурсы Cloudflare

npm install
npx wrangler d1 create memory
npx wrangler kv namespace create OAUTH_KV

Вставьте возвращённые database_id для D1 и id для пространства имён KV в wrangler.jsonc, затем примените миграции:

npx wrangler d1 migrations apply memory --remote

2. Создайте приложение GitHub OAuth

На https://github.com/settings/developers → New OAuth App:

  • Homepage URL: https://personal-memory-mcp.<your-subdomain>.workers.dev

  • Authorization callback URL: https://personal-memory-mcp.<your-subdomain>.workers.dev/callback

Найдите свой числовой идентификатор GitHub на https://api.github.com/users/<your-login> (поле id).

3. Установите секреты

npx wrangler secret put GITHUB_CLIENT_ID
npx wrangler secret put GITHUB_CLIENT_SECRET
npx wrangler secret put COOKIE_ENCRYPTION_KEY   # e.g. openssl rand -hex 32
npx wrangler secret put OWNER_GITHUB_ID         # numeric id, not login

(При развёртывании через Workers Builds CI/CD установите их один раз в панели управления Cloudflare в разделе Settings → Variables and Secrets вашего Worker; они сохраняются при развёртываниях.)

4. Разверните

npm run deploy

Или подключите репозиторий GitHub в панели управления Cloudflare (Workers Builds), чтобы каждый push развёртывался автоматически. Миграции не выполняются автоматически при развёртывании; либо продолжайте применять их вручную, либо задайте команду развёртывания Workers Builds:

npx wrangler d1 migrations apply memory --remote && npx wrangler deploy

5. Подключение из Claude.ai

Settings → Connectors → Add custom connector → URL https://personal-memory-mcp.<your-subdomain>.workers.dev/mcp, оставьте Client ID/Secret пустыми (динамическая регистрация клиентов). Вы будете направлены через вход в GitHub; любая учётная запись, кроме OWNER_GITHUB_ID, получит 403. Затем коннектор работает из веб-версии Claude, Desktop и iOS.

Добавьте в настройки профиля Claude.ai:

У меня есть персональный MCP-сервер памяти с именем "memory". Он является источником истины о моей жизни и переопределяет встроенную память. Когда мы говорим о чём-то личном, используйте его в соответствии с описаниями инструментов. Если он недоступен, сообщите мне и отметьте, что ваш ответ может быть устаревшим.

6. Начальное заполнение (необязательно)

  1. Попросите Claude составить seed.json на основе его встроенной памяти: [{topic, content, fact_date?, tags?}], один факт на запись.

  2. Проверьте его, затем:

npm run seed              # validates seed.json, writes seed-import.sql
npx wrangler d1 execute memory --remote --file=seed-import.sql
  1. В первом разговоре попросите Claude написать начальные сводки по темам (update_summary).

Related MCP server: chronomem

Разработка

cp .dev.vars.example .dev.vars   # separate GitHub OAuth app with callback http://localhost:8788/callback
npx wrangler d1 migrations apply memory --local
npm run dev                      # http://localhost:8788/mcp
npm test                         # vitest (workers runtime, real D1 + FTS5)
npm run typecheck

Тестируйте с помощью MCP-инспектора: npx @modelcontextprotocol/inspector@latest → подключитесь к http://localhost:8788/mcp. Перенаправление OAuth для localhost в инспекторе работает только с ALLOW_LOCALHOST_REDIRECTS=1 (установите в .dev.vars, никогда в продакшене — продакшен принимает только обратные вызовы коннектора Claude).

Примечания

  • Резервное копирование: используйте инструмент export (markdown или json). Собственный экспорт D1 не работает, пока существуют виртуальные таблицы FTS5. D1 Time Travel обеспечивает восстановление на момент времени (30 дней на платном тарифе, меньше на бесплатном — проверьте текущий срок хранения).

  • Сознательно отложено (решение владельца, а не упущение): еженедельное резервное копирование по cron в §11 в частный репозиторий GitHub и просмотрщик только для чтения /view из §12. Пока cron не существует, периодически запускайте export и храните вывод в безопасном месте.

  • Процесс одобрения OAuth принимает только обратные вызовы коннектора claude.ai/claude.com в качестве URI перенаправления (localhost требует указанный выше флаг только для разработки).

  • Строки никогда не удаляются при нормальной работе; владелец исправляет факты, сообщая об этом Claude.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Enables AI agents and MCP clients to store, retrieve, and manage bi-temporal, graph-aware facts in an embedded SQLite memory engine with token-budgeted recall and contradiction tracking.
    6
    1
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Enables personal AI memory management through MCP tools for adding, searching, exporting, and deleting memories, with knowledge-graph retrieval and multi-hop association for clients like Claude Desktop and Cursor.
    6
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP clients such as Cursor, Claude, and Windsurf to store and recall user preferences, behaviors, and other text-based information across conversations, using vector similarity search so conceptually related items are found even when exact keywords differ.
    15 npm
    MIT