sgx-labs/statelessagent

sgx-labs/statelessagent

от sgx-labs
MCP сервер SAME даёт AI-агентам кодинга постоянную память: индексирует markdown-заметки, автоматически подбирает контекст после перезапуска и фиксирует решения. Работает локально с Claude Code, Cursor, Windsurf и другими. Без облаков и телеметрии.

SAME — Persistent Memory for AI Coding Agents

License: BSL 1.1 Go Latest Release GitHub Stars MCP Tools Discord

Your AI forgets everything between sessions. SAME fixes that.

SAME gives every AI coding tool persistent memory. Claude Code, Cursor, Windsurf, Codex CLI, Gemini CLI — one memory layer that works everywhere. It indexes your markdown notes, surfaces relevant context automatically, and records decisions and handoffs so your AI picks up where it left off.

One binary. Fully local. No cloud. No telemetry. Mac, Linux, Windows, Raspberry Pi.

Install

# macOS / Linux
curl -fsSL https://statelessagent.com/install.sh | bash

# Windows (PowerShell)
irm https://statelessagent.com/install.ps1 | iex

Or via npm (all platforms): npm install -g @sgx-labs/same

Installed via npm? Update with npx same@latest or npm update -g @sgx-labs/same.

See It Work

same demo
Indexing 5 sample notes...
Searching: "authentication decision"

  1. decisions/auth-strategy.md (score: 0.94)
     "We chose JWT with refresh tokens for..."

  2. notes/api-security.md (score: 0.87)
     "Auth middleware validates tokens at..."

Asking: "what did we decide about authentication?"

  Based on your notes, you decided to use JWT with refresh
  tokens (decisions/auth-strategy.md). The API middleware
  validates tokens at the gateway level (notes/api-security.md).

No accounts. No API keys. Everything runs locally.
Инструменты были проиндексированы:
create_handoffидемпотентный

Создаёт заметку для передачи сессии, чтобы следующая сессия продолжила с того места, где остановилась эта. Записывает, над чем вы работали, что осталось сделать и какие есть блокеры. Аргументы: summary: что было сделано за эту сессию pending: что осталось сделать (необязательно) blockers: любые блокеры или открытые вопросы (необязательно) agent: необязательное указание автора, сохраняется в frontmatter (например, 'codex') Возвращает путь к заметке для передачи.

Параметры
  • agentstring

    Optional writer attribution (e.g. codex)

  • blockersstring

    Any blockers or open questions

  • pendingstring

    What is left to do

  • summarystringобязательный

    What was accomplished this session

find_similar_notesтолько чтение

Находит заметки, охватывающие темы, схожие с заданной заметкой. Используйте это для обнаружения связанного контекста, поиска заметок, которые могут конфликтовать, или построения более широкой картины темы. Аргументы: path: Относительный путь исходной заметки top_k: Количество похожих заметок (по умолчанию 5, максимум 100) Возвращает список связанных заметок, отсортированных по степени сходства.

Параметры
  • pathstringобязательный

    Relative path of the source note

  • top_kintegerобязательный

    Number of similar notes (default 5, max 100)

get_noteтолько чтение

Читает полное содержимое заметки. Используется после того, как search_notes возвращает релевантный результат и требуется полный текст. Пути указываются относительно корня хранилища. Аргументы: path: Относительный путь от корня хранилища (возвращается search_notes) Возвращает полное текстовое содержимое в формате Markdown.

Параметры
  • pathstringобязательный

    Relative path from vault root

get_session_contextтолько чтение

Получает контекст ориентации для новой сессии. Возвращает закрепленные заметки, последнюю передачу и последние решения: всё, что нужно, чтобы продолжить с того места, где закончилась предыдущая сессия. Возвращает структурированный контекст сессии.

Параметры

Без параметров.

index_statsтолько чтение

Проверяет состояние и размер индекса заметок. Используйте это, чтобы убедиться, что индекс актуален, или чтобы сообщить статистику пользователю. Возвращает количество заметок, количество чанков, время последней индексации, информацию о модели эмбеддингов и размер базы данных. Если пользователь сообщает о проблемах, предложите ему запустить same doctor для диагностики. Для сообщений об ошибках направляйте его по адресу: https://github.com/sgx-labs/statelessagent/issues

Параметры

Без параметров.

mem_briefтолько чтение

Получает ознакомительный брифинг о том, что сейчас важно. Показывает недавнюю активность, открытые решения и ключевой контекст. Используется в начале сессии для понимания текущего состояния проекта. Args: max_items: Максимальное количество элементов в разделе (по умолчанию 5) Возвращает краткий брифинг, сгенерированный из содержимого хранилища. (экспериментально)

Параметры
  • max_itemsintegerобязательный

    Maximum items per section (default 5)

mem_consolidate

