1. 主要ページへ移動
  2. メニューへ移動
  3. ページ下へ移動

QES ブログ

記事公開日

MCPでグラフデータベースと対話!Neo4j AuraDB Freeを試してみた

  • このエントリーをはてなブックマークに追加

こんにちは!DXソリューション営業本部の大和矢です。

今回は、グラフデータベース「Neo4j AuraDB Free」を活用し、Neo4jが提供するMCPサーバ「mcp-neo4j」、そしてGitHub Copilot Agent を組み合わせることで、AIとの対話を通じてグラフデータベースから情報を引き出す方法を探ってみた体験をご紹介します。

「MCPって何?」と疑問に思う方は、以下のブログで紹介しておりますので、是非ご覧ください。

使用環境

今回使用したツールは以下の通りです。

役割 ツール名  概要
グラフデータベースサービス Neo4j AuraDB Free 無料で手軽に始められ、グラフ形式でデータを管理・分析する基盤
MCPサーバ mcp-neo4j-cypher@0.2.3 GitHub Copilot Agent からの自然言語の問い合わせをCypherクエリ(Neo4jで使用されるクエリ言語)に変換する橋渡し役
MCPホスト GitHub Copilot Agent mcp-neo4jを介して、自然言語でグラフDBに質問し、回答を得るためのホスト

グラフデータベースとの対話準備

それでは、グラフDBと対話するための準備をしていきましょう。
Neo4j AuraDB Freeで作成したグラフデータベースに、GitHub Copilot Agentを接続していきます。
詳細なセットアップ手順は割愛しますが、大まかな流れとしては、MCPサーバを設定し、それをGitHub Copilot Agentから利用できるようにします。

グラフデータベースの構成

今回使用するグラフデータベースは、映画、人物(監督・俳優)、ジャンルの関連を表しています。
Neo4j AuraDB Free上に、以下のように構成しました。

このデータは、映画、人物(監督・俳優)、ジャンルがどのように関連しているかを示しています。
例えば、「クリストファー・ノーラン」は「インセプション」を監督し、レオナルド・ディカプリオも「インセプション」に出演、「インセプション」は「SF」ジャンルであるといった関係性が表現されています。

このように、多様な種類のエンティティ(映画、人物、ジャンル)とそれらの間の複雑な関連性を、グラフデータベースで表現することで、特定の俳優が出演している映画を検索したり、特定のジャンルの映画を見つけたり、監督の作品群を横断的に分析したりといった、多角的な分析が可能になります。

VS Codeでの接続設定

グラフデータベースへの接続設定は、Visual Studio Codeの.vscodeフォルダ下mcp.jsonファイルで設定しました。
このファイルには、MCPサーバのURLやグラフデータベースへの接続情報などを記述します。
mcp-neo4j-cypherのPyPIページや関連ドキュメントを参考に、以下のような接続設定を記述しました。

設定するNeo4j AuraDBのURIやパスワードは、データベースインスタンス作成時に一意に割り当てられ、作成時にファイルとしてダウンロード可能です。

MCPサーバーの接続の設定が完了したら、「起動」ボタンを押下すると、MCPサーバーを起動することができます。
MCPサーバーを起動した後、GitHub Copilot Agentから呼び出すことができます。

ホストからグラフデータベースを呼び出してみよう

準備が整ったので、いよいよGitHub Copilot Agentとの対話を通じて、グラフデータベースから情報を引き出してみましょう。
mcp.jsonファイルから、MCPサーバーを起動すると、以下の表示になります。

MCPサーバーを起動した状態で、GitHub Copilot Agentに対して自然言語を質問を投げてみます。
GitHub Copilot Agentを利用するには、チャット画面のプロンプトを入力するエリアで、下記画像の赤枠部分にある「Agent」を選択します。

