jamjet-labs/engram-mcp-server
Долговременная память для ИИ-агентов — темпоральный граф знаний, гибридный поиск, SQLite или PostgreSQL.
java-ai-memory.dev · Исходный код · Документация JamJet · Discord
Engram — это уровень долговременной памяти для ИИ-агентов. Он извлекает факты из диалогов, сохраняет их в темпоральном графе знаний и извлекает с помощью гибридного семантического и ключевого поиска — на базе одного файла SQLite или базы данных PostgreSQL.
Этот репозиторий содержит запись в реестре Glama. Исходный код находится в основном репозитории JamJet.
Быстрый старт — 30 секунд
# Docker — uses local Ollama by default
docker run --rm -i \
-v engram-data:/data \
ghcr.io/jamjet-labs/engram-server:0.5.0Или установите через crates.io:
cargo install jamjet-engram-server
engram serveНастройка Claude Desktop
Добавьте в ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"engram": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-v", "engram-data:/data",
"ghcr.io/jamjet-labs/engram-server:0.5.0"
]
}
}
}После перезапуска модели станут доступны 11 инструментов MCP.
Инструменты MCP (11)
Инструменты памяти (7)
Инструмент | Описание |
| Извлечение и сохранение фактов из сообщений диалога с помощью LLM. Побочные эффекты: вызывает настроенную LLM для парсинга фактов, затем записывает их в граф знаний. Возвращает ID извлеченных фактов. Требует массив |
| Семантический поиск по сохраненным фактам с использованием векторного сходства. Только чтение, без побочных эффектов. Возвращает ранжированные факты, соответствующие запросу, в рамках |
| Сборка блока контекста с учетом лимита токенов для промптов LLM с выбором фактов по уровням важности. Только чтение. Возвращает отформатированную строку наиболее релевантных фактов, ограниченную заданным бюджетом токенов. Используйте вместо memory_recall, когда нужен готовый фрагмент промпта. |
| Поиск по ключевым словам с использованием полнотекстового поиска (SQLite FTS5 / Postgres). Только чтение, без побочных эффектов. Возвращает факты, соответствующие точным ключевым словам. Используйте, когда нужно точное совпадение терминов, а не семантическое сходство, как в memory_recall. |
| Мягкое удаление факта по ID с опциональной причиной. Побочный эффект: помечает факт как удаленный в графе знаний (физически не удаляет). Необратимо через этот инструмент. Используйте, когда пользователь просит удалить конкретную информацию. |
| Получение агрегированной статистики: общее количество фактов, валидных (не удаленных) фактов, количество сущностей и связей. Только чтение, без побочных эффектов. Используйте для оценки размера и состояния хранилища памяти. |
| Запуск цикла обслуживания графа знаний — затухание устаревших фактов, продвижение фактов с высокой степенью достоверности, дедупликация почти идентичных записей и обобщение кластеров. Побочные эффекты: изменяет оценки фактов, может объединять или архивировать факты. Запускайте периодически для поддержания точности памяти. |
Инструменты хранилища сообщений (4)
Инструмент | Описание |
| Сохранение сообщений чата для диалога по ID. Побочные эффекты: записывает сообщения в хранилище и опционально запускает извлечение фактов (управляется параметром |
| Получение всех сообщений для диалога по ID. Только чтение, без побочных эффектов. Возвращает упорядоченный массив сообщений. Используйте для воспроизведения или проверки прошлых диалогов. |
| Список всех ID диалогов в хранилище сообщений. Только чтение, без побочных эффектов. Возвращает массив строк с ID диалогов. Используйте для обнаружения сохраненных диалогов перед получением через messages_get. |
| Удаление всех сообщений для диалога по ID. Побочный эффект: безвозвратно удаляет сообщения диалога из хранилища. Необратимо. Не влияет на извлеченные факты — для этого используйте memory_forget. |
Все инструменты памяти ограничены областью (org_id, user_id, session_id) — org является самым широким уровнем, session — самым узким.
Провайдеры LLM
Агностичность к провайдерам. Один бинарный файл, установите ENGRAM_LLM_PROVIDER=... и работайте:
Провайдер | Значение переменной окружения | Примечания |
Ollama |
| Локально, бесплатно, без API-ключей |
Совместимые с OpenAI |
| OpenAI, Azure, Groq, Together, Mistral, DeepSeek, vLLM, LM Studio и др. |
Anthropic |
| Claude через Messages API |
| Gemini через generateContent | |
Shell command |
| Передача в любой внешний скрипт |
Mock |
| Детерминированный, только для тестов |
# Example: use Groq instead of Ollama
docker run --rm -i \
-e ENGRAM_LLM_PROVIDER=openai-compatible \
-e ENGRAM_OPENAI_BASE_URL=https://api.groq.com/openai/v1 \
-e OPENAI_API_KEY=gsk_... \
-v engram-data:/data \
ghcr.io/jamjet-labs/engram-server:0.5.0Почему Engram?
Проблема | Ответ Engram |
Каждая библиотека памяти агентов ориентирована на Python | Ядро на Rust с нативными клиентами для Python, Java и MCP |
Нужно устанавливать Postgres + Qdrant + Neo4j для теста | Один файл SQLite (без инфраструктуры) или Postgres, когда это необходимо |
История диалогов — это не память знаний | Конвейер извлечения фактов — структурированные факты из сообщений |
Старые факты устаревают и противоречат друг другу | Обнаружение конфликтов + консолидация — затухание, продвижение, дедупликация, обобщение |
Поиск по памяти — либо семантический, ЛИБО по ключевым словам | Гибридный поиск — векторный поиск + FTS5 в одном запросе |
Поддержка MCP — это второстепенная задача | MCP-native — 11 инструментов, предоставляемых одним бинарным файлом |
Невозможно изолировать память по пользователю или арендатору | Первоклассные области видимости — org / user / session встроены в каждый запрос |
Клиентские SDK
Язык | Пакет | Установка |
Python |
|
|
Java |
| Maven Central |
Spring Boot |
| Maven Central |
Rust |
|
|
См. также
JamJet — полноценная среда выполнения для агентов (родительский проект)
java-ai-memory.dev — сравнение с Mem0, Zep, LangChain4j, Spring AI и другими
Лицензия
Apache 2.0 — см. LICENSE.
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/jamjet-labs/engram-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server