🫠

[WIP]記憶を持ったClaudeたん🤖をNeo4jで構築するのだ🛰️

に公開
1

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

  • 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を有効にします。

  1. Docker Desktopを起動
  2. Settings(歯車アイコン)Beta features を選択
  3. Enable Docker MCP Toolkit にチェックを入れる
  4. Apply & Restart をクリック

再起動後、Docker Desktopのサイドバーに**レンチアイコン(MCP Toolkit)**が表示されます。

2. Neo4j AuraDBの無料アカウントを作成

  1. Neo4j AuraDB コンソールにアクセス
  2. Sign up でアカウント作成(Googleアカウント連携も可能)
  3. New Instance をクリック
  4. AuraDB Free を選択
  5. 以下の設定を入力:
    • Instance Name: 任意の名前(例:claude-memory
    • Cloud Provider: お好みで選択(日本なら Asia Pacific (ap-northeast-1) など)
    • Region: 最寄りの地域を選択
  6. Create Instance をクリック

3. Docker MCP ToolkitでNeo4j Memoryサーバーを追加

  1. Docker DesktopでMCP Toolkit(レンチアイコン)をクリック
  2. Catalogタブを選択
  3. 検索バーで「neo4j memory」を検索
  4. Neo4j Memoryを見つけてAddをクリック

4. Neo4j Memory サーバーの設定

  1. Serversタブを選択
  2. Neo4j Memoryを見つけてConfigをクリック
  3. 以下の環境変数を設定:
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クライアントとして接続

  1. MCP ToolkitのClientsタブを選択
  2. Claude Desktopの横にあるConnectボタンをクリック

これにより、Claude DesktopのMCP設定ファイル(claude_desktop_config.json)に自動的に設定が追加されます。

6. Claude Desktopを再起動して動作確認

  1. Claude Desktopを再起動
  2. SettingsDeveloperタブを開く
  3. MCP Serversの項目にMCP_DOCKERrunningステータスで表示されることを確認

7. 記憶機能のテスト

Claude Desktopで以下のように試してみましょう:

私について記憶してください。
名前:ゆうたろう
職業:エンジニア
趣味:AI技術の研究

Claudeが記憶機能を使って情報を保存し、後でその情報を思い出せることを確認してください。


🎛️ 高度な設定

Neo4j Browserでのデータ可視化

AuraDBでは、Neo4j Browserを使って記憶されたデータをグラフとして視覚化できます:

  1. AuraDBコンソールでOpen withNeo4j Browser
  2. 以下のCypherクエリで記憶データを確認:
MATCH (n:Memory) RETURN n LIMIT 25

記憶データの管理

記憶されたエンティティや関係性は、以下のようなクエリで管理できます:

// 全ての記憶を表示
MATCH (m:Memory)-[r]-() RETURN m, r

// 特定のエンティティの削除
MATCH (m:Memory {name: "削除したいエンティティ名"}) DETACH DELETE m

⚠️ 注意事項とトラブルシューティング

接続エラーの対処法

「Connection failed」エラーが出る場合:

  1. AuraDBの接続情報(URL、Username、Password)が正しいか確認
  2. AuraDBインスタンスがRunning状態か確認
  3. Docker MCP ToolkitでNeo4j MemoryサーバーがRunning状態か確認

Claude Desktopでメモリ機能が使えない場合:

  1. Claude Desktopを完全に再起動
  2. MCP設定が正しく適用されているか Developer タブで確認
  3. 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

rascalrascal

WIPで公開して申し訳ないのですが、その分皆様の意見を取り入れつつ執筆ができればと思いますので、いつでも要望などあればコメントしてください!

また、WIPといえども現時点でも、「簡単なメモリMCPを使っているけどデータが増えすぎてハルシが増えてきた、、、」みたいな状況にある方がneo4jを使ったMCPにトライする情報は記載されているはずです。

ですので、やってみる中でつまづいた箇所があれば、こちらで質問も受け付けますので、遠慮なくコメントしてください。

よろしくお願いします✌️