memstate-ai/memstate-mcp

memstate-ai/memstate-mcp

от memstate-ai
Сервер версионированной памяти для AI-агентов — хранит факты, отслеживает их изменения и автоматически обнаруживает конфликты. В отличие от RAG, использует точное key-value хранение вместо эмбеддин...

Memstate AI - MCP

npm version License: MIT MCP Node memstate-mcp MCP server

Versioned memory for AI agents. Store facts, detect conflicts, and track how decisions change over time — exposed as a hosted MCP server.

Dashboard · Docs · Pricing


Why Memstate?

RAG (most other memory systems) Memstate AI
Token usage per conversation ~7,500 ~1,500
Agent visibility Black box Full transparency
Memory versioning None Full history
Token growth as memories scale O(n) O(1)
Infrastructure required Yes None — hosted SaaS

Other memory systems dump everything into your context window and hope for the best. Memstate gives your agent a structured, versioned knowledge base it navigates precisely — load only what you need, know what changed, know when facts conflict.


Benchmarks

We built an open-source benchmark suite that tests what actually matters for agent memory: can your system store facts, recall them accurately across sessions, detect conflicts when things change, and maintain context as a project evolves?

Head-to-Head: Memstate AI vs Mem0

Both systems were tested under identical conditions using the same agent (Claude Sonnet 4.6, temperature 0), the same scenarios, and the same scoring rubric.

memstate_delete

Выполняет мягкое удаление памяти по keypath. Создаёт tombstone-версию с сохранением полной истории. Память можно восстановить, записав новое значение по тому же keypath. **ИСПОЛЬЗУЙ ЭТО КОГДА:** нужно удалить устаревшие или некорректные записи, очистить поддерево keypath или пометить память как больше неактуальную. **НЕ ДЛЯ:** обновления содержимого (используй memstate_set или memstate_remember, чтобы перезаписать новыми данными). memstate_delete(project_id="myapp", keypath="config.old_setting") memstate_delete(project_id="myapp", keypath="config", recursive=true) → удаляет config и все дочерние записи История сохраняется. Чтобы увидеть удаление в цепочке версий, используй memstate_history. Keypath добавляется с префиксом автоматически.

Выполняет мягкое удаление памяти по keypath. Создаёт tombstone-версию с сохранением полной истории. Память можно восстановить, записав новое значение по тому же keypath. **ИСПОЛЬЗУЙ ЭТО КОГДА:** нужно удалить устаревшие или некорректные записи, очистить поддерево keypath или пометить память как больше неактуальную. **НЕ ДЛЯ:** обновления содержимого (используй memstate_set или memstate_remember, чтобы перезаписать новыми данными). memstate_delete(project_id="myapp", keypath="config.old_setting") memstate_delete(project_id="myapp", keypath="config", recursive=true) → удаляет config и все дочерние записи История сохраняется. Чтобы увидеть удаление в цепочке версий, используй memstate_history. Keypath добавляется с префиксом автоматически.

Параметры

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

    Required. Project containing the memory.

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

    Required. Keypath to delete (auto-prefixed with 'project.{project_id}.').

  • recursiveboolean

    If true, delete the entire keypath subtree. Default: false.

memstate_delete_project

Мягко удаляет проект целиком и все его воспоминания. Создаёт tombstone-версии для каждого воспоминания, сохраняя полную историю. Проект скрывается из списков, но его можно восстановить, создав новый проект с тем же ID. **ИСПОЛЬЗУЙТЕ ЭТО, КОГДА:** нужно удалить все воспоминания для проекта, например, для очистки тестовых данных или вывода проекта из эксплуатации. memstate_delete_project(project_id="old-project") Все воспоминания получают отдельные tombstone-версии. История сохраняется через memstate_history.

Мягко удаляет проект целиком и все его воспоминания. Создаёт tombstone-версии для каждого воспоминания, сохраняя полную историю. Проект скрывается из списков, но его можно восстановить, создав новый проект с тем же ID. **ИСПОЛЬЗУЙТЕ ЭТО, КОГДА:** нужно удалить все воспоминания для проекта, например, для очистки тестовых данных или вывода проекта из эксплуатации. memstate_delete_project(project_id="old-project") Все воспоминания получают отдельные tombstone-версии. История сохраняется через memstate_history.

