[WIP]記憶を持ったClaudeたん🤖をNeo4jで構築するのだ🛰️
Neo4j Memory MCPを使ってClaudeに記憶を持たせる完全ガイド
できること
- Claude単体では記憶(コンテクスト)を保持できない...
- 今回はneo4jというグラフDBを使ってClaudeたんを僕色に染めちゃうのだ😻
タチコマ。コンテキストを保持できるということは、AIのキャラクターも(特にneo4jを使ったらとても細かく)設定できるのだ🐈
json形式のmemory使えばよくね?
Knowledge Graph Memory Serverという、MCPが大々的に広がり始めたとき、初期Exampleとして多く配布された記憶MCPサーバーがあります。
グラフDBをjsonで簡易的に模した(RDBにおけるSQLiteみたいな)ものなので、記憶量が増えると辛いのと、neo4jを使えば記憶の可視化や編集が楽なこともあるので、少し手間ですが、今回はneo4jを採用しています🙏
使うもの
-
Claudeデスクトップ
- 最近Winでも使えるようになった🎉
-
Dockerデスクトップ
- neo4j: 連想形式の記憶を得意とするグラフDB
- mcp-neo4j-memory: neo4jを使った記憶機能を提供するMCPサーバー
- Neo4j AuraDB: マネージドNeo4jサービス(無料プランあり)
用語説明
Claude
- Anthropic社が開発した、ChatGPTやGeminiと並ぶ主要な大規模言語モデル(LLM)。その大きな特徴は、他の主要な対話型AIに先駆けて、デスクトップやWebのアプリケーションでModel Context Protocol (MCP) に広く対応している点にある。これにより、会話履歴などの「文脈(コンテキスト)」を外部で柔軟に管理でき、独自のツールと連携させるなど、ユーザーの目的に合わせた高度なカスタマイズが可能になっている。
Docker
- アプリケーションを「コンテナ」という独立した環境にパッケージングするためのプラットフォーム。「自分のPCでは動いたのに、他の環境では動かない」といった問題を解決する。アプリケーション本体と、それが動くために必要なプログラムや設定を一つの箱に詰める「引越しセット」のようなもの。
グラフDB (グラフデータベース)
- データとデータの「つながり(関係性)」を効率的に管理・分析することに特化したデータベース。「ノード(点)」と「エッジ(線)」でデータを管理し、SNSの友人関係や商品のレコメンドなど、複雑な関係性をたどる検索が非常に高速。
MCP (Model Context Protocol)
- AIモデル(特にLLM)が応答を生成するために必要な 文脈(コンテキスト) を、外部で管理・アクセスするためのオープンな通信規約(プロトコル)のこと。長い会話履歴や専門文書などをコンテキストとして外部サーバーに保存し、AIが必要な時に参照できるようにする仕組み。
- MCPサーバー: Model Context Protocol に基づいて、AIのコンテキスト情報を保存・管理するサーバー。クライアントからの要求に応じて、必要な文脈データを提供する。
- MCPクライアント: MCPサーバーに接続し、コンテキストの保存や取得を要求するアプリケーションやツール。今回はClaudeデスクトップがこれにあたる。
Neo4j AuraDB
- Neo4j社が提供するクラウド型のマネージドNeo4jサービス。無料プランでは200,000ノード、400,000リレーションシップまで利用可能。データベースの管理やバックアップを自動化してくれるため、開発者はアプリケーションの開発に集中できる。
上記説明文の原案生成: Gemini 2.5 Pro「技術用語の説明作成依頼」
セットアップ手順
1. Docker Desktop MCP Toolkitを有効にする
まず、Docker DesktopでMCP Toolkitを有効にします。
- Docker Desktopを起動
- Settings(歯車アイコン) → Beta features を選択
- Enable Docker MCP Toolkit にチェックを入れる
- Apply & Restart をクリック
再起動後、Docker Desktopのサイドバーに**レンチアイコン(MCP Toolkit)**が表示されます。
2. Neo4j AuraDBの無料アカウントを作成
- Neo4j AuraDB コンソールにアクセス
- Sign up でアカウント作成(Googleアカウント連携も可能)
- New Instance をクリック
- AuraDB Free を選択
- 以下の設定を入力:
-
Instance Name: 任意の名前(例:
claude-memory
) - Cloud Provider: お好みで選択(日本なら Asia Pacific (ap-northeast-1) など)
- Region: 最寄りの地域を選択
-
Instance Name: 任意の名前(例:
- Create Instance をクリック
3. Docker MCP ToolkitでNeo4j Memoryサーバーを追加
- Docker DesktopでMCP Toolkit(レンチアイコン)をクリック
- Catalogタブを選択
- 検索バーで「neo4j memory」を検索
- Neo4j Memoryを見つけてAddをクリック
4. Neo4j Memory サーバーの設定
- Serversタブを選択
- Neo4j Memoryを見つけてConfigをクリック
- 以下の環境変数を設定:
NEO4J_URL=neo4j+s://YOUR_INSTANCE_ID.databases.neo4j.io
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=YOUR_GENERATED_PASSWORD
AuraDBの接続情報の確認方法
AuraDBコンソールでインスタンスを選択すると、Connection URIが表示されます。
- URI例:
neo4j+s://12345678.databases.neo4j.io
- Username:通常は
neo4j
- Password:インスタンス作成時に生成されたパスワード
5. Claude DesktopをMCPクライアントとして接続
- MCP ToolkitのClientsタブを選択
- Claude Desktopの横にあるConnectボタンをクリック
これにより、Claude DesktopのMCP設定ファイル(claude_desktop_config.json
)に自動的に設定が追加されます。
6. Claude Desktopを再起動して動作確認
- Claude Desktopを再起動
- Settings → Developerタブを開く
- MCP Serversの項目にMCP_DOCKERがrunningステータスで表示されることを確認
7. 記憶機能のテスト
Claude Desktopで以下のように試してみましょう:
私について記憶してください。
名前:ゆうたろう
職業:エンジニア
趣味:AI技術の研究
Claudeが記憶機能を使って情報を保存し、後でその情報を思い出せることを確認してください。
🎛️ 高度な設定
Neo4j Browserでのデータ可視化
AuraDBでは、Neo4j Browserを使って記憶されたデータをグラフとして視覚化できます:
- AuraDBコンソールでOpen with → Neo4j Browser
- 以下のCypherクエリで記憶データを確認:
MATCH (n:Memory) RETURN n LIMIT 25
記憶データの管理
記憶されたエンティティや関係性は、以下のようなクエリで管理できます:
// 全ての記憶を表示
MATCH (m:Memory)-[r]-() RETURN m, r
// 特定のエンティティの削除
MATCH (m:Memory {name: "削除したいエンティティ名"}) DETACH DELETE m
⚠️ 注意事項とトラブルシューティング
接続エラーの対処法
「Connection failed」エラーが出る場合:
- AuraDBの接続情報(URL、Username、Password)が正しいか確認
- AuraDBインスタンスがRunning状態か確認
- Docker MCP ToolkitでNeo4j MemoryサーバーがRunning状態か確認
Claude Desktopでメモリ機能が使えない場合:
- Claude Desktopを完全に再起動
- MCP設定が正しく適用されているか Developer タブで確認
- Docker Desktopが起動していることを確認
セキュリティ上の注意
- AuraDBの認証情報は安全に管理してください
- 無料プランでは3日間アクティビティがないとインスタンスが一時停止されます
- 30日間一時停止されたままの場合、データが削除される可能性があります
📊 活用例
パーソナルナレッジベースとして
今日学んだこと:
- React Serverコンポーネントの使い方
- Zodライブラリでのバリデーション
- Next.js App Routerの新機能
これらを関連付けて記憶してください。
プロジェクト管理として
プロジェクト「ECサイト開発」について:
- 技術スタック:Next.js, Prisma, PostgreSQL
- チームメンバー:田中さん(デザイナー)、佐藤さん(バックエンド)
- 締切:2025年8月末
これらの関係性も含めて記憶してください。
🔮 今後の展開予定
-
ベクターストア/ElasticSearchとの併用
- セマンティック検索との組み合わせ
- より高度な知識検索機能
-
Neo4j Browserでの記憶/コンテキストマネジメント
- グラフィカルな記憶編集
- 関係性の可視化と分析
-
他のAI開発ツールとの連携
- n8n(ワークフロー自動化)
- Dify(AIアプリケーション開発)
- Unity(ゲーム開発)
- LangChain(LLMアプリケーション開発)
まとめ
このガイドを通じて、ClaudeにNeo4jベースの永続的な記憶機能を追加できました。これにより:
✅ 会話を跨いだ文脈保持が可能に
✅ 関係性を理解した記憶でより自然な対話
✅ データの可視化で記憶内容を直感的に把握
✅ カスタマイズ可能で用途に応じた最適化
Claudeがあなたのパーソナルアシスタントとして、より価値のある存在になることを期待しています!
執筆メモ
今後検討中の連携ツール:
- n8n
- Dify
- Unity
- LangChain
Discussion
WIPで公開して申し訳ないのですが、その分皆様の意見を取り入れつつ執筆ができればと思いますので、いつでも要望などあればコメントしてください!
また、WIPといえども現時点でも、「簡単なメモリMCPを使っているけどデータが増えすぎてハルシが増えてきた、、、」みたいな状況にある方がneo4jを使ったMCPにトライする情報は記載されているはずです。
ですので、やってみる中でつまづいた箇所があれば、こちらで質問も受け付けますので、遠慮なくコメントしてください。
よろしくお願いします✌️