mcpField
M
Memento

Memento

ローカル
github.comメモリ・ナレッジ936 週間前に更新

Memento について

Mementoは、会話をセッションをまたいで保持するナレッジグラフにまとめる、MCP対応AIツール向けのローカル優先メモリーサーバーです。ハイブリッド検索、メモリーのライフサイクル管理、Web UIを備え、個人やチームのプロジェクト情報を保存できます。

主な機能

  1. 01セッションをまたぐメモリー保存
  2. 02エンティティと関係の自動抽出
  3. 03全文検索とセマンティック検索
  4. 04メモリーのバージョン・状態管理
  5. 05Webグラフ表示と連携設定
  6. 06SQLiteとPostgreSQLのストレージ

活用シーン

  1. 01セッション間で技術的決定を確認
  2. 02プロジェクトの関連情報を検索
  3. 03エンティティ関係とグラフを探索
  4. 04チーム内で開発規約を共有

MCP 対応

MCP サーバーとして、対応クライアントにメモリーの保存・検索、関係の探索、プロジェクト管理ツールを提供します。連携ページからクライアント設定を生成し、接続をテストできます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"scrypster-memento": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/scrypster/memento:0.1.0"
]
}
}
}
起動コマンドdocker run -i --rm ghcr.io/scrypster/memento:0.1.0

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

パッケージ
ocighcr.io/scrypster/memento:0.1.0

ツール

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

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

詳細

Memento — すべてを記憶し、何も忘れない

Memento

AI ツールに永続的なメモリーを持たせ、毎回のセッションを前回の続きから始めましょう。

Version Go Version License Docker MCP

AI はセッションのたびに初期状態から始まります。Memento がそれを解決します。

Memento はお使いのマシン上で動作し、MCP 対応のあらゆる AI ツールに接続して、会話から永続的なナレッジグラフを構築します。エンティティ、関係、意思決定、コンテキストは、セッションを再起動しても保持されます。

クラウド不要。API キー不要。サブスクリプション不要。データはお使いのマシン上に保管されます。


クイックスタート

前提条件: Docker、または Go 1.23+ + Node.js 18+ + Ollama

git clone https://github.com/scrypster/memento.git
cd memento
./launch.sh

スクリプトが環境を検出して事前チェックを行い、すべてをビルドしたうえで、最後に AI ツールの接続に使う正確なコマンドを表示します。 初回実行時には Ollama のモデル(約 5 GB)がダウンロードされます。その後は数秒で起動します。

初めてのメモリー

接続したら、Claude で次のように試してみてください。

"We're using PostgreSQL — chose it for pgvector support."

タブを閉じ、新しいセッションを開いて、次のように尋ねます。

"What database are we using?"

AI はすでに知っています。説明し直す必要も、コンテキストウィンドウの小細工も必要ありません。

タブを閉じ、新しいセッションを開きます。

You: "What database are we using?"

→ Your AI already knows: "PostgreSQL — you chose it for pgvector support."
  No re-explaining. No context window tricks. It just remembers.

その裏側で、Memento は次のようなものを自動で構築しました。

グラフエクスプローラー

すべてのエンティティが、信頼度スコアとタイムスタンプ付きで、人、ツール、プロジェクト、意思決定などのナレッジグラフに組み込まれます。


ツールを接続する

http://localhost:6363/integrations を開くと、ウェブ UI で各クライアント向けの設定、ダウンロードボタン、接続テストを利用できます。

インテグレーション

クライアントセットアップ
Claude Code./launch.sh を実行します。最後に、そのままコピーして貼り付けられる正確なコマンドが表示されます。コマンドの例:claude mcp add memento -- `pwd`/memento-mcp
Claude Desktop設定をダウンロードし、~/Library/Application Support/Claude/ に配置します
Cursor設定をダウンロードし、.cursor/mcp.json に配置します。任意で Cursor Rules ファイルも追加できます
Windsurf設定をダウンロードし、.codeium/windsurf/mcp_config.json に配置します
OpenClaw~/.openclaw/mcp.json の mcpServers の下に追加します。Claude Desktop と同じ形式です
汎用 MCPあらゆる MCP クライアントで利用できます。コマンドパスと MEMENTO_DATA_PATH 環境変数を指定する同じ形式です

インテグレーションページでは、実際のバイナリパスとデータディレクトリを使った、すぐに貼り付けられる設定が生成されます。接続テスト、トラブルシューティング、プロジェクトごとのワークスペースのスコープ設定も利用できます。

Claude Code を自動で活用する(推奨)

