🚀 究極のデバッグの果てに:Neo4j MCPサーバーを動かし、AIエージェントに知識グラフを統合する
はじめに
前回、私たちはWindows環境におけるMCPサーバーの「起動不能」という大きな壁に挑み、実行ファイルのフルパス指定という力技でNeo4jサーバーの起動に成功しました。
本記事は、その苦労が報われる瞬間、すなわち**「Claude Desktopが知識グラフデータベース(Neo4j)を自律的に操作し、高度な質問に答える」**という実践テストの記録です。
MCPによる機能拡張がいかに強力であるかを、具体的なテスト例と成功ログを通じて解説します。
1. 成功の証:3つの機能が連携する環境
まず、私たちが構築した環境は、以下の3つのサーバーがJSON設定で連携しています。
Neo4jサーバーの起動コマンドは、環境依存を避けるためにフルパスで固定されています。
| サーバー名 | 機能 | 役割 | 備考 |
|---|---|---|---|
| filesystem | ファイル操作 | ローカルファイルの作成・編集 | Node.jsベース |
| fetch | Webページ取得 | URLの内容を読み込み要約 | Pythonベース |
| movies-neo4j | 知識グラフ検索 | Neo4jデータベースへCypherクエリ実行 | Pythonベース(フルパスで起動) |
DXTインストールとフルパス指定の教訓(備忘録の要約)
今回の経験から得られた教訓は、環境構築の安定性です。
DXTファイルのインストール: .dxtファイルはダブルクリックで動作せず、Claude Desktop > 設定 > 拡張機能 > 詳細設定からClaude Extensionフォルダにファイルを移動した後にインストールする必要がありました。
起動コマンドの安定化: uvxやpython -mといった環境依存のコマンドを避け、"command": "C:\Users\...\mcp-neo4j-cypher.exe"のように実行ファイルのフルパスを直接指定することが、最も安定した起動を実現しました。
実行してみるが、エラー発生。
さっそくプロンプトを入力してみるも、データベースに接続できないとエラーが発生しました。
MCPサーバ”mcp-neo4j-cypher”のclaude_desktop_config.jsonファイルの環境変数が間違っていたのが原因のようです。
変更前
"env": {
"NEO4J_URI": "bolt://localhost:7687",
"NEO4J_USERNAME": "neo4j",
"NEO4J_PASSWORD": "recommendations",
"NEO4J_DATABASE": "neo4j"
変更後
"env": {
"NEO4J_URI": "bolt://localhost:7473",
"NEO4J_USERNAME": "recommendations",
"NEO4J_PASSWORD": "recommendations",
"NEO4J_DATABASE": "recommendations"
ポート番号が違っていたこと、username, password, database, すべて” recommendations”に変更して再度実行すると以下のようにMCPサーバが動きました。
2. 実践テスト:AIエージェントに知識グラフを渡す
Neo4jサーバーがRunning状態になったことで、AIエージェントは知識グラフにアクセスする新しい「ツール」を獲得しました。
テストは、まず既存のfetchサーバーを使ってNeo4jのチュートリアル情報を取得するところから始めました。
2-1. Fetchサーバーによる予備調査

MCPの強みの一つは、複数のツールを連携できることです。
まず、fetchツールを利用してNeo4jのチュートリアルURLを読み込み、どのような質問が有効かをClaudeに調べさせました。
Claudeへの指示: 「指定したURLを読み込んで、MCPサーバmcp-neo4j-cypherのチュートリアルを実行します。まず最初にMCPサーバへの指示の具体例を示してください。」
結果: ClaudeはURLの内容を要約し、以下の具体的な質問例を生成しました。
💡 Claudeが提示したNeo4jへの指示例


基本的な検索クエリ: 映画データベースでクエンティン・タランティーノが監督した映画を調べてください。
関連情報の検索: キルビルの俳優たちが出演した他の人気映画は何ですか?
スキーマ情報の取得と詳細調査: Tuskについて詳しく教えてください。
レコメンデーション: GattacaやKill Billの俳優から得られた映画リストの中で、最も高評価の映画を詳細情報付きで教えてください。
2-2. 自律動作の検証と成功ログの解析
これらの高度な質問を実行することで、AIエージェントが自律的にツールを選択し、正しいパラメータ(Cypherクエリ)を生成できるかを検証します。
最も基本的な質問である「クエンティン・タランティーノが監督した映画を調べてください」をClaudeに投げかけた際の成功ログは以下の通りです。
1. Claudeの推論とツール呼び出し(tools/call)
Claudeは質問の意図を理解し、movies-neo4jサーバーのツール(おそらくcypher_query)を呼び出すことを決定します。
その際に、質問内容をNeo4jが理解できるCypher言語に変換します。
CypherMATCH (p:Person {name: 'Quentin Tarantino'})-[:DIRECTED]->(m:Movie)
RETURN m.title, m.year, m.imdbRating
ORDER BY m.year
2. サーバーからの正常なレスポンス
Neo4jサーバーはこのCypherクエリを受け取り、データベースに実行を依頼します。
結果はJSON-RPC形式でClaude Desktopに返却されます。
[
{"m.title": "Reservoir Dogs", "m.year": 1992, "m.imdbRating": 8.4},
{"m.title": "Pulp Fiction", "m.year": 1994, "m.imdbRating": 8.9},
{"m.title": "Four Rooms", "m.year": 1995, "m.imdbRating": 6.7},
// ... 他の映画が続く
]
クエンティン・タランティーノが監督した映画を時系列順に見つけました:
- Reservoir Dogs (1992) - IMDb評価: 8.4
- Pulp Fiction (1994) - IMDb評価: 8.9
- Four Rooms (1995) - IMDb評価: 6.7
- Jackie Brown (1997) - IMDb評価: 7.5
- Kill Bill: Vol. 1 (2003) - IMDb評価: 8.1
- Kill Bill: Vol. 2 (2004) - IMDb評価: 8.0
- Sin City (2005) - IMDb評価: 8.1
- Grindhouse (2007) - IMDb評価: 7.6
- Death Proof (2007) - IMDb評価: 7.1
- Inglourious Basterds (2009) - IMDb評価: 8.3
- Django Unchained (2012) - IMDb評価: 8.5
- The Hateful Eight (2015) - IMDb評価: 8.0
最も高い評価を受けているのはPulp Fiction(1994年、8.9)で、次いでDjango Unchained(2012年、8.5)となっています。

このJSON結果をClaudeがコンテキストとして受け取り、人間が理解しやすい自然言語で回答を生成することで、一連のプロセスが完了しました。
3. 結論:MCPはAIエージェントの「脳」を拡張する
今回の検証を通じて、MCPサーバーの自作・統合が、単なるAPI連携に留まらない、AIエージェントの推論能力の拡張であることを実感しました。
環境構築という障壁は高かったものの、フルパス指定という解決策を見つけたことで、私たちは以下の能力を手に入れました。
高度な情報検索: データベース内の複雑な関係性(知識グラフ)に基づいた検索が可能。
自律的な言語変換: AIが自然言語の質問を、データベースのクエリ言語(Cypher)に自ら変換し実行する。
この成功体験は、MCPの可能性を示す大きな一歩です。今後もこの知識グラフを使いこなし、より複雑なタスクに挑戦していきたいと思います。
参考:claude_desktop_config.json 設定例
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-filesystem",
"c:\\Users\\Public\\Documents",
"c:\\Users\\Public\\Downloads"
]
},
"fetch": {
"command": "python",
"args": ["-m", "mcp_server_fetch"],
"env": {
"PYTHONIOENCODING": "utf-8"
}
},
"movies-neo4j": {
"command": "C:\\Users\\Koga Hiroaki\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\Scripts\\mcp-neo4j-cypher.exe",
"args": [ "--db-url", "neo4j+s://demo.neo4jlabs.com",
"--user", "recommendations",
"--password", "recommendations" ],
"env": {
"NEO4J_URI": "bolt://localhost:7473",
"NEO4J_USERNAME": "recommendations",
"NEO4J_PASSWORD": "recommendations",
"NEO4J_DATABASE": "recommendations"
}
}
}
}
参考URL
Discussion