mcpField
M
mismem

mismem

ローカル
github.com/lucasmella-stackメモリ・ナレッジ3今日更新

mismem について

misMEMはSQLiteベースの永続メモリMCPサーバーで、複数のLLMクライアントがepisodes、memories、traitsを共有できます。全文検索と任意のセマンティック検索を組み合わせ、統合と重要度の強化で記憶を管理します。

主な機能

  1. 01episodes、memories、traitsを階層保存
  2. 02FTS5と任意のセマンティック検索で想起
  3. 03episodesの統合と安定したtraitsの結晶化
  4. 04利用状況に応じた記憶重要度の強化
  5. 05Engram互換レイヤーとクライアントフック

活用シーン

  1. 01複数のMCPクライアントでセッション間の記憶を共有
  2. 02会話記録から再利用可能な記憶を抽出
  3. 03関連情報を検索し、実際に使った内容を強化

MCP 対応

記憶の取得、想起、強化、統合、結晶化、忘却を行うMCPツールを公開し、Engram互換レイヤーも備えます。ローカルのstdioとリモートのStreamable HTTPに対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"lucasmella-stack-mismem": {
"command": "npx",
"args": [
"-y",
"@lucasmella/mismem"
],
"env": {
"MISMEM_DB": "<MISMEM_DB>"
}
}
}
}
起動コマンドnpx -y @lucasmella/mismem
設定が必要な環境変数
MISMEM_DBAbsolute path to the SQLite database (default: ~/.mismem/mem.db)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@lucasmella/mismem0.2.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

翻訳後に原文が更新されています。最新の内容は原文をご確認ください。

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、…)に記録します
recallFTS5 + セマンティック検索を行い、返された 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 を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。