MCP 接続によってツールを利用可能になりますが、Claude が自動的に使うようにはなりません。~/.claude/CLAUDE.md に次の内容を追加すると、指示しなくても Claude が意思決定を保存し、コンテキストを思い出せるようになります。

## Memento MCP — Persistent Memory

The `memento` MCP server provides persistent cross-session memory. Use these tools proactively — don't wait to be asked.

**Store** (`store_memory`) when the user:
- States a preference or working style ("I prefer X", "always use Y format")
- Makes an architectural or technical decision
- Establishes project context that should survive session restarts
- Explicitly says "remember this" or similar

**Recall** (`recall_memory` or `find_related`) when:
- Starting a session for a known project — query for relevant context before diving in
- About to make a recommendation — check for existing preferences first
- The user asks about past decisions, choices, or "what did we decide about X"
- Something seems like it may have been discussed in a prior session

**Don't store:** transient debug output, in-progress exploration, or anything session-specific that won't matter next time.

Memories are searchable immediately after storing. Enrichment (entity/relationship extraction) runs asynchronously via local Ollama.

ウェブ UI の Integrations → Claude Code → Make it proactive では、お使いのパスと接続設定に合わせたバージョンを生成でき、ダウンロードボタンも利用できます。

インテグレーションガイドの全文はこちらをご覧ください:Claude Code | Claude Desktop | Cursor & Windsurf | OpenClaw

チームメモリー — エンジニアリングチーム全体でナレッジを共有

全員の AI ツールを同じ Memento インスタンスに接続すれば、チームの意思決定、規約、コンテキストが、誰でも検索でき、誰が登録したかも確認できる共有ナレッジになります。

各メモリーには、登録者の情報がタグ付けされます。Memento は git の設定からこれを自動検出しますが、明示的に設定することもできます。

export MEMENTO_USER=alice   # or set in your shell profile

または、MCP の設定で指定できます。

"env": { "MEMENTO_USER": "alice" }

設定すると、次のように尋ねられます。

What did Bob decide about the auth service this week?
recall_memory(created_by="bob", created_after="2024-01-14T00:00:00Z")

セットアップ: 各チームメンバーは、同じ PostgreSQL データベースを参照するよう Memento を設定します。個人のコンテキストは個人用として保持します(別の個人用接続を使用してください)。共有するアーキテクチャ上の意思決定、規約、プロジェクトのコンテキストは、共有接続に保存します。

PostgreSQL の設定について詳しくは、チームセットアップガイドをご覧ください。


AI ができること

接続すると、AI はプロンプトなしで呼び出せる20 個のツールを利用できます。

メモリーの基本操作
ツール機能
store_memory意思決定やコンテキストを保存します。拡充処理は非同期で行われ、10 ミリ秒未満で応答します
recall_memoryID、自然言語のクエリ、またはフィルター付きのページ分割リストからメモリーを取得します
find_relatedハイブリッド検索を行います。全文検索、セマンティックベクトル検索、RRF ランキングを組み合わせます
update_memory既存のメモリーの内容、タグ、メタデータを編集します
forget_memoryメモリーをソフト削除(猶予期間あり)または完全削除します
検索とインテリジェンス
ツール機能
traverse_memory_graphエンティティの関係をたどり、コンテキスト上つながりのあるメモリーを見つけます(複数ホップの BFS)
detect_contradictions矛盾する関係、置き換えられたのに有効なままのメモリー、時間的に成立しない内容を検出します
explain_reasoning特定のメモリーがクエリに対して取得された理由を提示します
get_session_context「どこまで作業したか」を確認できます。最近のメモリーをトピックごとにまとめて表示します
メモリーのライフサイクル
ツール機能
update_memory_stateライフサイクルに沿って状態を変更します:planning → active → paused / blocked / completed → archived
evolve_memory古いバージョンを引き継ぐ新しいバージョンを作成し、履歴全体を保持します
consolidate_memoriesLLM の支援により、関連する複数のメモリーを一貫性のある 1 つの記録に統合します
get_evolution_chainメモリーの最初のバージョンから最新のバージョンまで、全履歴を表示します
ソフト削除と復元
ツール機能
restore_memoryソフト削除されたメモリーを復元します
list_deleted_memories復元可能なソフト削除済みメモリーを一覧表示します
retry_enrichment以前の処理に失敗したメモリーのエンティティ抽出を再実行します
プロジェクト管理
ツール機能
create_projectプロジェクトメモリーを作成します。必要に応じてフェーズを事前に作成できます
add_project_itemプロジェクトにエピック、フェーズ、タスク、ステップ、マイルストーンを追加します
get_project_treeプロジェクトの入れ子になった階層全体を取得します
list_projectsすべてのプロジェクトを一覧表示します。必要に応じてライフサイクルの状態で絞り込めます

