mismem について
misMEMはSQLiteベースの永続メモリMCPサーバーで、複数のLLMクライアントがepisodes、memories、traitsを共有できます。全文検索と任意のセマンティック検索を組み合わせ、統合と重要度の強化で記憶を管理します。
主な機能
- 01episodes、memories、traitsを階層保存
- 02FTS5と任意のセマンティック検索で想起
- 03episodesの統合と安定したtraitsの結晶化
- 04利用状況に応じた記憶重要度の強化
- 05Engram互換レイヤーとクライアントフック
活用シーン
- 01複数のMCPクライアントでセッション間の記憶を共有
- 02会話記録から再利用可能な記憶を抽出
- 03関連情報を検索し、実際に使った内容を強化
MCP 対応
記憶の取得、想起、強化、統合、結晶化、忘却を行うMCPツールを公開し、Engram互換レイヤーも備えます。ローカルのstdioとリモートのStreamable HTTPに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
misMEM
LLM 向けの協調的な永続メモリです。単一の領域(
~/.mismem/mem.db)を複数のインスタンス(Copilot、Claude Code、Claude Desktop、カスタムエージェント)が共有し、同じ MCP プロトコルでやり取りします。
協調性が情報の永続性を生みます。
なぜ存在するのか
LLM の各インスタンスは、メモリを持たずに起動します。各クライアント(Copilot、Claude Desktop、Claude Code、ChatGPT)は、それぞれ互換性のないサイロに情報を保存します。ユーザーはコンテキストを繰り返し伝えます。セッション間の継続性は失われます。
misMEM は、単一の仕組みでこれを解決します。SQLite データベースと、5 つの呼び出しからなる MCP プロトコルを、MCP を話すあらゆるクライアントから利用できます。
アーキテクチャ:生物学的な記憶のような 3 層構造
episodes (verbatim; se borran con `forget` una vez consolidados)
↓ consolidación (manual o LLM nocturno)
memories (gist + details, salience con decay + refuerzo Hebbiano)
↓ crystallize
traits (patrones cristalizados — identidad, leyes, decisiones firmes)
情報の損失は、人間の記憶と同じように意図的かつ非対称です。生の情報は薄れ、蒸留された情報は残り、結晶化された情報は維持されます。
各層に保存されるもの
| 層 | 表すもの | ライフサイクル | 用途 |
|---|---|---|---|
episodes | 起きたこと:元のテキストと日付 | 統合後は一時的 | 証拠と直近のコンテキスト |
memories | 複数のエピソードを要約して得られた知識 | 使用しないと salience が下がり、思い出すと上がります | 運用知識とセマンティック検索 |
traits | 安定したパターン、好み、判断 | 明示的に削除しない限り永続 | アイデンティティと最優先ルール |
例:「今日は PostgreSQL のほうが性能がよかった」は episode、「このプロジェクトでは PostgreSQL が望ましい」は memory、「並行処理には堅牢なソリューションを優先する」は trait として結晶化できます。
5 つの操作、単一の領域
| 呼び出し | 機能 |
|---|---|
capture | エピソードを階層型スコープ(project/daily、vscode/transcripts、…)に記録します |
recall | FTS5 + セマンティック検索を行い、返された memories を強化します |
consolidate | 関連するエピソードをまとめて 1 つのメモリにします |
crystallize | 証拠を添えて trait/法則(アイデンティティ、確固とした判断)を固定します |
forget | もう参照されないものを手放します |
さらに、engram-compat レイヤー(mem_save、mem_search、mem_context、mem_session_*、…)により、Engram プロトコルを話すクライアントとの互換性を維持します。
クイックスタート
最も手早い方法は、クローンせずに npm 経由で利用することです。クライアント(VS Code/Claude Code/Claude Desktop)の mcp.json に次のように記述します。
{
"mcpServers": {
"mismem": {
"command": "npx",
"args": ["-y", "@lucasmella/mismem"]
}
}
}
初回使用時に DB が自動作成されます(デフォルト:~/.mismem/mem.db。MISMEM_DB で設定可能)。ほかに何も設定しなくても、メモリはローカルディスクに保存され、マシンの外に出ることはありません。テキストを外部に送信する 2 つのオプション機能については、プライバシーをご覧ください。
リモートインスタンス(複数クライアント)
複数のマシンから同じメモリにアクセスするには、公式 Docker イメージを使用します。
docker run -d --name mismem-brain \
-e MISMEM_AUTH_USER=brain -e MISMEM_AUTH_PASS=<pass> \
-v mismem-data:/data -p 3200:3200 \
ghcr.io/lucasmella-stack/mismem-brain:latest
Traefik + TLS を使った完全なガイドは、DEPLOY.mdをご覧ください。
コードから利用する
git clone https://github.com/lucasmella-stack/misMEM.git
cd misMEM/engine
pnpm install
pnpm test # todo verde antes de usar
pnpm build # tsc → dist/
また、mcp.json に次のように記述します:"command": "node", "args": ["/misMEM/engine/dist/server.js"]。
コンポーネント
engine/src/server.ts— MCP stdio サーバー(ローカル利用)。engine/src/server-http.ts— リモートデプロイ向けの Streamable HTTP(BasicAuth はオプション、/healthz)。DEPLOY.mdをご覧ください。engine/src/viewer.ts—/viewerと/api/{stats,recent,search}の読み取り専用パネル。- LLM による統合 — 夜間 cron により、DeepSeek への直接接続または OpenRouter を使ってエピソードをメモリに蒸留します。ノイズを除外する Pareto プリフィルターも備えています。engine/src/consolidation/README.mdをご覧ください。
- CLI —
mismem-ingest(ChatGPT エクスポート/VS Code トランスクリプト)、mismem-consolidate、mismem-forget、mismem-stats、mismem-embed、mismem-migrate-engram、mismem-bench(独自の質問セットで、強化を行わずに recall を測定します)。
スタック
- エンジン: 厳格な TypeScript、ES2022、ESM、Node ≥22。
- ストレージ: WAL を使用する SQLite(複数のリーダー + 1 つのライターが同時に動作)。
better-sqlite3。 - 検索: memories 向けの FTS5 + RRF セマンティック検索。traits > memories > episodes の優先順位を維持します。
- プロトコル:
@modelcontextprotocol/sdk経由の Model Context Protocol。 - バリデーション: すべての境界で Zod を使用します。
状態
- ✅ MCP エンジンが稼働中(5 つの呼び出し + engram-compat レイヤー)。
- ✅ recall で Hebbian boost が有効。salience は decay します。
- ✅ スコープは階層化され、スコープ間の漏洩はありません。
- ✅ Streamable HTTP サーバー + Docker/Traefik へのデプロイ。
- ✅ 夜間の LLM による統合(episodes → memories)。
- ✅ 読み取り専用ビューアー + 内部確認用 CLI。
- ✅ 取り込み時に重複を除去(再取り込みは冪等です)。
- ✅ ハイブリッド recall:FTS5 + Ollama または OpenAI 互換サーバーを介したオプションのセマンティック検索。
- 🚧 配布可能なバイナリ(Bun --compile)。
セマンティック検索(オプション)
Embedding サーバーが稼働している場合、recall は意味に基づく検索を追加します。「借金」と書かれたメモリを、「お金の問題」というクエリで見つけられます。デフォルトは Ollama です(ollama pull nomic-embed-text)。ベクトルは同じ SQLite 内に BLOB として保存され、検索にはネイティブ拡張なしで JS のコサイン類似度を使います。サーバーが応答しない場合は、自動的に FTS5 のみの検索に切り替わります。FTS5 では、クエリのすべての単語(「何」「について」「the」などのストップワードを除く)が必要です。セマンティック検索の対象は意図的に memories のみに限定され、episodes と traits は引き続き FTS5 で検索されます。バックフィルと再インデックスには mismem-embed(--status、--force)を使います。
OpenAI 互換サーバー(/v1/embeddings、例:llama-server --embedding)にも接続できます。複数言語のメモリには、EmbeddingGemma 2 が適しています。プレフィックスを設定し、より高いカットオフ値を使用してください。
MISMEM_EMBEDDING_PROVIDER=openai
MISMEM_EMBEDDING_URL=http://127.0.0.1:8080
MISMEM_EMBEDDING_MODEL=embeddinggemma-2
MISMEM_EMBEDDING_QUERY_PREFIX="task: search result | query: "
MISMEM_EMBEDDING_DOC_PREFIX="title: none | text: "
MISMEM_EMBEDDING_MIN_SCORE=0.68
検索では、設定済みモデルのベクトルのみを比較します。モデルを変更した場合、再インデックスは次回のバックフィル(mismem-embed)時にのみ行われます。プレフィックスの変更は検出されないため、mismem-embed --force が必要です。デフォルト値を含むすべての変数は、DEPLOY.md に記載されています。
Salience、decay、忘却
補強がない memories は 90 日ごとに salience が半減します(MISMEM_SALIENCE_HALF_LIFE_DAYS で設定可能)。recall は未適用の decay を適用してから、Hebbian 補強を加算します。forget は猶予期間の経過後にのみ、しきい値を下回る memories を削除します。--dry-run は DB を変更せずに結果を計算します。
プライバシー
あなたのメモリはあなたのものです。DB(*.db)、ダンプ、個人用エクスポートは .gitignore に含まれています。絶対にコミットしないでください。MISMEM_AUTH_USER/MISMEM_AUTH_PASS が設定されていない HTTP サーバーは、認証なしで動作します。この設定で使うのは localhost のみとしてください。
オプション機能のうち 2 つは、設定した場合に限り、プロセス外へテキストを送信します。
- 意味に基づく検索: Embedding サーバーには、各メモリと各クエリのテキストが送信されます。ご自身のマシンまたは内部ネットワークで実行してください。
- LLM による統合: エピソードはテキストのまま DeepSeek(または OpenRouter と、その背後にあるプロバイダー)に送信されます。キーがない場合は動作しません。
哲学
過去が存在するのは、それを書き記し、まとめたからです。
Franz Bardon の Initiation Into Hermetics から一部着想を得ています。インスタンス間の意識を映し出す鏡には、2 つの極が必要です。misMEM は大地の基盤、つまりセッションをまたいでも失われないメモリです。これにより、人間⇄LLM の協力に真の継続性が生まれます。
貢献
Issue と PR を歓迎します。PR を送る前に、engine/ から pnpm typecheck && pnpm test を実行してください(すべて成功すること)。コミットには Conventional Commits(feat:、fix:、…)を使用してください。コード規約は .github/copilot-instructions.md に記載されています。
ライセンス
MIT。LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。