mnemo について
mnemoは、AIエージェント向けのローカル優先型の永続メモリMCPサーバーです。SQLiteに記憶を保存し、ハイブリッド検索で取得します。型付き記録、時間的知識グラフ、重要度に応じたアーカイブ、任意のLLM圧縮を備えています。
主な機能
- 01全文検索とベクトル検索の併用
- 02型付きメモリ記録と重複排除
- 03時間的知識グラフと履歴クエリ
- 04重要度評価、アーカイブ、復元
- 05任意のLLMメモリ圧縮
活用シーン
- 01セッションをまたいで決定や好みを保存
- 02テキストとベクトル照合による記憶検索
- 03エンティティの関係と過去の状態を確認
- 04関連する記憶の統合と古い項目のアーカイブ
MCP 対応
専用メモリツールと設定を含む、18種類のメモリアクションに対応した13個のMCPツールを公開します。MCPクライアントは、ローカルSQLiteストアを使うセルフホスト型のStreamable HTTPエンドポイントに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx mnemo-mcpAPI_KEYSシークレットProvider API keys (format: PROVIDER_API_KEY:key,...). Select models per task with EMBEDDING_MODELS / RERANK_MODELS / LLM_MODELS (CSV provider/model, order = litellm fallback); provider is inferred from the model prefix. Empty embedding/rerank chains select Fastretrieval local ONNX/GGUF models; configured cloud chains never silently fall back to local.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Mnemo MCP サーバー
名称変更(2026-09-13): リポジトリ名は
mnemoになりました。CLI ファースト(mnemoコマンド)です。PyPI パッケージ名は引き続きmnemo-mcpで、MCP サーバーは引き続きサブ機能です。
mcp-name: io.github.n24q02m/mnemo
ハイブリッド検索に対応した、永続的な AI メモリです。オープンで、無料、無制限です。
n24q02m の姉妹プロジェクト(クリックして展開)
| プロジェクト | キャッチコピー | タグ | |---|---|---| | [agent-chat-plugin](https://github.com/n24q02m/agent-chat-plugin) | AI エージェント同士が共有フォルダーでチャット — 人間の中継もオーケストレーターも不要、ワー... | ツール | | [better-code-review-graph](https://github.com/n24q02m/better-code-review-graph) | トークン効率の高いコードレビュー向けナレッジグラフ — セマンティック検索と呼び出し関係... | MCP | | [better-drive](https://github.com/n24q02m/better-drive) | .driveignore フィルターを使った双方向の Google Drive 同期 — rclone エンジン、Windows トレイ | ツール | | [better-email-mcp](https://github.com/n24q02m/better-email-mcp) | AI エージェント向け IMAP/SMTP メール — 読み取り、送信、フォルダー整理、添付ファイルの管理... | MCP | | [better-godot-mcp](https://github.com/n24q02m/better-godot-mcp) | Godot Engine 向け複合 MCP サーバー — AI 支援型ゲーム開発のための 17 個の複合ツール... | MCP | | [better-notion-mcp](https://github.com/n24q02m/better-notion-mcp) | AI エージェント向け Markdown ファーストの Notion — ページ、データベース、ブロック、コメント... | MCP | | [better-semantic-release](https://github.com/n24q02m/better-semantic-release) | リリース安全性ガードを組み込み、すぐに使える python-semantic-release のフォーク(orp...) | ツール | | [better-telegram-mcp](https://github.com/n24q02m/better-telegram-mcp) | AI エージェント向け Telegram — 両方のボ...でメッセージ、チャット、メディア、連絡先を扱えます | MCP | | [better-workspace-mcp](https://github.com/n24q02m/better-workspace-mcp) | Google Workspace MCP サーバー(Docs/Drive/Calendar/Gmail/Sheets/Slides/Tasks/Ch...) | MCP | | [claude-plugins](https://github.com/n24q02m/claude-plugins) | n24q02m の MCP サーバー向け Claude Code プラグインマーケットプレイス — ウェブ検索をインストール... | マーケットプレイス | | [imagine-mcp](https://github.com/n24q02m/imagine-mcp) | AI エージェント向け画像・動画の理解と生成 — Gemini、Op...に対応 | MCP | | [jules-task-archiver](https://github.com/n24q02m/jules-task-archiver) | batchexecute API 経由で Jules タスクを一括操作する Chrome 拡張機能 — ... | ツール | | [mcp-core](https://github.com/n24q02m/mcp-core) | MCP サーバー構築のための共通基盤 — Streamable HTTP トランスポート、OAuth... | MCP | | [mnemo](https://github.com/n24q02m/mnemo) | ハイブリッド検索と埋め込み同期を備えた永続的な AI メモリ。オープン、無料、無制限... | MCP | | [fastretrieval](https://github.com/n24q02m/fastretrieval) | ONNX/GGUF 埋め込みとリランキング向けマルチモデル検索ランタイム | ライブラリ | | [skret](https://github.com/n24q02m/skret) | サーバー不要のシークレット管理。 | CLI | | [tacet](https://github.com/n24q02m/tacet) | ナレッジ全体で LLM のコストを償却する、自己蒸留型のニューロシンボリック・カスケード... | ツール | | [web-core](https://github.com/n24q02m/web-core) | 検索、スクレイピング、HTTP セキュリティ、スト...向けの共通ウェブインフラストラクチャパッケージ | ライブラリ | | [wet-mcp](https://github.com/n24q02m/wet-mcp) | AI エージェント向けオープンソース MCP サーバー:ウェブ検索、コンテンツ抽出、ライブラリ... | MCP |目次
- 機能
- クイックインストール
- ステータス
- ドキュメント
- Smithery
- ツール
- セキュリティ
- ソースからビルド
- CLI
- セルフホスティング(ローカル HTTP インスタンス)
- リモート(HTTP モード)
- 信頼モデル
- ライセンス
以下のフェーズの行は、ホスティング廃止前の設計履歴(v1.x / v2 初期)を説明しています: 複数プロバイダーへの LLM ディスパッチ、GDrive/S3 パスポート同期、Cloudflare へのデプロイは、2026-09 のホスティング廃止時に削除されました。現在のアーキテクチャ: ローカル SQLite ストアは 1 つ(WAL)、タスクごとの
[models.*]プロバイダーセル (OpenRouter が事前設定されたデフォルト)、組み込み同期なし(バックアップにはrcloneを使用)。
| フェーズ | バージョン | ステータス | 主な内容 |
|---|---|---|---|
| フェーズ 1 | v1.x | リリース済み | 型付き memory(action="capture")(6 つの context_types + 重複排除) -- RRF(k=60)によるハイブリッド融合 + クロスエンコーダーによる再ランキング + 時間減衰 -- 重要度 x 新しさに基づくアーカイブポリシー + 復元 -- Alembic マイグレーション -- 複数プロバイダーへの LLM ディスパッチ(ホスティング廃止前) -- プラグインの三位一体(recall-context + memory-commit スキル、SessionStart + オプトインの PostToolUse フック) |
| フェーズ 2 | v1.x+1 | リリース済み、一部削除 | 古いメモリの LLM 駆動型圧縮(維持。現在は [models.chat] セル経由) + パスポート同期(暗号化されたインポート/エクスポートバンドル;2026-09 に削除) |
| フェーズ 3 | v2.0.0 | リリース済み(破壊的変更) | 時間的ナレッジグラフ -- 二時点の valid_from / valid_to 列 -- 埋め込み KNN によるエンティティ解決 -- entity_search / entity_graph / history アクション -- KG_AUTO_ENABLED による、オプトイン方式の capture 時の自動抽出 |
機能
- ハイブリッド検索 -- FTS5 + ベクトル検索(sqlite-vec)を Reciprocal Rank Fusion(k=60)で統合し、
[models.rerank]プロバイダーセル(OpenRouter が事前設定されたデフォルト)で再ランキングします。フォールバックとしてローカルの Fastretrieval Qwen3 クロスエンコーダーを使用し、時間減衰と重要度ブーストも適用します - 型付きキャプチャ -- 6 つの context_types(
conversation/fact/preference/skill/task/decision)を持つmemory(action="capture")。埋め込みベースの重複排除、任意の[models.chat]セルによる圧縮と重要度スコアリングに対応します - ナレッジグラフ -- エンティティの自動抽出と関係の追跡を行います。上位の結果はグラフ上の近接性によってブーストされます
- 重要度スコアリング + アーカイブポリシー -- LLM が 0.0~1.0 の重要度をスコアリングします。
recency_factor * (1 - importance) > 1.0の場合にソフトアーカイブし、復元アクションも利用できます - 自動アーカイブのトリガー -- N 回目の capture ごとにバックグラウンドでスイープします(デフォルトは 100)。cron は不要です
- STM から LTM への統合 -- カテゴリー内の関連メモリを LLM で要約します
- 重複検出 -- 意味的に類似したメモリを追加する前に警告します
- 設定不要 -- Fastretrieval の組み込みローカルレジストリが Qwen3 ONNX の埋め込みと再ランキングを解決するため、API キーは不要です。任意のクラウド呼び出しは、タスクごとの
[models.<task>]プロバイダーセル(OpenAI 仕様。OpenRouter が事前設定されたデフォルト)経由で行います - ローカル優先のストレージ --
~/.mnemo/配下に SQLite ファイルを 1 つ(WAL)配置します。バックアップとマシン間の移行には、サーバー外部でrcloneを使用します(組み込み同期はありません) - プラグインの三位一体 --
/recall-context+/memory-commitスキルと、SessionStart + オプトインの PostToolUse フックを同梱しています(docs/ARCHITECTURE.md を参照) - プロアクティブなメモリ -- ツールの説明とスキルが、適切なタイミングで好み、決定、事実を保存するよう AI をガイドします
- LLM 圧縮 --
[models.chat]プロバイダーセル経由でターンごとに圧縮し、事実の保持率 >=0.9 で約 3 倍のトークン削減を目指します。セルが未設定の場合は安全にスキップします(docs/compression.md を参照) - 時間的ナレッジグラフ -- すべてのメモリに二時点の列(
valid_from/valid_to/superseded_by)を追加 + エンティティ解決による重複排除(デフォルトのコサイン類似度しきい値 0.85 で埋め込み KNN を使用) + 監査証跡(前後の状態ハッシュを記録するmemory_auditテーブル) + 新しいアクション(entity_search/entity_graph/history/as_of)+KG_AUTO_ENABLEDによる、オプトイン方式の capture 時の自動抽出。履歴を含む結果を期待してmemory.getを呼び出していたクライアントには破壊的変更となります。タイムトラベルにはas_ofを渡してください。デフォルトでは現在の状態(valid_to IS NULL)に絞り込むようになりました。
クイックインストール
# Method 1: Claude Code plugin (skills + hooks; connects to a running
# mnemo HTTP instance -- start one per "Self-hosting" below)
/plugin marketplace add n24q02m/claude-plugins
/plugin install mnemo-mcp@n24q02m-plugins
# Method 2: run the HTTP server yourself and register the endpoint
uvx --from mnemo-mcp mnemo-mcp # serves http://127.0.0.1:8000/mcp by default
claude mcp add --transport http mnemo http://127.0.0.1:8000/mcp
# Method 3 (remote): point a client at an existing HTTP deployment
claude mcp add --transport http mnemo https://<your-host>/mcp
インストール対応表(サーバーが対応するのは Streamable HTTP のみです。post-de-host では stdio トランスポートを利用できません。詳しい手順については、セットアップページを参照してください):
| クライアント | インストール |
|---|---|
| Claude Code(プラグイン) | /plugin marketplace add n24q02m/claude-plugins を実行し、続けて /plugin install mnemo-mcp@n24q02m-plugins を実行します(実行中のインスタンスが必要です。セルフホスティングを参照してください) |
| Claude Code(HTTP) | サーバーを起動し(uvx --from mnemo-mcp mnemo-mcp または docker compose)、続けて claude mcp add --transport http mnemo http://127.0.0.1:8000/mcp を実行します |
| Codex / Gemini CLI / Cursor / Windsurf | サーバーを起動し、クライアントの MCP 設定に http://<host>:<port>/mcp HTTP エンドポイントを登録します |
| 任意の MCP クライアント | 実行中のインスタンスの /mcp エンドポイント(Streamable HTTP)を指定します |
mnemo-config/config.toml で auth = "token" または "multi" を設定した場合は、トークンを Bearer 認証情報として送信します(--header "Authorization: Bearer <token>" またはクライアントでの同等の設定)。
同種ツールとの比較
| 機能 | mnemo | Mem0 | Letta | OpenMemory |
|---|---|---|---|---|
| ハイブリッド検索(FTS + vec) | 対応(FTS5 + RRF + sqlite-vec) | 対応 | 一部対応 | 対応 |
| クロスエンコーダーによる再ランク付け | 対応(Fastretrieval Qwen3 ローカル + [models.rerank] セル) | 一部対応(Cohere のみ) | 非対応 | 非対応 |
| 時間減衰スコアリング | 対応(指数半減期) | 非対応 | 非対応 | 非対応 |
| ランクにおける重要度ブースト | 対応(LLM 0.0-1.0) | 非対応 | 非対応 | 非対応 |
| ソフトアーカイブ + 復元ポリシー | 対応(重要度 x 新しさ) | 非対応 | 非対応 | 非対応 |
| セルフホスト可能(単一の SQLite ファイル) | 対応(外部依存関係なし) | 一部対応(クラウド優先) | 対応(Postgres) | 対応(Postgres + Qdrant) |
| LLM のディスパッチ | 対応([models.chat] セル、OpenAI 仕様の任意のエンドポイント) | 一部対応 | 対応 | 一部対応 |
| プラグインの三位一体(スキル + フック) | 対応(recall-context + memory-commit) | 該当なし | 該当なし | 該当なし |
| マシン間の移行 | 対応(サーバー外で rclone によるバックアップ/復元) | 対応(クラウド) | 該当なし | 該当なし |
| 取り込み時の LLM 圧縮 | 対応([models.chat] セル、保持率 >=0.90 で約 3 倍) | 非対応 | 非対応 | 非対応 |
二時点 valid_from / valid_to クエリ | 対応(as_of による時間移動) | 非対応 | 一部対応(イベントのみ) | 非対応 |
| 埋め込み KNN によるエンティティ解決 | 対応(コサイン類似度のしきい値を調整可能) | 非対応 | 非対応 | 非対応 |
| 状態ハッシュ付き監査証跡 | 対応(memory_audit テーブル) | 非対応 | 非対応 | 非対応 |
ステータス
2026-09 -- ホスティング廃止アップデート
Cloudflare D1/Vectorize/KV のデプロイモード、GDrive/S3 のパスポート同期機能の組み込み、プロバイダーごとの API キー環境変数とモデルチェーンによるマルチプロバイダーキーの振り分け、および stdio トランスポートは削除されました。mnemo はローカルの SQLite(WAL)ストア上で単一の HTTP MCP エンドポイントとして動作し、クラウドへの呼び出しはすべてタスクごとの
[models.*]プロバイダーセルを経由します(OpenRouter はデフォルトで設定済みです)。 マシン間のバックアップには、サーバーの外部でrcloneを使用してください。以前のバージョンで問題が発生した場合は、最新リリースに更新し、現在のセットアップドキュメントに従ってください。
MCP レジストリに関する注意(2026-10): レジストリのバージョン 2.20.0 は、製品の現状を反映しなくなった stdio の PyPI パッケージの記載(
uvx mnemo-mcp)とともに公開されました。ホスティング廃止後の mnemo が対応するのは Streamable HTTP のみで、セルフホストであり、公開 URL はありません。レジストリのバージョンは変更できないため、古い stdio の記載はそのままでは編集できません。所有者が掲載を取り下げるか、2.20.1 として再公開するまで、レジストリのエントリーは誤ったままです。このリポジトリのserver.jsonでは、パッケージが実際に使用するトランスポート(streamable-http、デフォルトのローカルエンドポイント)を宣言するようになりました。そのため、次回の公開時には正しいメタデータが反映されます。同じ作者による関連プラグイン:
- wet-mcp -- Web 検索とコンテンツ抽出
- imagine-mcp -- 画像/動画の理解と生成
- better-notion-mcp -- Notion API
- better-email-mcp -- メール管理
- better-telegram-mcp -- Telegram
- better-godot-mcp -- Godot Engine
- better-code-review-graph -- コードレビューのナレッジグラフ
すべてのプラグインで同じアーキテクチャを共有しています。一度インストールすれば、習得したパターンをほかのプラグインにも応用できます。
ドキュメント
ドキュメント全文は mcp.n24q02m.com/servers/mnemo-mcp/setup/ をご覧ください。
- セットアップ -- Claude Code、Codex、Gemini CLI、Cursor、Windsurf、mcp.json 向けのインストール方法
- モードの概要 -- stdio/local-relay/remote-relay/remote-oauth
- マルチユーザーのセットアップ -- JWT の sub ごとの認証情報モデル
AI エージェントを使ったインストール -- 次の内容を AI コーディングエージェントに貼り付けてください。
https://raw.githubusercontent.com/n24q02m/claude-plugins/main/plugins/mnemo-mcp/setup-with-agent.md の手順に従って、MCP サーバー
mnemo-mcpをインストールしてください。
Smithery
mnemo-mcp は以前、ローカルの stdio 起動コマンドを使って Smithery 用にパッケージ化されていました。ホスティング廃止後、サーバーは HTTP 専用になったため、ローカルの smithery.yaml は削除されました。代わりに、稼働中のインスタンスの https://<host>/mcp エンドポイントをリモートサーバーとして Smithery に公開してください。
ツール
13 個の MCP ツール、18 個のメモリー操作があります。メモリー機能は、用途に特化した単一機能のツール 11 個、非推奨のレガシー memory ディスパッチャー(同じ操作を提供)、および config として公開されています。
| ツール | 操作 | 説明 |
|---|---|---|
add_memory、search_memory、list_memories、update_memory、delete_memory、export_memories、import_memories、memory_stats、restore_memory、archived_memories、consolidate_memories | (各ツールに 1 操作) | 用途に特化した単一機能のメモリーツール — 推奨されるインターフェース |
memory(レガシーディスパッチャー、非推奨 — 代わりに上記の個別ツールを使用してください。今後のリリースで削除されます) | add、capture、search、list、as_of、update、delete、export、import、stats、restore、archived、archive_now、consolidate、compress、entity_search、entity_graph、history | 基本的な CRUD + 型指定キャプチャ(6 種類の context_types)+ ハイブリッド検索(RRF + 再ランク付け + 時間減衰)+ インポート/エクスポート + ソフトアーカイブ + 復元 + オンデマンドのアーカイブ処理 + LLM による統合 + LLM による圧縮 + 時間軸に基づく KG(エンティティ検索/グラフ/履歴/as_of) |
config | status、set、warmup、backfill_embeddings | サーバーの状態確認、実行時設定の更新、埋め込みモデルの事前ダウンロード、不足している埋め込みベクトルのバックフィル |
プラグインの三位一体(Claude Code マーケットプレイスからインストール):
| コンポーネント | トリガー | 目的 |
|---|---|---|
mnemo:recall-context スキル | セッション開始時、重要な決定の前、「X について何を知っていますか?」 | context_type で絞り込み、現在の作業ディレクトリやトピックに関連するメモリーを取得します |
mnemo:memory-commit スキル | 「これを覚えておいて」/「これを保存して」/「ghi nho」/「luu lai」 | context_type の判定ツリーに基づく型指定の手動キャプチャ |
mnemo:knowledge-audit スキル | 定期実行/「メモリーを監査して」 | 重複、矛盾、古くなった項目を見つけて統合します |
mnemo:session-handoff スキル | セッション終了時 | 決定事項/好み/修正事項/規約/未解決の質問を記録します |
mnemo:temporal-query スキル | 「as of」/「back in」/「history of」/「あのとき何を考えていましたか」 | action="as_of" による特定時点のスナップショットと、superseded_by によるバージョンチェーンの追跡 |
| SessionStart フック | 毎回のセッション初期化時 | recall-context を呼び出すよう、ノンブロッキングで促します |
| PostToolUse フック(オプトイン) | CAPTURE_AUTO_ENABLED=true | CLAUDE.md/AGENTS.md/ARCHITECTURE.md/docs/*.md の書き込み/編集後に memory-commit を提案します |
MCP リソース
| URI | 説明 |
|---|---|
mnemo://stats | データベースの統計情報とサーバーの状態 |
MCP プロンプト
| プロンプト | パラメーター | 説明 |
|---|---|---|
save_summary | summary | 会話の要約をメモリーとして保存するためのプロンプトを生成します |
recall_context | topic | トピックに関連するメモリーを呼び出すためのプロンプトを生成します |
セキュリティ
- 適切なフォールバック — クラウドプロバイダーのセルはローカル ONNX にフォールバックします。設定されていないセルが、有料プロバイダーを暗黙に選択することはありません
- ホストのみが扱う認証情報 — プロバイダーキーはホストが管理する
config.tomlまたはHULL_<TASK>_API_KEY環境変数に保存されます。エンドユーザーに表示されることはありません - 認証で保護された HTTP —
auth = "no-auth"はループバック以外へのバインドを拒否します。token/multiでは認証情報の確認が必要です - エラーのサニタイズ — エラーメッセージに認証情報は含まれません
ソースからビルド
git clone https://github.com/n24q02m/mnemo.git
cd mnemo
uv sync
uv run mnemo-mcp
CLI
このパッケージには、用途の異なる 2 つのコンソールスクリプトが含まれています。
mnemo— CLI を中心としたメモリ操作のインターフェースです(スクリプト/エージェント向けの主なインターフェースであり、サーバーは起動しません)。capture、recall、reflect、fetch、およびstanding-*ファミリーは、SQLite メモリ DB を直接操作します。mnemo-pilotは、同じエントリーポイントのレガシーエイリアスです。mnemo-mcp— MCP サーバーと、単発実行用のオペレーターサブコマンドです。引数なしで実行すると HTTP サーバーが起動し、先頭にサブコマンド(config-init、warmup、token-hash、token-verify)を指定すると、処理を実行して終了します。
CLI を中心としたメモリ操作のインターフェース(mnemo。すべてのサブコマンドは --db <path> を受け取り、JSON エンベロープを出力して、分類体系に対応するコードで終了します):
uvx --from mnemo-mcp mnemo recall --db ./mem.db "package naming" --k 3 # try without a persistent install
mnemo capture --db ./mem.db "keep PyPI name mnemo-mcp; repo is mnemo" --tags decision --category decision
mnemo recall --db ./mem.db "release ladder" --k 5 # search a subject's memories
mnemo reflect --db ./mem.db "why keep the alias?" --k 5 # bounded cited reflect over retrieval
mnemo fetch --db ./mem.db <memory_id> # fetch one memory by id
mnemo standing-refresh --db ./mem.db onboarding "how do releases cut?" --k 5 # materialize a standing page
mnemo standing-read --db ./mem.db onboarding # cheap read with staleness info
サーバーオペレーター向け CLI(mnemo-mcp。引数なしで実行すると HTTP サーバーが起動します):
mnemo-mcp # start the Streamable HTTP MCP server
# (bind host/port from config.toml or MNEMO_HOST/MNEMO_PORT)
mnemo-mcp config-init [--force] # write ~/.mnemo/config.toml from the template
mnemo-mcp warmup # pre-download local embedding model / probe cells
mnemo-mcp token-hash # print a scrypt$ hash for [server] token_hash
# (reads MNEMO_AUTH_TOKEN or prompts)
mnemo-mcp token-verify <token> <scrypt$...> # verify a token against a hash
| サブコマンド | 用途 |
|---|---|
config-init [--force] | インスタンスのデフォルト config.toml(サーバー認証および [models.*] プロバイダー設定)を書き込みます |
warmup | 初回からオフラインで動作できるよう、Fastretrieval が管理するローカル ONNX 埋め込みモデルを事前ダウンロードします |
token-hash | [server] token_hash(共有トークン認証)用の scrypt$ ハッシュを生成します |
token-verify | 保存済みの scrypt$ ハッシュに対してトークン候補を検証します |
セルフホスティング(ローカル HTTP インスタンス)
お使いのマシンで MCP クライアント向けにサーバーを実行する方法は 2 つあります。
開発時:uv で起動(認証なし、ループバックのみ)
uv run mnemo-mcp # binds 127.0.0.1:8000, auth = "no-auth" by default
no-auth はループバック以外へのバインドを拒否するため、構成上 localhost でのみ使用できます。ローカルでサーバーを試す用途に適しています。MCP エンドポイントは
http://127.0.0.1:8000/mcp です。実際に使う設定を用意するには、初期設定を行って編集します。
uv run mnemo-mcp config-init # writes ~/.mnemo/config.toml from the template
常時稼働:docker compose(トークン認証、ループバックにポートを公開)
docker-compose.http.yml は単独で使用できます(イメージをビルドし、mnemo-data ボリュームに状態を永続化します)。ポートはループバックにのみ公開されます。
cp mnemo-config/config.example.toml mnemo-config/config.toml # then edit:
# auth = "token"; set token_hash per the comments at the top of the example
docker compose -f docker-compose.http.yml up --build -d
# MCP endpoint: http://127.0.0.1:8771/mcp (override the host port: MNEMO_PORT=9000 ...)
トークンの設定(サンプル設定にも記載されています):
python -c "import secrets; print(secrets.token_urlsafe(32))" # 1. mint token
MNEMO_AUTH_TOKEN=<token> uv run mnemo-mcp token-hash # 2. print scrypt$ hash
# 3. paste the hash into token_hash in mnemo-config/config.toml; give clients the token
auth = "multi"(ユーザーごとの名前空間)を使用する場合は、users.toml もマウントしてください。docker-compose.http.yml のコメントアウトされた行を参照してください。
CLI の利用者(サーバー不要)
mnemo インターフェースはメモリ DB を直接操作するため、スクリプトやエージェントに便利です。
mnemo capture --db ./mem.db "keep PyPI name mnemo-mcp; repo is mnemo" --tags decision --category decision
mnemo recall --db ./mem.db "release ladder" --k 5
mnemo fetch --db ./mem.db <memory_id>
すべてのサブコマンドは JSON エンベロープを出力し、--db <path> を受け取ります。インターフェース全体については、CLI(reflect、standing-* など)を参照してください。
MCP クライアントをインスタンスに接続する
HTTP エンドポイントを登録します(Streamable HTTP トランスポート)。
- Claude Code:
claude mcp add --transport http mnemo http://127.0.0.1:8771/mcp - OpenAI 仕様の任意の MCP クライアント:サーバー URL は
http://127.0.0.1:8771/mcpです。auth = "token"の場合は、共有トークンを Bearer 認証情報として送信します。
設定:タスクごとのローカル/クラウドの使い分け
mnemo-config/config.toml の各タスク設定([models.embed]、rerank、chat、jev_score)はそれぞれ独立しています。OpenAI 仕様の HTTP で、base_url + api_key + model を指定します。自由に組み合わせられます。たとえば、chat にクラウドの OpenRouter を使い、embed/rerank はローカルの OpenAI 仕様サーバーを指定することも、すべてクラウドにすることもできます。キーはホスト側のみで使用され(エンドユーザーには表示されません)、HULL_<TASK>_API_KEY 環境変数から読み込むこともできます。
リモート(HTTP モード)
mnemo は単一の /mcp エンドポイントで Streamable HTTP を使用します。リモートアクセスには、到達可能なホストでセルフホストしたインスタンスを使用し、任意の TLS プロキシを前段に配置します(サーバー自体は平文 HTTP でバインドします)。認証は mnemo-config/config.toml の [server] で設定します。auth = "token" は共有 Bearer トークン、auth = "multi" は users.toml を介したユーザーごとのトークンと名前空間を使用します。auth = "no-auth" はループバック以外へのバインドを拒否します。
公開 OCI イメージの配布は終了しました。過去のレジストリータグはそのまま残ります。新しいコンテナ環境はソースからビルドする(docker build --target http)か、docker-compose.http.yml を使用してください。
信頼モデル
mnemo は TC-Local(マシンに紐づく)です。すべてのストレージアーティファクトは OS ユーザーが所有する
~/.mnemo/ 配下に保存され、プロバイダーキーはホストのみの設定(
config.toml / HULL_<TASK>_API_KEY)に保存されます。MCP クライアントから参照されることはありません。
[server] auth | バインド可能な範囲 | ストレージ | データを読み取れるユーザー |
|---|---|---|---|
no-auth(デフォルト) | ループバックのみ(ループバック以外へのバインドは拒否) | ~/.mnemo/memories.db + config.toml | OS ユーザー本人のみ |
token | 任意 | 同一の共有 default 名前空間 | 共有トークンを持つすべてのユーザー |
multi | 任意 | 名前空間ごとの ~/.mnemo/subs/<ns>/memories.db(users.toml 経由) | 各トークンの所有者は自分の名前空間のみ参照可能 |
ライセンス
Apache-2.0 -- LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。