保存の応答は 10 ミリ秒未満です。 エンティティ抽出、関係性のマッピング、埋め込みの生成といった拡充処理は非同期で実行されます。AI の処理がブロックされることはありません。


表示例

自動抽出されたエンティティ — 手動入力は不要

エンティティ

人物、プロジェクト、ツール、組織、言語、API を AI との会話から自動抽出します。タグ付けは不要です。

関係性のインテリジェンス

関係性

AI は、誰が何に works_on しているか、どのツールがどのサービスに depend_on しているか、そして各意思決定の現在の状態を、信頼度スコアやタイムスタンプとともに把握します。

ダッシュボード

ダッシュボード

ライブの拡充キュー、エンティティブラウザー、関係性エクスプローラー、グラフビジュアライザーを、すべてウェブ UI で利用できます。


Memento を選ぶ理由

Mem0 との比較

Mem0 では、本番環境で使用するためにクラウド API キーと有料プランが必要です。Memento は Ollama を使ってマシン上で完全に動作するため、API キーもクラウドも不要で、メモリごとの料金もかかりません。また、Memento にはグラフの可視化、エンティティブラウザー、ワンクリックの統合設定を備えた完全な Web UI が付属しています。Mem0 には Web インターフェースがありません。

Zep / Graphiti との比較

Zep では、ナレッジグラフを利用するために Neo4j または FalkorDB が必要です。Memento は SQLite(依存関係ゼロ)または PostgreSQL を使用するため、グラフデータベースの管理は不要です。Zep のオープンソース版には制限があり、すべての機能を利用するには Zep Cloud が必要です。

組み込みの AI メモリ(ChatGPT、Claude)との比較

組み込みのメモリは、関連性、検索、グラフを備えておらず、データをエクスポートしたり管理したりする方法もない、単純な事実のリストです。Memento では、ハイブリッド検索とライフサイクルの完全な管理機能を備えた、自分で所有できる構造化ナレッジグラフを利用できます。

ドキュメントや Wiki との比較

Memento は作業中にコンテキストを自動で記録するため、手作業は不要です。孤立したページを作るのではなく、概念間の関係を構築します。また、人間だけでなく LLM からのクエリにも対応するよう設計されています。


動作の仕組み

┌─────────────────────────────────────────────────────┐
│  Your AI tool (Cursor / Claude Code / Windsurf / …) │
└─────────────────────────┬───────────────────────────┘
                          │  MCP (JSON-RPC 2.0 over stdio)
┌─────────────────────────▼───────────────────────────┐
│                   MCP Server                        │
│   store · recall · find_related · contradictions…   │
└─────────────────────────┬───────────────────────────┘
                          │
┌─────────────────────────▼───────────────────────────┐
│                Memory Engine                        │
│  ┌──────────────────────────────────────────────┐  │
│  │           Enrichment Pipeline                │  │
│  │  entity extraction → relationship mapping    │  │
│  │  → semantic embeddings → contradiction check │  │
│  └──────────────────────────────────────────────┘  │
└──────────────────┬──────────────────────────────────┘
                   │
       ┌───────────┴───────────┐
       │                       │
┌──────▼──────┐       ┌────────▼────────┐
│   SQLite    │       │  PostgreSQL     │
│  FTS5 index │       │  + pgvector     │
│  (default)  │       │  (scale-out)    │
└─────────────┘       └─────────────────┘

機能

完全オフラインで動作

  • Ollama はローカルで動作するため、デフォルトの設定では外部ネットワークへの接続は発生しません
  • SQLite データベースは、所有者であるあなたが管理する単一のファイルです:~/.memento/memento.db
  • より高品質な抽出が必要な場合は、OpenAI または Anthropic に切り替えられます。利用はオプトインのみです

ハイブリッド検索

  • FTS5 の全文検索とセマンティックベクトル検索を、Reciprocal Rank Fusion(RRF)で統合します
  • 入力した言葉だけでなく、意図した内容を見つけます

ナレッジグラフ

  • 人、プロジェクト、ツール、言語、API、データベース、概念など、22 種類のエンティティを抽出します
  • 信頼度スコア付きで44種類の関係をマッピングします
  • Web UI でインタラクティブなグラフを探索できます

メモリのライフサイクル

  • ライフサイクルの状態:planning → active → paused | blocked | completed | cancelled → archived
  • 減衰スコアリングにより、古くなったコンテキストのランキング上の重みが自然に低下します
  • アクセス頻度によるブーストにより、よく思い出すメモリは目立つ状態を保ちます