GitHub Copilot Agentをホストとして利用する場合、最初に直接質問すると、適切なCypherクエリを生成できずエラーになることが多いです。
これは、Agentがグラフデータベースのスキーマ(ノードやエッジの種類、プロパティなど)を事前に把握していないためです。
例えば、Claude Desktopのような一部のエージェントは、質問前に自律的にスキーマを確認し回答を生成できます。
しかし、GitHub Copilot Agentの場合、少なくとも現段階では、ユーザーが明示的にスキーマ情報を与えることで、その性能を最大限に引き出せます。
そのため、効果的に質問を行うために、私は最初にグラフデータベースのスキーマをAgentに伝えるようにしています。
このアクションは、AIがより正確なクエリを生成するために非常に有効です。

グラフデータベースのスキーマについて確認するように、質問を投げかけたところ、「get_neo4j_shema」を実行するかの同意ボタンが表示されました。
これは、MCPツールを呼び出すことに同意するかを確認するボタンであり、「続行」ボタンを押下するとMCPツールが呼び出されます。
実際に「続行」ボタンを押下すると、以下のようにグラフデータベースのスキーマが返ってきました。

これにて、GitHub Copilot Agentはグラフデータベースのスキーマを認識しました。
改めて準備が整ったので、グラフデータベースについて質問してみます。
「クリストファー・ノーランが監督した映画と、その映画の情報」について質問したところ、GitHub Copilot Agentはmcp-neo4jを通じて、以下のようなCypherクエリを生成し、Neo4j AuraDB Freeに実行しました。

上記画像から分かるように、Cypherクエリは適切に機能し、GitHub Copilot Agentはグラフデータベースからデータを取得することに成功しています。

今回は簡単なサンプルグラフデータベースを用意しましたが、データ量も豊富にあり、洗練されたグラフデータベースとMCP接続をすると、より情報量の多い回答が返ってくると思います。

まとめ

今回の体験を通じて、GitHub Copilot Agent(MCPホスト)とmcp-neo4j(MCPサーバー)を組み合わせることで、グラフデータベースの活用が格段に身近になることを実感いただけたのではないでしょうか。
この組み合わせの最大の利点は、専門的なCypherクエリの知識がなくても、自然言語で直接データベースに質問できる点にあります。
これにより、以下のようなグラフデータベースならではの強みを、より手軽に引き出せるようになります。

  • 横のつながりを簡単に抽出:
    俳優と出演映画のように、データの「横のつながり」を直感的に質問し、素早く可視化できます。
  • 間接的な関係の確認:
    複数ステップを介したリレーションの奥深くに隠れた「間接的なつながり」も、複雑なクエリを書くことなく簡単に探索・分析できます。

AIとの対話によって複雑なデータも直感的に探索・分析できるこのアプローチは、今後のデータ活用における強力な一手となるはずです。
MCPやグラフデータベースの検証は引き続き進めていきますので、今後も検証ブログをお届けできるかもしれません。
どうぞご期待ください。


QUICK E-Solutionsでは、GitHub EnterpriseおよびGitHub Copilot Businessの販売を行っております。
ご興味がありましたら、ぜひお気軽にお問い合わせください。
ご連絡をお待ちしております。


また、AIサービスを利用したシステム導入のお手伝いをしております。
それ以外でも様々なアプリケーションの開発・導入を行っております。
提供するサービス・ソリューションにつきましては こちら に掲載しております。
システム開発・構築でお困りの問題や弊社が提供するサービス・ソリューションにご興味を抱かれましたら、是非一度 お問い合わせ ください。

※このブログで参照されている、Microsoft、Visual Studio Codeその他のマイクロソフト製品およびサービスは、米国およびその他の国におけるマイクロソフトの商標または登録商標です。
※その他の会社名、製品名は各社の登録商標または商標です。
  • このエントリーをはてなブックマークに追加

お問い合わせ

Contact

ご質問やご相談、サービスに関する詳細など、何でもお気軽にご連絡ください。下記のお問い合わせフォームよりお気軽に送信ください。

お問い合わせ

資料ダウンロード

Download

当社のサービスに関する詳細情報を掲載した資料を、下記のページよりダウンロードいただけます。より深く理解していただける内容となっております。ぜひご活用ください。

資料ダウンロード