Параметры

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

    Required. Project ID to soft-delete.

memstate_get

Просматривать и извлекать воспоминания. Используйте ДО начала задач, чтобы получить существующие знания. **ИСПОЛЬЗУЙТЕ ЭТО, КОГДА:** нужно прочитать то, что уже сохранено - список проектов, просмотреть дерево проекта или получить содержимое по keypath. **НЕ ДЛЯ:** сохранения нового содержимого (используйте memstate_remember для markdown/сводок, memstate_set для одного значения keypath). memstate_get() → список всех проектов memstate_get(project_id="myapp") → полное дерево проекта memstate_get(project_id="myapp", keypath="database") → поддерево memstate_get(project_id="myapp", keypath="db", include_content=true) → с полным содержимым memstate_get(project_id="myapp", keypath="config", at_revision=2) → переход к версии 2 Keypath автоматически дополняется префиксом. По умолчанию recursive=true. Используйте at_revision с номерами версий из memstate_history.

Просматривать и извлекать воспоминания. Используйте ДО начала задач, чтобы получить существующие знания. **ИСПОЛЬЗУЙТЕ ЭТО, КОГДА:** нужно прочитать то, что уже сохранено - список проектов, просмотреть дерево проекта или получить содержимое по keypath. **НЕ ДЛЯ:** сохранения нового содержимого (используйте memstate_remember для markdown/сводок, memstate_set для одного значения keypath). memstate_get() → список всех проектов memstate_get(project_id="myapp") → полное дерево проекта memstate_get(project_id="myapp", keypath="database") → поддерево memstate_get(project_id="myapp", keypath="db", include_content=true) → с полным содержимым memstate_get(project_id="myapp", keypath="config", at_revision=2) → переход к версии 2 Keypath автоматически дополняется префиксом. По умолчанию recursive=true. Используйте at_revision с номерами версий из memstate_history.

Параметры

  • project_idstring

    Project to retrieve from. If omitted, lists all projects.

  • keypathstring

    Subkeypath within project. If omitted with project_id, returns the full project tree.

  • recursivenullboolean

    Include subtree (default: true)

  • include_contentboolean

    If true, include full memory content in response (not just keypaths)

  • at_revisionnullinteger

    Optional revision number for time-travel queries. Use version numbers from memstate_history.

  • content_limitinteger

    Max memories to hydrate when include_content=true (default: 200, max: 1000)

memstate_history

Просмотр истории версий для keypath или цепочки памяти. Используйте, когда нужно увидеть, как значение менялось со временем. **ИСПОЛЬЗУЙТЕ ЭТО ДЛЯ:** отладки прошлого состояния, аудита изменений или восстановления предыдущего значения. **НЕ ДЛЯ:** чтения текущего содержимого (используйте memstate_get) или сохранения (используйте memstate_remember или memstate_set). memstate_history(project_id="myapp", keypath="config.database.port") Возвращает все версии с временными метками и номерами версий; последняя помечена is_latest=true. Используйте номера версий с memstate_get(at_revision=N), чтобы перемещаться во времени к любому прошлому состоянию.

Просмотр истории версий для keypath или цепочки памяти. Используйте, когда нужно увидеть, как значение менялось со временем. **ИСПОЛЬЗУЙТЕ ЭТО ДЛЯ:** отладки прошлого состояния, аудита изменений или восстановления предыдущего значения. **НЕ ДЛЯ:** чтения текущего содержимого (используйте memstate_get) или сохранения (используйте memstate_remember или memstate_set). memstate_history(project_id="myapp", keypath="config.database.port") Возвращает все версии с временными метками и номерами версий; последняя помечена is_latest=true. Используйте номера версий с memstate_get(at_revision=N), чтобы перемещаться во времени к любому прошлому состоянию.

Параметры

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

    Required. Project containing the memory.

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

    Required. Keypath to get version history for (e.g. 'config.database.port').

