/ ディレクトリ / プレイグラウンド / Memory
● 公式 modelcontextprotocol ⚡ 即起動

Memory

作者 modelcontextprotocol · modelcontextprotocol/servers

Claude が複数のチャットにわたって書き込みと読み取りを行う永続的な知識グラフ。つまり、あなたのプロジェクト、チーム、設定を記憶します。

参照実装としての Memory MCP です。エンティティ(人、プロジェクト、物)、それらの観察結果(事実)、およびそれらの間の型付き関係を、ローカル JSON 知識グラフとして保存します。Claude は文脈ウィンドウに依存せず、特定の事実(「本番 DB の名前は api-prod-01」、「Jamie は PR 説明を箇条書き形式で好む」)を記憶できます。

なぜ使うのか

主な機能

ライブデモ

実際の動作

memory.replay ▶ 準備完了
0/0

インストール

クライアントを選択

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ]
    }
  }
}

Claude Desktop → Settings → Developer → Edit Config を開く。保存後、アプリを再起動。

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ]
    }
  }
}

Cursor は Claude Desktop と同じ mcpServers スキーマを使用。プロジェクト設定はグローバルより優先。

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ]
    }
  }
}

Cline サイドバーの MCP Servers アイコンをクリックし、"Edit Configuration" を選択。

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "memory": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ]
    }
  }
}

Claude Desktop と同じ形式。Windsurf を再起動して反映。

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "memory",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-memory"
      ]
    }
  ]
}

Continue はマップではなくサーバーオブジェクトの配列を使用。

~/.config/zed/settings.json
{
  "context_servers": {
    "memory": {
      "command": {
        "path": "npx",
        "args": [
          "-y",
          "@modelcontextprotocol/server-memory"
        ]
      }
    }
  }
}

context_servers に追加。保存時に Zed がホットリロード。

claude mcp add memory -- npx -y @modelcontextprotocol/server-memory

ワンライナー。claude mcp list で確認、claude mcp remove で削除。

ユースケース

実用的な使い方: Memory

毎朝 Claude に何度もプロジェクトを説明するのをやめる方法

👤 同じコードベースについて毎日 Claude とチャットする個人開発者とパワーユーザー ⏱ ~15 min beginner

使うタイミング: 同じ背景を説明するパラグラフを何度も貼り付けている場合。「スタックは X、本番 DB は Y、Z は使わない」みたいなことを毎回セッション開始時に言っている

前提条件
  • 永続的なファイルパスを使用して Memory MCP が実行されていること — 知識グラフを再起動後も保持するために、MEMORY_FILE_PATH=/Users/you/.claude/memory.json を設定します
フロー
  1. グラフにコアファクトをシードする
    以下のエンティティを作成してください。会社(Acme)、メインリポジトリ(acme-corp/api)、本番データベース(api-prod-01)。「Postgres 16 を使用」「AWS RDS us-east-1 でホストされている」「バックアップウィンドウは 03:00 UTC」などの観察結果を追加します。それらを関係で接続してください。✓ コピーしました
    → エンティティと関係が作成され、read_graph で確認できる
  2. 進行中に選好観察を追加する
    覚えておいてください。このリポジトリのコミットメッセージを書くよう依頼したとき、プレフィックスタグなしで命令形を使用してください。これを「acme-corp/api」エンティティの観察結果として保存します。✓ コピーしました
    → エンティティを再作成せずに観察結果が追加される
  3. 新しいセッションで思い出しをテストする
    api-prod-01 について何を知っていますか?✓ コピーしました
    → Claude がグラフをクエリして事実を表面化させ、一般的な答えではない

結果: 毎回のチャットでより賢くなる個人的な知識グラフ。Claude をより多く使うほど、定型文を入力する必要が減ります。

注意点
  • Claude はメモリを自動的に使用しません。確認するのを忘れます — システム/プロジェクトプロンプトに「このプロジェクトについて各タスクの開始時に常にメモリグラフを参照する」を追加します
  • グラフが雑然としている。名前がわずかに異なる重複エンティティが存在する — 命名規則を選択し(ケバブケース)、定期的に Claude に read_graph を実行させて重複を排除します
組み合わせ: filesystem · github

同僚の設定の軽量 CRM を構築する

👤 多くのステークホルダーと関わる IC とリード ⏱ ~10 min beginner

使うタイミング: Slack 好きか email 好きか、箇条書き好きか文章好きか、誰がどのプロジェクトにいるか、そういったことをいつも忘れる

フロー
  1. 最初のやり取りで人物エンティティを作成する
    人物エンティティ「jamie-chen」を作成します。観察結果:「checkout チームの PM」「doc より Loom を好む」「レビューは PT 時間の火/木の朝に実施」。✓ コピーしました
    → エンティティが open_nodes で見える
  2. 関係を使って人をプロジェクトにリンクする
    関係を追加します。jamie-chen --owns--> checkout-redesign-2026。および alex-kim --reviews--> checkout-redesign-2026。✓ コピーしました
    → グラフに関係が表示される
  3. 何かを書く前にクエリする
    checkout 再設計について Jamie への更新案を作成しようとしています。彼らのコミュニケーション設定とプロジェクトについて何を知っていますか?✓ コピーしました
    → 保存された設定を返し、ドラフトの調子を通知する

結果: 「その PM 誰だっけ?」と聞くのをやめ、非同期更新が最初の試行で正しいトーンに当たります。

注意点
  • 実際の同僚に関する機密/個人情報を保存するのは奇妙に感じられ、漏洩する可能性がある — 仕事の設定に関する観察結果のみを保存します。個人情報は保存しません。ファイルをセンシティブなものとして扱い、バックアップされるものと同期されることに注意します
組み合わせ: linear · github

多数のセッションにわたって研究の足跡を保つ

👤 研究者、ライター、数週間にわたってトピックを調査している誰でも ⏱ ~20 min intermediate

使うタイミング: 多数のセッションとソースにわたるトピック(市場調査、文献レビュー、調査)を研究している

フロー
  1. 各発見をトピックエンティティの観察結果としてキャプチャする
    「企業における MCP 採用」を研究しています。それをエンティティとして作成します。次に、この発見を観察結果として追加します:「Anthropic は Claude Code 顧客の 60% が 3 以上の MCP を使用していると報告している(出典:ブログ 2026-03-12)」。✓ コピーしました
    → トピックエンティティが引用された観察結果で段階的に成長する
  2. 関連トピックをリンクする
    エンティティ「MCP セキュリティの懸念」を作成します。「企業における MCP 採用」に関係「blocks-adoption-when-unaddressed」で関連付けます。✓ コピーしました
    → グラフがセマンティック接続を表示する
  3. いつでも統合を求める
    「企業における MCP 採用」に接続されたすべての観察結果に基づいて、引用付きの 1 ページの概要を作成してください。✓ コピーしました
    → 請求ごとのソース付き統合、作られていない

結果: 引用可能で段階的な研究アセット。コンテキストウィンドウの工夫に依存しな���。

注意点
  • ソースなしで保存された観察結果は、後でモデルの話作りと区別できない — すべての観察結果がテキストにソースを含める必要があります(「出典:X、日付:Y」)。ないものは拒否します
組み合わせ: firecrawl · exa-search · fetch

組み合わせ

他のMCPと組み合わせて10倍の力を

memory + filesystem

長文の研究ドキュメントを読み込み、事実を抽出し、後の統合のためにメモリに保存する

/research/ 下のすべての .md ファイルを読みます。各主要なクレームについて、メモリ内の関連トピックエンティティの観察結果として追加します。ファイル名をソースとして含めます。✓ コピーしました
memory + github

リポジトリ固有の規約を記憶し、将来の PR レビューが再説明なしでそれらを適用できるようにする

