Engram

Engram

A local-first MCP server that captures working memories and returns compact capsules classified by trust, with consolidation to Datacron markdown notes.

Category
访问服务器

README

Engram

L'hippocampe local de la trilogie : une memoire operationnelle partagee qui reste explicable, bornee et consolidee vers Datacron apres revue humaine.

License: Apache 2.0 Python 3.13+ MCP Streamable HTTP CI

Francais | English

Engram est un serveur MCP local-first qui capture des souvenirs de travail et restitue des capsules compactes, classees selon leur confiance. Dans la trilogie, Datacron est le carnet Markdown durable et la source de verite, Cortex est le bibliothecaire de documentation large, et Engram est l'hippocampe : il maintient la memoire operationnelle entre clients puis propose sa consolidation vers Datacron.

Ce qui est en place

Capacite Etat
Stockage SQLite WAL, migrations, TTL, idempotence, supersession
Ecriture Un processus Engram est le writer unique
Audit Journal append-only sans contenu de souvenir
MCP Streamable HTTP, outils stricts remember et recall
Recherche FTS5/BM25 par defaut, hybride local optionnel derriere un flag
Confiance Provenance serveur, plafond de confiance, quarantaine anti-poisoning
Rappel Capsule bornee : current, next_action, relevant, conflicts, own_pending, sources
Consolidation Plan humain, ecriture Datacron par CAS, relecture, controle de fraicheur
Evaluation Corpus seede et graders deterministes, sans acces au vault Datacron

Installation

Prerequis :

  • Python 3.13 ou plus recent ;
  • uv 0.11.3 ou plus recent recommande ;
  • SQLite 3.51.3 ou plus recent dans le runtime Python.

Le plancher SQLite est dur. Les versions 3.7.0 a 3.51.2 sont affectees par le bug WAL-reset documente par SQLite. Engram verifie sqlite3.sqlite_version a l'ouverture et refuse un runtime trop ancien. Voir installation Windows pour installer la DLL SQLite 3.53.x officielle. La page SQLite decrit le bug WAL-reset et publie les binaires 3.53.3.

git clone https://github.com/VBlackJack/Engram.git
cd Engram
uv sync --extra dev --python 3.14.3
uv run --python 3.14.3 python -c "import sqlite3; print(sqlite3.sqlite_version)"
Copy-Item engram.example.toml engram.toml

Le paquet PyPI n'est pas publie dans cette release. L'installation se fait depuis les sources ou les artefacts wheel/sdist attaches a la release GitHub.

Demarrage rapide

uv run --python 3.14.3 engram serve

Le point MCP par defaut est http://127.0.0.1:8377/mcp. Conserver cette adresse loopback : le serveur n'implemente pas d'authentification reseau.

Ajoutez ensuite ce serveur a Claude Code, Codex ou Gemini, puis installez le protocole client. Les blocs de configuration exacts sont dans le guide de mise en place.

Configuration

Engram charge engram.toml. ENGRAM_CONFIG peut selectionner un autre fichier. Toute cle TOML peut etre surchargee par ENGRAM_<SECTION>_<CLE> ; les chemins relatifs sont resolus depuis le dossier du fichier TOML.

