Stash MCP

Stash дает агенту долговременную память в PostgreSQL: записи сводятся в факты, связи и закономерности, доступ через MCP, запуск одной командой в Docker

  • 770 ★ репозитория
  • Последний коммит
  • Apache-2.0
MCP-сервер

Расширенный доступ

Почему такой уровень

  • Пишет и удаляет записи в PostgreSQL: инструмент `forget` стирает память, а консолидация сама переписывает факты
  • Тексты записей уходят поставщику моделей, который строит из них векторы и сводки
  • Слушает порт 8080 без токена, поэтому доступ к памяти получает любой, кто достучится до адреса
Все причины и проверки

alash3al/stash

Установка

Ручная установка

git clone https://github.com/alash3al/stash.git

Затем скопируйте `.env.example` в `.env`, впишите ключ и адрес модели и выполните `docker compose up`: поднимутся PostgreSQL с `pgvector`, миграции и сервер MCP с фоновой консолидацией.

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Пишет и удаляет записи в PostgreSQL: инструмент `forget` стирает память, а консолидация сама переписывает факты
  • Тексты записей уходят поставщику моделей, который строит из них векторы и сводки
  • Слушает порт 8080 без токена, поэтому доступ к памяти получает любой, кто достучится до адреса

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Stash — самостоятельно размещаемый MCP-сервер на Go, который хранит память агента между сессиями. Агент вызывает инструмент `remember`, чтобы записать эпизод или факт, `recall`, чтобы найти нужное по смыслу, и `forget`, чтобы удалить запись. Тексты превращаются в векторы и лежат в PostgreSQL с расширением `pgvector`. Память делится на пространства имен: `init` создает стартовое пространство `/self` с возможностями, ограничениями и предпочтениями, а `create_namespace` добавляет другие. Фоновая консолидация проходит девять стадий и превращает сырые записи в структурированное знание: факты, связи между ними, причинные цепочки, закономерности, противоречия, цели, шаблоны неудач и проверку гипотез. Каждая стадия обрабатывает только то, что появилось после прошлого запуска. Консолидацию можно запустить инструментом `consolidate` или командой CLI. Для просмотра есть `query_facts`, `query_relationships`, `list_contradictions` и `list_causal_links`, а `resolve_contradiction` помечает спор решенным. Сервер отдает MCP по SSE на `http://localhost:8080/sse`. Репозиторий содержит `docker-compose.yml`, который поднимает PostgreSQL с `pgvector`, применяет миграции и запускает сервер вместе с консолидацией. Векторы и сводки строит модель по OpenAI-совместимому API: нужны модель эмбеддингов и модель-рассуждатель, их задают в `.env`.

Для кого. Для разработчиков, которые хотят, чтобы агент в Cursor, Claude Desktop, Windsurf или OpenCode помнил предпочтения и решения между сессиями и держал память на собственном сервере.

Подходит, если

  • Агент в каждой новой сессии спрашивает одно и то же о стеке и привычках, и это нужно один раз записать через `remember`
  • Нужна память с общими пространствами имен: отдельные для проектов и для самого агента
  • Записи должны сводиться в факты, а противоречия между старыми и новыми решениями замечаться
  • Данные должны лежать в вашем PostgreSQL, а модели можно подключить через OpenAI-совместимый адрес, в том числе локальный Ollama

Не подходит, если

  • Нет Docker и нельзя поставить PostgreSQL с расширением `pgvector`: сервер без базы не работает
  • Нужна память без ключа к модели и без локальных моделей: векторы и консолидацию строит модель по API
  • Вы хотите хранить знания в обычных Markdown-файлах, которые правите руками: для этого подойдет Basic Memory
  • Нужен хостинг без обслуживания: облачная версия на usestash.io написана отдельно и не делит код с этим репозиторием

Пример запроса к агенту

Запомни в Stash, что этот проект работает на PostgreSQL 16 и ORM у нас нет, и напомни мне об этом в начале следующей сессии

MCP

Транспорт
sse
Авторизация
не нужна

Переменные окружения

STASH_OPENAI_API_KEY обязательная, секрет
Ключ поставщика моделей с OpenAI-совместимым API для эмбеддингов и консолидации, для Ollama подойдет любое значение
STASH_OPENAI_BASE_URL обязательная
Адрес API поставщика моделей
STASH_EMBEDDING_MODEL обязательная
Модель эмбеддингов, ее размерность должна совпадать с `STASH_VECTOR_DIM`
STASH_REASONER_MODEL обязательная
Модель, которая извлекает связи и пишет сводки при консолидации
STASH_POSTGRES_DSN обязательная, секрет
Строка подключения к PostgreSQL с расширением `pgvector`