memstate_remember

Сохраняет markdown, сводки задач или любой текст. Сервер автоматически извлекает ключевые пути (keypaths) и создаёт структурированные записи. Это ПРЕДПОЧТИТЕЛЬНЫЙ способ сохранения информации. **ИСПОЛЬЗУЙ ЭТО КОГДА:** Нужно сохранить сводки задач, заметки встреч, документацию или любой текст с несколькими фактами. Сервер сам занимается организацией, обнаружением конфликтов и управлением версиями. **НЕ ДЛЯ:** Установки одного конкретного ключевого пути (keypath) с коротким значением (например, config.port = "8080") — для этого используй memstate_set. memstate_remember(project_id="myapp", content="## Сводка задач\n- Добавлен OAuth\n- Файлы: auth.go, middleware.go", source="agent") memstate_remember(project_id="myapp", content="Архитектурное решение: перешли на JWT-токены для управления сессиями") Ограничение по содержимому: 100 000 символов. Обработка асинхронная (~15-18 с); job_id возвращается сразу.

Сохраняет markdown, сводки задач или любой текст. Сервер автоматически извлекает ключевые пути (keypaths) и создаёт структурированные записи. Это ПРЕДПОЧТИТЕЛЬНЫЙ способ сохранения информации. **ИСПОЛЬЗУЙ ЭТО КОГДА:** Нужно сохранить сводки задач, заметки встреч, документацию или любой текст с несколькими фактами. Сервер сам занимается организацией, обнаружением конфликтов и управлением версиями. **НЕ ДЛЯ:** Установки одного конкретного ключевого пути (keypath) с коротким значением (например, config.port = "8080") — для этого используй memstate_set. memstate_remember(project_id="myapp", content="## Сводка задач\n- Добавлен OAuth\n- Файлы: auth.go, middleware.go", source="agent") memstate_remember(project_id="myapp", content="Архитектурное решение: перешли на JWT-токены для управления сессиями") Ограничение по содержимому: 100 000 символов. Обработка асинхронная (~15-18 с); job_id возвращается сразу.

Параметры

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

    Required. Project to store in (e.g. 'myapp'). Auto-creates if new.

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

    Markdown or text to remember (max 100,000 chars). Server extracts keypaths and creates structured memories automatically.

  • sourcestring

    Source type: agent, readme, docs, meeting, code

  • contextstring

    Optional hint to guide keypath extraction

memstate_search

Ищет воспоминания по смыслу (семантический поиск). Используй ДО того, как начнёшь задачу, если не знаешь точный keypath. **ИСПОЛЬЗУЙ ЭТО КОГДА:** нужно найти подходящие воспоминания по теме или смыслу, а не по точному keypath. **НЕ ДЛЯ:** сохранения контента (для markdown/суммари используй memstate_remember, для одного значения по keypath — memstate_set). memstate_search(query="как настроена аутентификация", project_id="myapp") memstate_search(query="настройки подключения к базе данных", project_id="myapp") Возвращает суммари с оценками схожести. Используй memstate_get(project_id="...", keypath="...", include_content=true), чтобы получить полное содержимое результата.

Ищет воспоминания по смыслу (семантический поиск). Используй ДО того, как начнёшь задачу, если не знаешь точный keypath. **ИСПОЛЬЗУЙ ЭТО КОГДА:** нужно найти подходящие воспоминания по теме или смыслу, а не по точному keypath. **НЕ ДЛЯ:** сохранения контента (для markdown/суммари используй memstate_remember, для одного значения по keypath — memstate_set). memstate_search(query="как настроена аутентификация", project_id="myapp") memstate_search(query="настройки подключения к базе данных", project_id="myapp") Возвращает суммари с оценками схожести. Используй memstate_get(project_id="...", keypath="...", include_content=true), чтобы получить полное содержимое результата.

Параметры

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

    Natural language search query. Leave empty to explore/list all memories ordered by keypath.

  • project_idstring

    Filter by project

  • limitinteger

    Maximum results (default: 20, max: 100)

  • categoriesnullarray

    Filter by categories

  • keypath_prefixstring

    Filter by keypath prefix

  • include_supersededboolean

    Include old versions