Section TOML Variables principales Role
[database] ENGRAM_DATABASE_PATH, ENGRAM_DATABASE_BUSY_TIMEOUT_MS Base et attente SQLite
[ttl_days] ENGRAM_TTL_DAYS_PREFERENCE, _DECISION, _FACT, _PROJECT_STATE, _EPISODE Duree par kind ; 0 desactive l'expiration
[limits] ENGRAM_LIMITS_MAX_STATEMENT_CHARS, ENGRAM_LIMITS_MAX_SUBJECT_KEYS Bornes d'entree
[logging] ENGRAM_LOGGING_PATH, _FILE_LEVEL, _CONSOLE_LEVEL Fichier et niveaux de log
[server] ENGRAM_SERVER_HOST, _PORT, _PATH, _WRITE_WAIT_TIMEOUT_MS Endpoint HTTP et backpressure
[capsule] ENGRAM_CAPSULE_DEFAULT_TOKEN_BUDGET, _MIN_TOKEN_BUDGET, _MAX_TOKEN_BUDGET Budget du rappel
[retrieval] ENGRAM_RETRIEVAL_MODE, _EMBEDDINGS_ENDPOINT, _EMBEDDINGS_MODEL, _EMBEDDINGS_TIMEOUT_MS, _RRF_K FTS ou hybride local
[datacron] ENGRAM_DATACRON_COMMAND, _ARGS, _VAULT_ROOT, _READ_PATHS, _WRITE_PATHS, _NEW_NOTE_DIRECTORY, _NEIGHBOR_LIMIT Gateway et confinement Datacron

Pour une variable de liste, ARGS suit le decoupage shell et READ_PATHS/WRITE_PATHS utilisent le separateur de chemins de l'OS. Le fichier complet et ses valeurs sures sont dans engram.example.toml. Les ecritures Datacron restent desactivees si write_paths est vide.

Outils MCP

Outil Entrees essentielles Resultat et politique
remember statement, kind, scope, subject_keys, observed_at, evidence Cree un candidat model_inferred, quarantined, confiance au plus medium
recall query, scope, kinds, include_conflicts, token_budget Retourne une capsule trust-aware ; seuls les candidats du client courant figurent dans own_pending

Kinds acceptes : preference, decision, project_state, fact, episode. Le serveur attribue la provenance ; un client ne peut jamais declarer lui-meme une source human.

Securite et vie privee

  • Toutes les donnees, l'index lexical, l'audit et les logs restent locaux.
  • Aucun appel a un LLM cloud ni aucune telemetrie n'est implemente.
  • Les candidats d'un client sont quarantaines pour eviter qu'une affirmation non attestee ne devienne la verite partagee.
  • Le mode hybride contacte uniquement l'endpoint d'embeddings explicitement configure ; FTS est le mode par defaut.
  • Les ecritures Datacron passent par des allowlists sous _memory/, une verification CAS et une relecture.
  • Ne pas exposer le serveur sur 0.0.0.0 sans proxy d'authentification et controle reseau.

Voir le modele de securite complet.

Commandes CLI

engram --version
engram serve
engram reindex
engram eval --mode both --out local/eval
engram consolidate --plan --out local/consolidation/plan.json
engram consolidate --apply local/consolidation/plan.json
engram consolidate --check-freshness

consolidate --plan ne modifie rien. Editez chaque decision du JSON (approve ou reject) avant --apply. Un hash Datacron divergent produit stale et exige un nouveau plan ; il n'est jamais force.

Limites actuelles

  • Engram ne voit pas passivement les conversations : chaque client doit appeler recall et remember selon le protocole documente.
  • Le transport est HTTP local. Le connecteur distant Claude Desktop exige une URL HTTPS publique ; Claude Code se connecte directement a localhost.
  • Le mode hybride est experimental et depend d'un endpoint compatible OpenAI local. Il se degrade explicitement vers FTS en cas de panne.
  • La publication PyPI et la soumission au MCP Registry sont differees. Le manifeste est pret pour le paquet et son endpoint HTTP local.
  • Porter et les recherches par prefixe ne seront evalues que si l'usage reel montre des ratages morphologiques.

Documentation

Demarrer Comprendre Exploiter en confiance
Installation Contrat de donnees Securite
Windows et SQLite Architecture FAQ
Guide utilisateur Protocole client Hub documentaire

Developpement

uv sync --extra dev --python 3.14.3
uv run --python 3.14.3 ruff check .
uv run --python 3.14.3 ruff format --check .
uv run --python 3.14.3 mypy
uv run --python 3.14.3 pytest
uv build --python 3.14.3

Licence

Apache License 2.0. Copyright 2026 Julien Bombled. Voir LICENSE et les notices tiers.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选