Ограничения

  • Лицензия Apache-2.0. Последний выпуск в репозитории v0.2.11, версия до 1.0.
  • Размерность вектора `STASH_VECTOR_DIM` должна совпадать с моделью эмбеддингов: 1536 для `text-embedding-3-small`, 768 для `nomic-embed-text`. Инструкция для Ollama предупреждает, что значение фиксируется при первом запуске: чтобы сменить его, нужен чистый том или новая база.
  • Полностью локальный вариант описан в `docs/LOCAL_OLLAMA.md` (`nomic-embed-text` и `qwen2.5:3b`), его добавил сторонний участник и проверил на Linux. Автор называет небольшие модели годными для разработки.
  • Пример `docker-compose.yml` использует пароль базы `stash_dev_password`, а конфигурации клиентов указывают адрес SSE без токена. Для чужой сети пароль и доступ к порту 8080 надо закрывать самостоятельно.
  • Облачная версия на usestash.io, по словам автора, написана с нуля, и набор функций у нее отличается в обе стороны. В README также размещена реклама сервиса Atlas Cloud.

Как отключить. Уберите запись `stash` из конфигурации клиента: `~/.cursor/mcp.json` для Cursor, `claude_desktop_config.json` для Claude Desktop, `~/.codeium/windsurf/mcp_config.json` для Windsurf или `~/.config/opencode/config.json` для OpenCode. Затем остановите стек Docker Compose. Память хранится в томе `postgres_data`, его удаление стирает все записи.

Частые вопросы

Какие агенты умеют подключаться к Stash?

Любой клиент с поддержкой MCP по SSE. В репозитории даны готовые фрагменты для Cursor, Claude Desktop, OpenCode и Windsurf, все с адресом `http://localhost:8080/sse`. Для Claude Code отдельной инструкции нет.

Можно ли запустить Stash полностью локально?

Да, по `docs/LOCAL_OLLAMA.md`. Ollama работает на хосте, Stash в Docker обращается к ней по `http://host.docker.internal:11434/v1`. В `.env` задают модели `nomic-embed-text` и `qwen2.5:3b` и размерность `768`. Модели нужно скачать до первого запуска.

Что делает консолидация и когда она запускается?

Она превращает эпизоды в факты, а факты в связи, причинные цепочки и закономерности, ищет противоречия и ведет цели. Стадий девять, каждая берет только новые данные. В Docker Compose сервер стартует с флагом `--with-consolidation`, поэтому консолидация идет в фоне. Вручную ее запускают инструментом `consolidate` или командой `docker compose exec stash /stash consolidate run`.

Зачем нужно пространство имен?

Оно разделяет память по назначению. Инструмент `init` создает пространство `/self` для возможностей и предпочтений агента, `create_namespace` добавляет остальные. Контекстные инструменты `set_context`, `get_context` и `clear_context` требуют указать пространство.

Чем облачная версия отличается от этого репозитория?

Облако на usestash.io пока в бета-версии и бесплатно: вход через Google и один адрес MCP, ставить ничего не нужно. По заявлению автора, оно написано с нуля и не делит код с открытым репозиторием.

Что делать, если `recall` возвращает пустой результат?

По руководству сначала вызывают `init`, затем `remember`, и только потом `recall`. Проверьте также, что в `.env` указан рабочий ключ: без него эмбеддинги не строятся. Журнал смотрят командой `docker compose logs stash`.

Обсуждение

Вопросов и отзывов пока нет.

MCP-серверы

MCP-сервер долговременной памяти для ИИ-агентов: факты стареют по кривой забывания, связанные записи сжимаются в сводку

MCP-серверРасширенный доступ270Звезды репозитория
Официальный

Система долговременной памяти для AI-агентов: агент сохраняет опыт и факты, а затем находит их через встроенный MCP-сервер

MCP-серверШирокий доступ55,9 тыс.Звезды репозитория

Открытая инфраструктура для агентов, которые учатся на опыте: записи сессий, база знаний и пакеты навыков через CLI, MCP и API

ПлагинШирокий доступ340Звезды репозитория

Самостоятельно размещаемая долговременная память для агентов: семантический поиск, граф знаний и автоконсолидация через MCP и REST API

MCP-серверРасширенный доступ2,1 тыс.Звезды репозитория

MCP-сервер долговременной памяти для агентов: один бинарник на Rust, который работает офлайн и не вызывает языковую модель

MCP-серверШирокий доступ316Звезды репозитория

Самостоятельный MCP-сервер долговременной памяти для агентов: структурированные записи, версии с откатом и визуальная панель

MCP-серверРасширенный доступ1,4 тыс.Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
Stash (эта запись)нетне нужна770
Basic Memoryнетне нужна4 389хранит знания в обычных Markdown-файлах, которые читают и правят и человек, и агент
MCP Memory Serviceнетне нужна2 054память в локальной базе с векторным поиском, доступ через MCP и REST API
OKF Agent Memoryнетне нужна844память проекта в git-родном формате, один бинарник на Go и поиск BM25

Коротко о README

Главная страница репозитория начинается со слогана о памяти агента, быстрого запуска в Docker и ссылок на руководство и инструкцию для локального Ollama. Дальше идут блок о подключении Atlas Cloud, готовые конфигурации MCP для Cursor, Claude Desktop, OpenCode и Windsurf, описание девятистадийной консолидации и заметка об облачной версии. В репозитории есть каталог `docs` с двумя руководствами и страницей проекта, миграции базы, `Dockerfile`, пример `.env.example` и тесты ядра памяти в `internal/brain`.

Бейдж для README

Сообщить о проблеме

Foxx AIStash
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.