mcpField
E
EchoVault Memory

EchoVault Memory

ローカル
github.com/go-portsメモリ・ナレッジ410 週間前に更新

EchoVault Memory について

EchoVault Memoryは、コーディングエージェント向けのローカルメモリシステムで、決定事項、バグ、プロジェクトのコンテキストをセッション間で保持します。Goバイナリで共有Markdown保管庫とキーワード検索を提供し、任意でセマンティック検索にも対応します。

主な機能

  1. 01MCPでセッションメモリを保存・取得
  2. 024種類のエージェントで保管庫を共有
  3. 03FTS5と任意のベクトル検索
  4. 04保存前にシークレットを除去
  5. 05Obsidian互換Markdownでメモリを保存

活用シーン

  1. 01セッション開始時にプロジェクトの決定事項を復元
  2. 02過去のバグや実装コンテキストを検索
  3. 03対応するコーディングエージェント間でメモリを共有

MCP 対応

MCPサーバーとして動作し、`memory_save`、`memory_search`、`memory_context`ツールを公開します。CLIからClaude Code、Cursor、Codex、OpenCode用のサーバー設定を行えます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"go-ports-echovault": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MEMORY_HOME",
"ghcr.io/go-ports/echovault:0.3.3"
],
"env": {
"MEMORY_HOME": "<MEMORY_HOME>"
}
}
}
}
起動コマンドdocker run -i --rm -e MEMORY_HOME ghcr.io/go-ports/echovault:0.3.3
設定が必要な環境変数
MEMORY_HOMEDirectory where memories are stored. Ensure this path is mounted to persistent storage for data retention across container restarts.

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

パッケージ
ocighcr.io/go-ports/echovault:0.3.3

ツール

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

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

詳細

EchoVault

EchoVault — Go

コーディングエージェントのためのローカルメモリです。エージェントはセッションをまたいで決定事項、バグ、コンテキストを記憶します。クラウドも、API キーも、費用も不要です。

インストール · 機能 · 仕組み · コマンド


これは EchoVault のGo 移植版です。Python ランタイムへの依存がない、単一の静的バイナリです。Vault の形式と MCP インターフェースは Python 版と完全に互換性があり、メモリを失うことなく切り替えられます。

機能

4 つのエージェントで動作 — Claude Code、Cursor、Codex、OpenCode に対応しています。1 つのコマンドで、お使いのエージェントの MCP 設定を行えます。

MCP ネイティブ — MCP サーバーとして動作し、memory_save、memory_search、memory_context をツールとして公開します。エージェントはこれらを直接呼び出すため、シェルフックは不要です。

ローカル優先 — すべてのデータはお使いのマシンに保存されます。メモリは ~/.memory/vault/ に Markdown 形式で保存され、Obsidian や任意のエディターで読み取れます。

アイドル時のコストゼロ — バックグラウンドプロセスも、デーモンも、RAM のオーバーヘッドもありません。MCP サーバーはエージェントが起動したときにのみ実行されます。

ハイブリッド検索 — FTS5 によるキーワード検索をすぐに利用できます。Ollama または OpenAI を追加すると、セマンティックなベクトル検索が使えます。

シークレットのマスキング — 3 層のマスキングにより、ディスクに書き込まれる前に API キー、パスワード、認証情報を取り除きます。明示的な <redacted> タグ、パターン検出、カスタム .memoryignore ルールに対応しています。

エージェント間で共有 — Claude Code で保存したメモリは、Cursor、Codex、OpenCode から検索できます。1 つの Vault を複数のエージェントで利用できます。

Obsidian 互換 — セッションファイルは YAML フロントマター付きの有効な Markdown です。Obsidian で ~/.memory/vault/ を開くと、エージェントのメモリを視覚的に閲覧できます。

インストール

ビルド済みバイナリ

お使いのプラットフォーム向けの最新リリースをリリースページからダウンロードし、$PATH 上の任意の場所にバイナリを配置してください。

ソースからビルド
git clone https://github.com/go-ports/echovault.git
cd echovault
make build          # produces ./bin/memory
sudo cp bin/memory /usr/local/bin/

CGO が必要です。 このバイナリは go-sqlite3 と sqlite-vec にリンクするため、C コンパイラー(gcc/clang)が必要です。macOS では xcode-select --install、Debian/Ubuntu では apt install build-essential を実行してください。

初回起動
memory init
memory setup claude-code   # or: cursor, codex, opencode

これで完了です。memory setup を実行すると、MCP サーバーの設定が自動的にインストールされます。

デフォルトでは、設定はグローバルにインストールされます。特定のプロジェクトにインストールするには、次のようにします。

cd ~/my-project
memory setup claude-code --project   # writes .mcp.json in project root
memory setup opencode --project      # writes opencode.json in project root
memory setup codex --project         # writes .codex/config.toml + AGENTS.md
埋め込みの設定(任意)

埋め込みを有効にすると、セマンティック検索が利用できます。埋め込みを設定しなくても、FTS5 による高速なキーワード検索を利用できます。

初期設定ファイルを生成します。

memory config init

これにより、適切なデフォルト値を設定した ~/.memory/config.yaml が作成されます。

embedding:
  provider: ollama              # ollama | openai | openrouter
  model: nomic-embed-text

context:
  semantic: auto                # auto | always | never
  topup_recent: true