memstate_set

Устанавливает одно короткое значение по заданному keypath. Только для простых фактов вида ключ=значение: конфигурация, статус или номера версий. **ИСПОЛЬЗУЙ ЭТО КОГДА:** Нужно сохранить ОДНО конкретное значение по известному keypath (например, номер порта, флаг статуса, строка версии). **НЕ ДЛЯ:** Сводок задач, markdown или текста с несколькими фактами — используй memstate_remember. memstate_set(project_id="myapp", keypath="config.database.port", value="5432") memstate_set(project_id="myapp", keypath="status.deployment", value="production") memstate_set(project_id="myapp", keypath="version.current", value="2.1.0") Ограничение значения: 2 000 символов. Если длиннее — используй memstate_remember. Keypath автоматически дополняется префиксом.

Устанавливает одно короткое значение по заданному keypath. Только для простых фактов вида ключ=значение: конфигурация, статус или номера версий. **ИСПОЛЬЗУЙ ЭТО КОГДА:** Нужно сохранить ОДНО конкретное значение по известному keypath (например, номер порта, флаг статуса, строка версии). **НЕ ДЛЯ:** Сводок задач, markdown или текста с несколькими фактами — используй memstate_remember. memstate_set(project_id="myapp", keypath="config.database.port", value="5432") memstate_set(project_id="myapp", keypath="status.deployment", value="production") memstate_set(project_id="myapp", keypath="version.current", value="2.1.0") Ограничение значения: 2 000 символов. Если длиннее — используй memstate_remember. Keypath автоматически дополняется префиксом.

Параметры

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

    Required. Project to store in (e.g. 'myapp'). Auto-creates if new.

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

    Required. Hierarchical path like 'config.port' or 'status'. Auto-prefixed with 'project.{project_id}.'

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

    The value to store (max 2,000 chars). Short, simple values only — not markdown.

  • categorystring

    Category: decision, preference, fact, task, context, requirement, note, code, learning

  • topicsnullarray

    Optional additional topics/tags

Другие проверенные MCP-сервера

Jpisnice/shadcn-ui-mcp-server

Jpisnice/shadcn-ui-mcp-server

MCP-сервер для интеграции shadcn/ui v4 в AI-ассистенты. Дает доступ к компонентам, блокам и демкам для React, Svelte, Vue и React Native. Ускоряет разработку интерфейсов с помощью ИИ, поддерживает ...

TypeScript2871
executeautomation/playwright-mcp-server

executeautomation/playwright-mcp-server

Сервер для браузерной автоматизации на Playwright. Используется AI-агентами для открытия страниц, скриншотов, веб-скрапинга и выполнения JavaScript в реальном браузере. Отлично подходит для тестиро...

TypeScript5578
CoderGamester/mcp-unity

CoderGamester/mcp-unity

MCP сервер для Unity Editor, который через Model Context Protocol даёт AI-ассистентам (Cursor, Windsurf, Claude Code) прямой доступ к управлению сценами, GameObject, компонентами, материалами и тес...

C#1832
dagger/container-use

dagger/container-use

официальный

MCP сервер container-use даёт агентам (Claude Code, Cursor) работать параллельно в изолированных контейнерах - безопасно и без конфликтов. Полезен разработчикам: видит лог действий и даёт доступ к ...

Go3914
optuna/optuna-mcp

optuna/optuna-mcp

официальный

MCP сервер для автоматизации оптимизации и анализа с помощью Optuna. Он позволяет LLM подбирать гиперпараметры, визуализировать результаты через чат или запускать дашборд. Упрощает работу ML-инжене...

Python81
apify/actors-mcp-server

apify/actors-mcp-server

официальный

Apify MCP Server подключает AI-агентов к тысячам готовых парсеров и краулеров из Apify Store - от соцсетей до карт и e-commerce. Поддерживает OAuth, x402 и Skyfire для оплаты без API-токена.

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

Лука Никитин