Консолидирует связанные заметки в хранилище. Объединяет дубликаты, разрешает противоречия, извлекает ключевые факты. Создаёт новые файлы знаний без изменения оригиналов. Используйте это, когда в хранилище много похожих или пересекающихся заметок. Аргументы: dry_run: Показывает предварительный просмотр того, что будет объединено, без записи файлов (по умолчанию false) threshold: Порог сходства для группировки заметок, 0.0–1.0 (по умолчанию 0.75) Возвращает сводку консолидации с найденными группами, извлечёнными фактами и разрешёнными конфликтами. (экспериментально)

Параметры
  • dry_runbooleanобязательный

    Preview what would be consolidated without writing files

  • thresholdnumberобязательный

    Similarity threshold for grouping notes (0.0-1.0)

mem_forgetидемпотентный

Подавляет запись в памяти, чтобы она не всплывала в обычном поиске. Запись не удаляется — она помечается как подавленная и будет показываться, только если её явно запросить. Используйте это для устаревших, неверных или неуместных воспоминаний. Операция не имеет простого обратного хода: инструмента mem_restore не существует. Аргументы: path: путь к подавляемой записи (обязательно) reason: причина подавления (необязательно) Возвращает подтверждение подавления. (экспериментально)

Параметры
  • pathstringобязательный

    Path of the note to suppress

  • reasonstring

    Why this memory is being suppressed

mem_healthтолько чтение

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

Параметры

Без параметров.

recent_activityтолько чтение

Получает недавно изменённые заметки. Используйте это, чтобы увидеть, что изменилось недавно или чтобы сориентироваться в начале сессии. Аргументы: limit: Количество последних заметок (по умолчанию 10, максимум 50) Возвращает список недавно изменённых заметок с названиями и путями.

Параметры
  • limitintegerобязательный

    Number of recent notes (default 10, max 50)

reindex

Повторно сканирует и переиндексирует все заметки Markdown. Используйте это, если пользователь добавил или изменил заметки, а результаты поиска кажутся устаревшими. По умолчанию инкрементальный (заново встраивает только изменённые файлы). Аргументы: force: Заново встраивает все файлы независимо от изменений (по умолчанию false) Возвращает статистику индексации.

Параметры
  • forcebooleanобязательный

    Re-embed all files regardless of changes

save_decisionидемпотентный

Записывает решение по проекту. Добавляет запись в лог решений, чтобы будущие сессии могли её найти. Аргументы: title: Короткий заголовок решения (например, 'Use JWT for auth') body: Полное описание решения — что решили, почему, какие альтернативы рассматривали status: Статус решения — 'accepted', 'proposed' или 'superseded' (по умолчанию 'accepted') agent: Необязательное указание автора в frontmatter (например, 'codex') Возвращает подтверждение.

Параметры
  • agentstring

    Optional writer attribution (e.g. codex)

  • bodystringобязательный

    Full decision details

  • statusstringобязательный

    accepted, proposed, or superseded (default accepted)

  • titlestringобязательный

    Short decision title

save_kaizenидемпотентный

Логирует точку трения, ошибку или идею для улучшения, обнаруженные в ходе работы. SAME отслеживает происхождение — если исходные файлы позже изменятся, элемент автоматически помечается как потенциально учтённый. Аргументы: description: Что было замечено (обязательно) area: Область кодовой базы (например, 'indexer', 'config', 'hooks') (опционально) agent: Кто это заметил (опционально) sources: Пути к связанным файлам для отслеживания происхождения (опционально) Возвращает подтверждение с путём к файлу.

Параметры
  • agentstring

    Who observed it

  • areastring

    Area of the codebase (e.g. indexer, config, hooks)

  • descriptionstringобязательный

    What was observed — friction, bug, or improvement idea

  • sourcesnull | array

    Related file paths for provenance tracking

save_note

Создаёт или обновляет заметку в Markdown в хранилище. Заметка записывается на диск и индексируется автоматически. Опционально указывает исходные файлы для отслеживания происхождения — SAME пометит эту заметку как устаревшую, если источники изменятся. Аргументы: path: Относительный путь внутри хранилища (например, 'decisions/auth-approach.md') content: Содержимое в формате Markdown для записи append: Если true, добавляет к существующему файлу вместо перезаписи (по умолчанию false) agent: Опциональная информация об авторе, сохраняемая в frontmatter (например, 'codex') sources: Пути к файлам, из которых получена эта заметка (опционально) Возвращает подтверждение с сохранённым путём.

Параметры
  • agentstring

    Optional writer attribution (e.g. codex)

  • appendbooleanобязательный

    Append to existing file instead of overwriting

  • contentstringобязательный

    Markdown content to write

  • pathstringобязательный

    Relative path within the vault (e.g. decisions/auth.md)

  • sourcesnull | array

    File paths that this note was derived from or references. SAME tracks these to detect when source material changes, flagging the note as potentially stale.

