
Claude × Neo4j MCP入門|ナレッジグラフを自然言語で問い合わせ
グラフデータベース「Neo4j」と Claude を MCP (Model Context Protocol) で繋ぐと、Cypher クエリを書かなくても自然言語だけでデータを照会・追加できるようになる。Neo4j 公式ブログでもこの組み合わせを「ノーコードなナレッジグラフ構築アプローチ」として紹介している(参照: neo4j.com/blog/developer/knowledge-graphs-claude-neo4j-mcp/)。本記事では環境構築から実際の操作例まで順を追って解説する。
目次 (9)
Claude と Neo4j を組み合わせる背景
従来、Neo4j のデータにアクセスするには Cypher という専用クエリ言語を習得する必要があった。たとえば「特定の人物からたどれる友人の友人を全員リストアップする」という操作も、MATCH パターンを正確に記述しなければならない。
Claude との連携によってこの壁は大きく下がる。「山田さんと 2 度以内でつながる人を全員教えて」と日本語で入力するだけで、Claude が適切な Cypher を生成して Neo4j に投げ、結果を自然文で返してくれる。データサイエンティスト以外のビジネスユーザーも、グラフ分析の恩恵を受けやすくなるのが最大のメリットだ。
MCP (Model Context Protocol) とは
MCP は Anthropic が策定したオープンな接続規格で、Claude に外部ツールやデータソースへのアクセスを与えるしくみだ。サーバー・クライアント型で、ツール提供側は「MCP サーバー」を立ち上げ、Claude 側の「MCP クライアント」がそれを呼び出す。
Neo4j の場合、公式が提供する MCP サーバーパッケージを起動しておくと、Claude Desktop が自動的にデータベース接続ツールを認識する。接続後は Claude が次のような操作を自律的に実行できる。
- グラフ内のノード・リレーションシップの検索
- 新しいノードや関係の追加
- 既存データの更新・削除
- スキーマ情報の取得
Neo4j MCP サーバーのセットアップ
前提として、Node.js(v18 以上)と npm が導入済みであること、および Neo4j Desktop または Neo4j AuraDB のインスタンスが起動していることが必要だ。
- ターミナルを開き、
npm install -g @neo4j/mcp-serverを実行してサーバーパッケージをインストールする。 - Neo4j の接続情報(URL・ユーザー名・パスワード)を用意する。デフォルトは
bolt://localhost:7687/neo4j/ 設定したパスワード。 NEO4J_URI・NEO4J_USER・NEO4J_PASSWORDの 3 つの環境変数を設定する。neo4j-mcp-serverコマンドでサーバーを起動し、MCP server listening on port 3000のようなメッセージが出れば成功だ。
サーバーが起動している間、Claude Desktop はこの MCP エンドポイントを通じてデータベースに読み書きできる。
Claude Desktop と Neo4j を接続する
Claude Desktop の設定ファイル(macOS の場合 ~/Library/Application Support/Claude/claude_desktop_config.json)を開き、mcpServers セクションに以下を追記する。
{
"mcpServers": {
"neo4j": {
"command": "neo4j-mcp-server",
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USER": "neo4j",
"NEO4J_PASSWORD": "your-password"
}
}
}
}
設定を保存して Claude Desktop を再起動すると、チャット入力欄の付近に Neo4j ツールが利用可能になったことを示すアイコンが表示される。表示されない場合は、設定ファイルの JSON 構文エラーや MCP サーバーの起動状況を確認しよう。
自然言語から Cypher クエリを自動生成する
接続が完了したら、実際に日本語で問い合わせてみよう。たとえば映画・俳優・監督のリレーションシップが入ったサンプルデータベース(Neo4j に標準添付の movies グラフ)を使った場合、次のような会話ができる。
入力例 1: 「トム・ハンクスが出演した映画を全部教えて」
Claude は内部で MATCH (p:Person {name:'Tom Hanks'})-[:ACTED_IN]->(m:Movie) RETURN m.title という Cypher を生成し、結果を日本語で返す。
入力例 2: 「2000 年以降に公開されたアクション映画の監督を一覧にして」
より複雑なフィルタリングが必要な場合も、Claude がスキーマ情報を参照しながら適切なクエリを組み立てる。クエリの中身は「どんな Cypher を実行しましたか?」と聞けば表示してもらえるので、学習用途にも使いやすい。
Thomas Rehmer 氏が Medium に公開した解説記事(参照: medium.com/@thomasrehmer/claude-neo4j-with-mcp...)でも、この自然言語インターフェース化が「グラフ DB の民主化」につながると指摘している。
ナレッジグラフ構築の実践例
MCP 経由では読み取りだけでなく書き込みも可能だ。「プロジェクト管理ナレッジグラフ」を例に、データ投入の流れを示す。
- Claude に「プロジェクトA と担当者の山田太郎さんのノードを作って、"担当" の関係で繋いで」と指示する。
- Claude が
CREATEステートメントを生成し、Neo4j に書き込む。 - 続けて「山田さんが利用するツールとして GitHub と Slack を追加して」と追加入力する。
- Claude がノードを追加し、リレーションシップを張る Cypher を生成・実行する。
- 最後に「このプロジェクトに関わる全要素を図示できる形で一覧して」と問うと、ノードと関係の全体像をテキストで整理してくれる。
会話形式でグラフを育てていけるため、ドメイン知識が豊富なビジネス担当者が直接ナレッジグラフの構築に参加できるのが大きな利点だ。
活用シナリオ
この組み合わせが特に力を発揮するユースケースをまとめる。
社内 FAQ・ドキュメント検索: 人・部署・文書・キーワードをノードとして格納し、「○○案件に詳しい人は誰か」を関係グラフから自然言語で探す。
サプライチェーン分析: 仕入れ先・製品・物流ルートをグラフ化し、「○○部品が使われている製品系統を全て洗い出して」と問える。
不正検知プロトタイプ: 取引・アカウント・IP アドレスの関係をグラフ化し、異常なつながりのパターンを自然言語で調査する。
コードベース依存関係の可視化: ファイル・関数・ライブラリの依存グラフを Neo4j に入れ、「この関数を変更したときに影響するモジュールを全部教えて」と聞く。
導入時の注意点
権限管理: MCP サーバーに渡す認証情報は書き込み権限を持つことが多い。本番 DB への接続は read-only ユーザーを作成し、書き込みが必要な操作は別のユーザー設定で行うことを強く推奨する。
トークン消費量: 大規模グラフで全件取得するような問いかけをすると、クエリ結果が大量のテキストになり Claude のコンテキストを圧迫する。LIMIT 句を含む問いかけをするよう Claude に指示するか、あらかじめシステムプロンプトに制限を組み込んでおくとよい。
スキーマの事前共有: Claude がより正確な Cypher を生成するには、グラフのノードラベル・プロパティ・リレーションシップタイプを事前に教えておくと効果的だ。CALL db.schema.visualization() の結果をセッション冒頭に与えるアプローチが定番となっている。
バージョン互換性: Neo4j MCP サーバーは現時点でアクティブに開発中のため、パッケージのバージョン差異によって動作が変わることがある。公式リポジトリ(github.com/neo4j-labs/mcp-neo4j)のリリースノートを確認してから導入することを勧める。
まとめ
Claude と Neo4j を MCP で繋ぐことで、Cypher の習得なしにグラフデータベースを操れる環境が整う。設定は JSON ファイルへの数行追記と MCP サーバー起動だけで完了し、導入のハードルは低い。ナレッジグラフの構築・照会・更新をすべて自然言語で行えるようになるため、データエンジニア以外のメンバーがグラフ分析に参加しやすくなるのが最大の価値だ。まずはサンプルの movies グラフで動作を確認し、自社ドメインへの応用を検討してみてほしい。