各セクションの役割:

  • embedding — メモリをセマンティック検索用のベクトルに変換する方法を設定します。ollama はローカルで実行され、openai と openrouter はクラウド API を呼び出します。Ollama では nomic-embed-text がローカルモデルとして適しています。
  • context — セッション開始時にメモリを取得する方法を設定します。auto は、埋め込みが利用可能な場合はベクトル検索を使い、利用できない場合はキーワード検索にフォールバックします。topup_recent を設定すると、最近のメモリも含めるため、エージェントが新しいコンテキストを利用できます。

クラウドプロバイダーを使用する場合は、プロバイダーのセクションに api_key を追加してください。API キーは memory config の出力でマスキングされます。

メモリの保存場所を設定する

デフォルトでは、EchoVault はデータを ~/.memory に保存します。

保存場所は次の 2 つの方法で変更できます。

  • MEMORY_HOME=/path/to/memory(優先度が最も高く、シェル/プロセスごとに設定)
  • memory config set-home /path/to/memory(永続的なデフォルト設定)

便利なコマンド:

memory config set-home /path/to/memory
memory config clear-home
memory config

memory config を実行すると、memory_home と memory_home_source(env、config、または default)の両方が表示されます。

グローバルフラグ --memory-home を指定すると、単一の実行に限り、すべての設定が上書きされます。

memory --memory-home /tmp/test-vault search "authentication"

使い方

セットアップが完了すると、エージェントは MCP ツールを使ってメモリを利用します。

  • セッション開始時 — エージェントは memory_context を呼び出し、以前の決定事項やコンテキストを読み込みます
  • 作業中 — エージェントは memory_search を呼び出し、関連するメモリを検索します
  • セッション終了時 — エージェントは memory_save を呼び出し、決定事項、バグ、学びを保存します

MCP ツールの説明により、エージェントは自動的に保存と取得を行うよう指示されます。ほとんどの場合、手動でプロンプトを入力する必要はありません。

CLI を直接使うこともできます。

memory save --title "Switched to JWT auth" \
  --what "Replaced session cookies with JWT" \
  --why "Needed stateless auth for API" \
  --impact "All endpoints now require Bearer token" \
  --tags "auth,jwt" --category "decision" \
  --details "Context:
Options considered:
- Keep session cookies
- Move to JWT
Decision:
Tradeoffs:
Follow-up:"

memory search "authentication"
memory details <id>
memory context --project

長い詳細には --details-file notes.md を使います。構造化された詳細を自動的に準備するには、--details-template を使います。

仕組み

~/.memory/
├── vault/                    # Obsidian-compatible Markdown
│   └── my-project/
│       └── 2026-02-01-session.md
├── index.db                  # SQLite: FTS5 + sqlite-vec
└── config.yaml               # Embedding provider config
  • Markdown の保管庫 — セッションごと、プロジェクトごとに 1 つのファイルを作成し、YAML フロントマターを含みます
  • SQLite インデックス — キーワード検索には FTS5、セマンティックベクトルには sqlite-vec を使用します
  • 簡潔なポインター — 検索結果は約 50 トークンの要約を返し、完全な詳細は必要に応じて取得します
  • 3 層のマスキング — 明示的なタグ、パターンマッチング、.memoryignore ルールを使用します

対応エージェント

エージェントセットアップコマンドインストールされるもの
Claude Codememory setup claude-code.mcp.json(プロジェクト)または ~/.claude.json(グローバル)に MCP サーバー
Cursormemory setup cursor.cursor/mcp.json に MCP サーバー
Codexmemory setup codex.codex/config.toml に MCP サーバーと AGENTS.md のフォールバック
OpenCodememory setup opencodeopencode.json(プロジェクト)または ~/.config/opencode/opencode.json(グローバル)に MCP サーバー

すべてのエージェントは、有効な memory_home パス(デフォルトは ~/.memory/)にある同じメモリ保管庫を共有します。Claude Code で保存したメモリは、Cursor、Codex、OpenCode からも検索できます。

コマンド

コマンド説明
memory init有効なメモリホームに保管庫を作成します
memory setup <agent>エージェント用の MCP サーバー設定をインストールします
memory uninstall <agent>エージェント用の MCP サーバー設定を削除します
memory save ...メモリを保存します(--details-file と --details-template に対応)
memory search "query"FTS とセマンティック検索を組み合わせて検索します
memory details <id>メモリの詳細をすべて表示します
memory delete <id>ID またはプレフィックスを指定してメモリを削除します
memory context --project現在のプロジェクトのメモリ一覧を表示します
memory sessionsセッションファイルの一覧を表示します
memory config有効な設定を表示します
memory config init初期設定用の config.yaml を生成します
memory config set-home <path>デフォルトのメモリ保存先を永続化します
memory config clear-home永続化されたメモリ保存先を削除します
memory reindexプロバイダーの変更後にベクトルを再構築します
memory mcpMCP サーバーを起動します(stdio トランスポート)
グローバルフラグ
フラグ説明
--memory-home <path>この実行に限りメモリホームを上書きします
--help任意のコマンドのヘルプを表示します

アンインストール

memory uninstall claude-code   # or: cursor, codex, opencode
rm /usr/local/bin/memory

保存済みのメモリもすべて削除するには、rm -rf ~/.memory/ を実行します。

プライバシー

デフォルトでは、すべてのデータはローカルに保存されます。埋め込みに OpenAI または OpenRouter を設定した場合、それらの API 呼び出しは各サービスのサーバーに送信されます。完全にローカルで運用するには Ollama を使用してください。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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