本番環境に対応したバックエンド

  • 個人利用またはローカル利用には SQLite(依存関係ゼロ、CGo 不要)
  • チームまたは本番環境へのデプロイには PostgreSQL + pgvector + ivfflat インデックス

複数接続の分離

  • プロジェクト、クライアント、ワークスペースごとにメモリの名前空間を分離します
  • 単一の環境変数で MCP 呼び出しを異なる接続に振り分けます

Web UI

  • エンリッチメントキューのライブ表示、エンティティブラウザー、関係エクスプローラー、グラフビジュアライザーを備えたダッシュボード
  • サポート対象のすべてのクライアントで、ワンクリックの統合設定が可能
  • 接続テスト、CLAUDE.md の生成、Cursor Rules のダウンロード
  • 認識されない LLM のエンティティタイプを追跡し、時間の経過とともに分類体系を拡張できます

LLM プロバイダー

プロバイダーセットアップ使用する場面
Ollama(デフォルト)docker compose up — 自動プライバシーを最優先したい場合、API 費用をかけたくない場合、完全にオフラインで使いたい場合
OpenAIMEMENTO_LLM_PROVIDER=openai と API キーを設定より高品質な抽出が必要で、クラウド利用が可能な場合
AnthropicMEMENTO_LLM_PROVIDER=anthropic と API キーを設定最も強力な推論が必要で、クラウド利用が可能な場合

接続ごとにプロバイダーを切り替えられます。異なるプロジェクトで異なる LLM を使用できます。


設定

変数デフォルト説明
MEMENTO_PORT6363Web UI と REST API のポート
MEMENTO_STORAGE_ENGINEsqlitesqlite または postgres
MEMENTO_DATA_PATH./dataSQLite データベースのディレクトリ
MEMENTO_LLM_PROVIDERollamaollama、openai、または anthropic
MEMENTO_OLLAMA_URLhttp://localhost:11434Ollama API のエンドポイント
MEMENTO_OLLAMA_MODELqwen2.5:7b抽出モデル
MEMENTO_EMBEDDING_MODELnomic-embed-text埋め込みモデル
MEMENTO_OPENAI_API_KEY—OpenAI API キー
MEMENTO_ANTHROPIC_API_KEY—Anthropic API キー
MEMENTO_DEFAULT_CONNECTION—複数ワークスペースを分離する際のデフォルトの接続名
MEMENTO_CONNECTIONS_CONFIG—複数ワークスペースの設定に使う connections.json のパス
MEMENTO_BACKUP_ENABLEDfalse自動バックアップ
MEMENTO_BACKUP_INTERVAL24hバックアップの頻度
PostgreSQL
docker compose --profile postgres up -d
MEMENTO_STORAGE_ENGINE=postgres
MEMENTO_DATABASE_URL=postgres://memento:memento_dev_password@localhost:5433/memento

プロジェクト構成

memento/
├── cmd/
│   ├── memento-mcp/        # MCP server binary — connect this to your AI client
│   ├── memento-web/        # Web dashboard — entity browser, graph explorer, settings
│   └── memento-setup/      # Interactive setup wizard
├── internal/
│   ├── api/mcp/            # MCP JSON-RPC server — 20 tool handlers
│   ├── engine/             # Memory engine, enrichment pipeline, async workers
│   ├── llm/                # Ollama, OpenAI, Anthropic + circuit breaker
│   └── storage/
│       ├── sqlite/         # SQLite with FTS5 and hybrid vector search
│       └── postgres/       # PostgreSQL with pgvector and ivfflat index
├── web/
│   ├── handlers/           # HTMX handlers
│   ├── templates/          # Dashboard, graph, entities, settings, integrations
│   └── static/templates/   # MCP config snippets generated per client
├── docs/
│   └── integrations/       # Per-client integration guides
├── migrations/             # SQL schema migrations
└── docker-compose.yml

コントリビュート

Issue と PR を歓迎します。大規模な作業を始める前に Issue を作成してください。

go test ./...

go build -o memento-mcp ./cmd/memento-mcp/
go build -o memento-web ./cmd/memento-web/
go build -o memento-setup ./cmd/memento-setup/

ライセンス

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


開発者

MJ Bonanno — ソフトウェアアーキテクトであり、Scrypster の創設者です。


すべてを記憶し、何も忘れません。 Leonard Shelby とは違い、コンテキストはいつまでも残ります。検索可能で、バージョン管理され、決して消えることのないナレッジグラフに支えられています。

コメント

MCP は初めてですか?

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

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