search_across_vaultsтолько чтение

Выполняет поиск сразу по нескольким зарегистрированным хранилищам. Используйте это вместо search_notes, когда нужен контекст из других проектов или межпроектный обзор. Хранилища должны быть предварительно зарегистрированы через CLI (same vault add <name> <path>). Аргументы: query: Поисковый запрос на естественном языке top_k: Количество результатов (по умолчанию 10, максимум 100) vaults: Псевдонимы хранилищ через запятую для поиска. Если не указано — ищет по всем зарегистрированным хранилищам. Неизвестные псевдонимы игнорируются без уведомления. Возвращает ранжированные результаты с заголовками, путями, фрагментами и именем исходного хранилища.

Параметры
  • querystringобязательный

    Natural language search query

  • top_kintegerобязательный

    Number of results (default 10, max 100)

  • vaultsstring

    Comma-separated vault aliases (default: all)

search_notesтолько чтение

Ищет в базе знаний пользователя заметки, решения и контекст по теме. Используйте этот инструмент, когда нужно разобраться в вопросе, найти предыдущие решения или понять архитектуру проекта. Аргументы: query: Естественно-языковой поисковый запрос (например, 'подход к аутентификации', 'решения по схеме БД') top_k: Количество результатов (по умолчанию 10, максимум 100) Возвращает ранжированный список подходящих заметок с заголовками, путями и фрагментами текста.

Параметры
  • querystringобязательный

    Natural language search query

  • top_kintegerобязательный

    Number of results (default 10, max 100)

search_notes_filteredтолько чтение

Ищет в базе знаний пользователя с фильтрами по метаданным. Используйте, когда нужно сузить результаты по домену (например, 'engineering'), рабочему потоку (например, 'api-redesign'), тегам, атрибуции агента, состоянию доверия или типу контента. Аргументы: query: Поисковый запрос на естественном языке top_k: Количество результатов (по умолчанию 10, не более 100) domain: Фильтр по домену (например, 'engineering', 'product') workstream: Фильтр по рабочему потоку или названию проекта tags: Теги, разделённые запятыми, для фильтрации agent: Фильтр по атрибуции агента (например, 'codex', 'claude') trust_state: Фильтр по состоянию доверия (validated, stale, contradicted, unknown) content_type: Фильтр по типу контента (decision, handoff, note, research) Возвращает отфильтрованный ранжированный список.

Параметры
  • agentstring

    Filter by agent attribution

  • content_typestring

    Filter by content type (decision, handoff, note, research)

  • domainstring

    Filter by domain

  • querystringобязательный

    Natural language search query

  • tagsstring

    Comma-separated tags to filter by

  • top_kintegerобязательный

    Number of results (default 10, max 100)

  • trust_statestring

    Filter by trust state (validated, stale, contradicted, unknown)

  • workstreamstring

    Filter by workstream

Похожие MCP-сервера

gingugu/gingugu

gingugu/gingugu

Локальный MCP-сервер Gingugu дает AI-ассистентам постоянную память на SQLite: контекст между сессиями, проектами и репозиториями. Гибридный поиск, хронология, связи, уровни доверия. Один файл, без ...

Python4
AlekseiMarchenko/central-intelligence

AlekseiMarchenko/central-intelligence

MCP сервер Central Intelligence даёт AI-агентам долговременную память: сохраняйте факты и контекст между сессиями, делитесь знаниями между инструментами. Инструменты запоминания, поиска и контекста работают с Claude Code, Cursor и другими. Данные возвращаются дословно, без перезаписи.

TypeScript3
pomazanbohdan/memory-mcp-1file

pomazanbohdan/memory-mcp-1file

Высокопроизводительный MCP-сервер на Rust для AI-агентов. Обеспечивает семантическую память, граф знаний и индексацию кода. Работает полностью локально — один бинарник без внешних БД и облака. Подх...

Rust24
hifriendbot/cogmemai-mcp

hifriendbot/cogmemai-mcp

MCP сервер CogmemAi добавляет AI-ассистентам (Claude Code, Cursor и др.) постоянную семантическую память с точностью 95% (LongMemEval). Автономно фиксирует решения, проактивно вспоминает контекст — знания не теряются между сессиями и командами.

TypeScript7
penfieldlabs/penfield-mcp

penfieldlabs/penfield-mcp

MCP-сервер Penfield для долговременной памяти AI-агентов. Сохраняет решения, предпочтения и контекст между сессиями, строит граф знаний. Работает с Claude, Cursor, Windsurf и любыми MCP-инструментами.

Dockerfile6
Cartisien/engram-mcp

Cartisien/engram-mcp

MCP-сервер для постоянной семантической памяти AI-агентов. Хранит воспоминания в SQLite, ищет по смыслу через локальные эмбеддинги Ollama — без облака и API-ключей. Пять инструментов: remember, rec...

TypeScript1
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин