ClaudeとMem0を連携する方法 — 外部の永続メモリを持たせる
Mem0のコネクタでClaudeに外部の永続メモリを持たせる手順です。11個のツールの役割、claude.aiとClaude Codeへの接続、削除系ツールを止める設定、Claude標準メモリとの違いをまとめます。
Mem0コネクタとは — Claudeに外部の記憶を足す仕組み
Mem0コネクタは、Mem0が運営するホスト型のMCPサーバーにClaudeをつなぎ、会話をまたいで残るメモリを持たせる連携です。ディレクトリ上のカテゴリは「Developer tools」で、「Anthropic verified」の表示が付いています。接続先のURLは https://mcp.mem0.ai/mcp です。
Mem0の公式ドキュメントによると、サーバーはMem0側で動き、ローカルには何も常駐しません。保存した記憶はパソコンではなくMem0のアカウントに置かれます。サインインは必須です。
コネクタページの説明では、記憶の範囲をユーザー・エージェント・セッションの単位で区切れるとされています。使い道の例として、コードベースの規約を覚えるコーディング支援、顧客の履歴を思い出すサポート、数週間かけて文脈を積む調査が挙がっています。
11個のツールと役割
Mem0のドキュメントとコネクタページは、同じ11個のツールを挙げています。役割で分けると、次の4系統です。
| 系統 | ツール | 役割 |
|---|---|---|
| 書き込み | ツールadd_memory | 役割テキストや会話履歴をユーザーまたはエージェント向けに保存 |
| 読み出し | ツールsearch_memories | 役割フィルタ付きの意味検索 |
| 読み出し | ツールget_memories | 役割構造化フィルタとページ送りで一覧 |
| 読み出し | ツールget_memory | 役割memory_id で1件取得 |
| 更新・削除 | ツールupdate_memory | 役割記憶の本文やメタデータを上書き(ID確認後) |
| 更新・削除 | ツールdelete_memory | 役割memory_id で1件削除 |
| 更新・削除 | ツールdelete_all_memories | 役割対象範囲の記憶をまとめて削除 |
| 管理 | ツールlist_entities | 役割保存されているユーザー・エージェント・アプリ・実行の一覧 |
| 管理 | ツールdelete_entities | 役割エンティティとその記憶を削除 |
| 状態確認 | ツールlist_events | 役割記憶操作のイベントを一覧 |
| 状態確認 | ツールget_event_status | 役割非同期の記憶操作を event_id で確認 |
日常で動くのは add_memory と search_memories の2つです。Mem0の説明では、いつ保存し、いつ検索し、いつ更新するかはエージェント自身が判断します。
get_event_status は、非同期の記憶操作の状態を event_id で確認するためのツールです。
前提 — 必要なアカウントと環境
用意するものは、Mem0 Platformのアカウントです。APIキーは、ブラウザーでサインインできる通常の経路なら不要です。
- Mem0 Platformのアカウント
- ブラウザー認証が使えないクライアントや、CIのような環境で使うAPIキー
npxを使う場合はNode.js 18以上- MCP対応のクライアント(Mem0の表ではClaude、Claude Code、Codex、Cursor、Windsurf、VS Code、OpenCode)
料金や無料枠の条件は、参照した一次ソースに書かれていません。Mem0のダッシュボードで確認してください。
claude.aiにMem0を接続する手順
ディレクトリから追加する手順は、他のコネクタと同じです。
- claude.aiで「Customize」→「Connectors」を開く
- 「+」からディレクトリを開き、Mem0を選ぶ
- 内容を確認して「Connect」を押す
- 表示されるサインインの画面でMem0のアカウントを認可する
接続したら、チャット左下の「+」メニューの「Connectors」から、Mem0をオンにした会話で使えます。
Team・Enterpriseプランでは、OwnerまたはPrimary Ownerが先に組織でコネクタを有効化します。有効化しただけでは誰にもアクセスは付与されず、メンバーは各自で認証します。
Claude Desktopでカスタムコネクタとして足す場合
Mem0のドキュメントは、Claude Desktopには mcp-add コマンドが使えないと明記しています。設定画面から入れる手順は次のとおりです。
- 「Settings」→「Connectors」を開く
- 「Add custom connector」を押す
- 名前(例
mem0-mcp)とURLhttps://mcp.mem0.ai/mcpを入力する - 保存し、Claude Desktopを再起動する
初回のツール利用時にブラウザーが開き、サインインを求められます。カスタムコネクタはAnthropicのクラウドから接続する仕組みです。サーバーがインターネットから届く場所にある必要がありますが、Mem0はホスト型なので問題になりません。
Claude Codeに接続する手順
Claude Codeなら、リモートHTTPサーバーの追加コマンドが使えます。
claude mcp add --transport http mem0 https://mcp.mem0.ai/mcpMem0の公式手順には、複数のクライアントへまとめて書き込む mcp-add もあります。
npx mcp-add \
--name mem0-mcp \
--type http \
--url "https://mcp.mem0.ai/mcp" \
--clients "claude code"どちらの方法でも、追加後にクライアントを再起動します。Claude Code側の認証は、セッション内で /mcp を開いて進めます。OAuthのトークンが期限切れなどで拒否された場合は、/mcp でサーバーを選んで「Re-authenticate」を押す流れです。
claude.aiにログインしたClaude Codeでは、claude.ai側で追加したコネクタが自動で使えます。/mcp の一覧に、claude.ai由来であることを示す表示が付きます。すでにclaude.aiへ接続済みなら、Claude Codeで二重に追加する必要はありません。
ブラウザー認証が使えない環境は、APIキーをBearerトークンとして送る方法もあります。書式はクライアントごとに違い、Codexなら環境変数 MEM0_API_KEY を bearer_token_env_var で渡します。キーはコミットするファイルに書かないでください。
動作確認 — 保存と検索の往復テスト
Mem0の公式ドキュメントが勧める確認は、保存を頼んだあと、別のメッセージで読み戻す方法です。
私は新規プロジェクトでJavaScriptよりTypeScriptを好みます。覚えておいてください。
(別のメッセージで)新規プロジェクトで私が好む言語は何ですか。2つ目の答えは、記憶が実際に保存されていないと返せません。確認点は2つです。
- クライアントのツール一覧に、Mem0のツールが並んでいること
- 最初のツール呼び出しで、ブラウザーのサインインが起動すること
会話の外から確かめるなら、Mem0のダッシュボードを開きます。エージェントが保存した内容がそこに出ます。
Claude標準のメモリとどう違うか
Claudeには、もともとメモリの仕組みがあります。claude.aiのメモリ機能は、会話から記憶のエントリを作り、設定画面で確認・修正・削除できます。仕組みの全体像はClaudeの記憶の仕組みにまとめています。Claude Codeには、CLAUDE.mdと自動メモリがあります。層の使い分けはClaude Code memoryの三層構造を参照してください。
Mem0コネクタは、これらとは別の外部の置き場です。違いは保存先と操作の主体にあります。
| 観点 | Claude標準のメモリ | Mem0コネクタ |
|---|---|---|
| 保存先 | Claude標準のメモリClaude(claude.ai)またはローカルのファイル(Claude Code) | Mem0コネクタMem0のクラウドのアカウント |
| 記憶の操作 | Claude標準のメモリ主に画面の設定・ファイル編集 | Mem0コネクタClaudeがツールで検索・更新・削除 |
| 範囲の切り方 | Claude標準のメモリプロジェクト単位など | Mem0コネクタユーザー・エージェント・セッション |
| 別のクライアントから読めるか | Claude標準のメモリそのアプリの範囲内 | Mem0コネクタ同じMem0アカウントにつないだクライアント |
最後の行が、外部メモリの実用上の利点です。Mem0の対応クライアント一覧にはClaudeのほかCursorやCodexも載っており、同じMem0アカウントにつなげば、道具をまたいで同じ記憶を検索できます。ただし、実際にどこまで共有されるかは、保存時にどの範囲(ユーザーやエージェント)を指定したかで変わります。
標準メモリだけで足りる場合も多いです。1つのアプリの中で好みを覚えさせたいだけなら、追加の連携は要りません。別のアプリからも同じ記憶を引きたいとき、または記憶をAPIで扱いたいときに、外部メモリの出番があります。
Claudeに記憶の使い方を教える — CLAUDE.mdの断片
Mem0では、いつ保存するかはエージェントの判断です。任せきりだと、保存の粒度がぶれます。Claude Codeでは、CLAUDE.mdに運用ルールを書いておくと、保存と検索のタイミングがそろいます。次は例として書いた断片です。
## メモリ(Mem0)の使い方
- 作業を始める前に search_memories で、このリポジトリの規約と過去の決定を検索する
- 新しい規約や、ユーザーが訂正した内容だけを add_memory で保存する
- 一時的なデバッグの経過や、秘密情報(キー・トークン)は保存しない
- update_memory と delete_memory は、対象のIDを示してから実行する
- delete_all_memories と delete_entities は、私が明示的に頼んだときだけ使うClaude Code内の自動メモリと役割が重なる場合は、どちらに書くかを1行で決めておくと二重管理を避けられます。自動メモリの保存先やオフ設定は自動メモリの保存先変更とオフ設定で扱っています。
削除系ツールは権限で止める
11個のうち、delete_memory、delete_all_memories、delete_entities は記憶を消します。delete_all_memories は、公式の説明どおり「対象範囲の記憶をまとめて削除」するツールです。消した記憶を戻す手段は、参照した一次ソースには書かれていません。取り消せない前提で扱うのが安全です。
Claude Codeの権限ルールで止める
Claude Codeでは、MCPツールを mcp__<サーバー名>__<ツール名> の形で権限ルールに書けます。サーバー名は追加時に付けた mem0 です。.claude/settings.json に次のように書くと、この2つのツールはClaudeのコンテキストから外れ、呼ばれなくなります。
{
"permissions": {
"deny": [
"mcp__mem0__delete_all_memories",
"mcp__mem0__delete_entities"
]
}
}ツール名に括弧でパラメーターを付けたMCPルールは、設定ファイルの読み込み時に読み飛ばされます。名前だけで書いてください。claude.ai経由のコネクタをClaude Codeが自前で取得した場合は、ツール名が mcp__claude_ai_<サーバー名>__<ツール名> の形になります。その場合は、/mcp で実際の名前を確認してから書き写します。
すべてを禁止せず、毎回の確認だけ挟む方法もあります。deny の代わりに ask に同じ名前を入れれば、実行のたびに許可を求められます。
claude.aiではツール権限で絞る
claude.ai側では、コネクタごとにツールの権限を「Always allow」「Needs approval」「Blocked」から選べます。ツールは読み取り系と書き込み・削除系に分類されて表示されます。削除系を「Blocked」か「Needs approval」にしておけば、Claudeが自分の判断で消すことはありません。
Team・Enterpriseプランでは、Ownerが組織全体でアクションを制限できます。個々のユーザーはこれを上書きできません。
つまずきやすい点
Mem0のドキュメントにあるトラブルシューティングは、次の5つです。
| 症状 | 意味 | 対処 |
|---|---|---|
401 や「Authentication required」 | 意味接続はできたがサインインしていない | 対処ブラウザー認証を完了する。またはAPIキーをBearerトークンで渡す |
| 「Connection refused」「failed to connect」 | 意味サーバーに届いていない | 対処通信環境を確認し、URLが https://mcp.mem0.ai/mcp と一字一句同じか見る |
| Mem0のツールが見えない | 意味設定は書けたがクライアントが再読み込みしていない | 対処クライアントを再起動する。それでも出ないなら、mcp-add が書いた設定ファイルをクライアントが読んでいるか確認する |
npx: command not found | 意味Node.jsが未導入 | 対処Node.jsをインストールする |
| 「Invalid API key」 | 意味キーが誤り、失効、または別アカウントのもの | 対処ダッシュボードで新しいキーを取る |
Codexだけは、サーバー名が mem0 です。ほかのクライアントの例は mem0-mcp で、権限ルールに書く名前もこの名前に合わせます。上の権限ルールの例は、claude mcp add で mem0 と付けた場合の書き方です。mcp-add で mem0-mcp と付けた場合は、mcp__mem0-mcp__delete_all_memories になります。
使うときの注意 — コネクタ全般のリスク
コネクタページには、開発者を信頼できるものだけ使うようにという注意が書かれています。Anthropicは、開発者が公開するツールの中身を管理しておらず、想定どおり動く保証も変わらないことの保証もできない、という趣旨です。
外部のクラウドに置く記憶には、次の点が伴います。
- 保存内容はMem0のアカウントに残る。個人情報や資格情報は保存させない
- 記憶はClaudeが検索して会話に取り込む。誤った記憶が残ると、以後の応答に影響する
- 接続を外したいときは、claude.aiの「Customize」→「Connectors」から切断できる
まとめ
Mem0コネクタは、ホスト型のMCPサーバーでClaudeに外部の永続メモリを足す連携です。日常の中心は add_memory と search_memories で、更新・削除・管理・状態確認を含めて全部で11個のツールが使えます。claude.aiは「Customize」→「Connectors」から、Claude Codeは claude mcp add --transport http mem0 https://mcp.mem0.ai/mcp で接続します。
標準メモリと違うのは、保存先がMem0のアカウントで、クライアントをまたいで同じ記憶を引ける点です。1つのアプリの中だけで足りるなら、標準のメモリで済みます。
つないだあとは、CLAUDE.mdで保存と検索の基準を決め、delete_all_memories と delete_entities は権限で止めておく構成が扱いやすいです。claude.aiの一般的な使い方はClaudeの会話検索とメモリ、他のAIからの移行はClaude import memoryで扱っています。