acme/api の最後の 10 個のマージされた PR から、トーン、長さ、タイトルの規約を抽出します。「acme/api」エンティティの観察結果として保存します。✓ コピーしました

長いリーズニングセッションが、スクラッチパッド結果をチャット全体で保持できるようにする

マイグレーション計画を作成するための sequential-thinking セッションを実行します。最後に、結論を「db-migration-q2」エンティティの観察結果として記述します。✓ コピーしました

ツール

このMCPが提供する機能

ツール入力呼び出すタイミングコスト
create_entities entities: [{name, entityType, observations[]}] 新しいエンティティを紹介する(人、プロジェクト、システム、コンセプト) 無料
create_relations relations: [{from, to, relationType}] 既存の 2 つのエンティティを型付きエッジで接続する 無料
add_observations observations: [{entityName, contents[]}] 既存エンティティに事実を追加する(最も一般的な操作) 無料
delete_entities entityNames: str[] 古いエンティティを削除する(関係も削除します) 無料
delete_observations deletions: [{entityName, observations[]}] 間違いだった特定の事実を削除する 無料
delete_relations relations: [...] エンティティを削除せずにエッジを削除する 無料
read_graph none 完全なグラフをダンプする。成長したら控えめに使用 無料
search_nodes query: str 名前/タイプ/観察結果全体でキーワードでエンティティを見つける 無料
open_nodes names: str[] 正確な名前で特定のエンティティを取得する 無料

コストと制限

運用コスト

APIクォータ
無制限。ローカル JSON
呼び出しあたりのトークン
小さい。グラフ操作はデフォルトで変更されたノードのみを返す
金額
無料
ヒント
エンティティが 50 個以上ある場合、毎ターン全体のグラフを読み込むコストを払わないようにするため、read_graph より search_nodesopen_nodes を使用してください。

セキュリティ

権限、シークレット、影響範囲

認証情報の保管: 認証情報なし。グラフファイルは MEMORY_FILE_PATH が指す場所です。
データ送信先: サーバーからはなし。観察結果は Claude が読むときコンテキストとして LLM プロバイダーに送信されます。

トラブルシューティング

よくあるエラーと対処法

メモリが再起動後も保持されない

環境変数 MEMORY_FILE_PATH/Users/you/.claude/memory.json のような絶対パスに設定します。これがないと、サーバーは一時パスを使用します。

確認: MCP クライアント設定で環境変数を確認します。再起動後、`read_graph` を呼び出して古いエンティティが戻ることを確認します
Claude は自分でメモリを参照しない

サーバーはツールを公開します。モデルはまだプロンプトが必要です。「<project> に関する質問に答える前に、関連コンテキストについて search_nodes を呼び出してください」のようなプロジェクトレベルの指示を追加します。

「Jamie」と「jamie-chen」のような重複エンティティ

命名規則を採用します(ケバブケース、またはフルネーム)。定期的に read_graph を実行し、add_observations で事実をマージした後に重複に対して delete_entities を実行します。

関係が「エンティティが見つかりません」で失敗する

両方のエンドポイントエンティティが最初に存在する必要があります。create_relations の前に create_entities で作成します。

代替案

Memory 他との比較

代替案代わりに使う場面トレードオフ
Qdrant MCP数千のノートにわたるセマンティック検索が必要で、手動でキュレートされたグラフではないQdrant の実行が必要です。ファジー回想に優れていますが、明示的な構造化事実には悪い
Notion MCP「メモリ」が実は共有チームナレッジベースネットワーク制約、遅い、API キーが必要。ただし人間も読み取り/編集できる
Neo4j MCP複雑なクエリを使って深刻な知識グラフを構築しているより重い。データベースが必要です。個人的なメモリには過剰です

その他

リソース

📖 GitHub の公式 README を読む

🐙 オープンな issue を見る

🔍 400以上のMCPサーバーとSkillsを見る