mcpField
M
MCP Neo4j Server

MCP Neo4j Server

ローカル
github.com/da-okazakiデータベース6042 週間前に更新

MCP Neo4j Server について

MCP Neo4j Serverは、Neo4jグラフデータベースをClaude DesktopなどのMCPクライアントに接続し、自然言語での操作を可能にします。Neo4j Enterpriseのデータベース選択とパラメーター付きCypherクエリに対応しています。

主な機能

  1. 01Cypherクエリの実行
  2. 02プロパティ付きノードの作成
  3. 03方向を指定したリレーションの作成
  4. 04Neo4j Enterpriseデータベースの選択
  5. 05クエリ結果の構造化出力

活用シーン

  1. 01自然言語でグラフデータを検索
  2. 02グラフへのノードやリレーションの追加
  3. 03指定したNeo4j Enterpriseデータベースへの接続

MCP 対応

MCP サーバーは、Neo4jのクエリ、ノード作成、リレーション作成のツールをクライアントに公開します。クライアントはこれらのツールでグラフデータを読み書きできます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"da-okazaki_mcp-neo4j-server": {
"command": "npx",
"args": [
"-y",
"@alanse/mcp-neo4j"
]
}
}
}
起動コマンドnpx -y @alanse/mcp-neo4j

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@alanse/mcp-neo4j

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

MCP Neo4j サーバー

smithery badge

Neo4j グラフデータベースと Claude Desktop の間の統合を提供する MCP サーバーです。自然言語でのやり取りを通じてグラフデータベースの操作を可能にします。

Neo4j Server MCP server

クイックスタート

この MCP サーバーは npx を使用して直接実行できます:

npx @alanse/mcp-neo4j

または、Claude Desktop の設定に追加します:

{
  "mcpServers": {
    "neo4j": {
      "command": "npx",
      "args": ["@alanse/mcp-neo4j-server"],
      "env": {
        "NEO4J_URI": "bolt://localhost:7687",
        "NEO4J_USERNAME": "neo4j",
        "NEO4J_PASSWORD": "your-password",
        "NEO4J_DATABASE": "neo4j"
      }
    }
  }
}

機能

このサーバーは、Neo4j データベースを操作するためのツールを提供します:

Neo4j Enterprise のサポート

このサーバーは、Neo4j Enterprise Edition の特定のデータベースへの接続をサポートするようになりました。デフォルトでは「neo4j」データベースに接続しますが、NEO4J_DATABASE 環境変数を使用して別のデータベースを指定できます。

ツール
  • execute_query: Neo4j データベース上で Cypher クエリを実行します

    • すべての種類の Cypher クエリ (READ、CREATE、UPDATE、DELETE) をサポートします
    • クエリ結果を構造化された形式で返します
    • インジェクション攻撃を防ぐためにパラメータを渡すことができます
  • create_node: グラフデータベースに新しいノードを作成します

    • ノードのラベルとプロパティを指定します
    • 作成されたノードをその内部 ID とともに返します
    • プロパティにはすべての Neo4j データ型をサポートします
  • create_relationship: 2 つの既存のノード間にリレーションシップを作成します

    • リレーションシップの種類と方向を定義します
    • リレーションシップにプロパティを追加します
    • ソースノードとターゲットノードのノード ID が必要です

インストール

Smithery 経由でのインストール

Smithery 経由で Claude Desktop 用の MCP Neo4j サーバーを自動的にインストールするには:

npx -y @smithery/cli install @alanse/mcp-neo4j-server --client claude
開発用
  1. リポジトリをクローンします:
git clone https://github.com/da-okazaki/mcp-neo4j-server.git
cd mcp-neo4j-server
  1. 依存関係をインストールします:
npm install
  1. プロジェクトをビルドします:
npm run build

設定

サーバーには以下の環境変数が必要です:

  • NEO4J_URI: Neo4j データベースの URI (デフォルト: bolt://localhost:7687)
  • NEO4J_USERNAME: Neo4j のユーザー名 (デフォルト: neo4j)
  • NEO4J_PASSWORD: Neo4j のパスワード (必須)
  • NEO4J_DATABASE: Neo4j データベース名 (デフォルト: neo4j) - Neo4j Enterprise の特定のデータベースに接続するにはこれを使用します

使用例

自然言語を使用して Neo4j データベースを操作する方法の例を以下に示します:

特定のデータベースへの接続

複数のデータベースを持つ Neo4j Enterprise ユーザーの場合、接続するデータベースを指定できます:

{
  "env": {
    "NEO4J_URI": "bolt://localhost:7687",
    "NEO4J_USERNAME": "neo4j",
    "NEO4J_PASSWORD": "your-password",
    "NEO4J_DATABASE": "myCustomDatabase"
  }
}

これは、デフォルトの「neo4j」データベースではなく「myCustomDatabase」に接続します。

データのクエリ

次のような質問ができます:

  • 「Sales 部門のすべての従業員を表示して」
  • 「最も古い顧客トップ 5 を見つけて」
  • 「過去 1 か月に 3 つ以上の製品を購入したのは誰?」

例:

User: "Show me all employees in the Sales department"

Claude: Let me query the database for Sales department employees.

[Executes query internally: MATCH (e:Employee)-[:WORKS_IN]->(d:Department {name: 'Sales'}) RETURN e.name, e.position]

Result:
- John Smith (Sales Manager)
- Sarah Johnson (Sales Representative)
- Mike Brown (Account Executive)
データの作成

次のような指示を出すことができます:

  • 「John Doe という名前の 30 歳の新しい人物を追加して」
  • 「'Premium Coffee' という名前で価格 $24.99 の製品を作成して」
  • 「'Research & Development' という名前の新しい部門を追加して」

例:

User: "Add a new person named John Doe who is 30 years old"

Claude: I'll create a new Person node with the provided information.

[Creates node internally with label 'Person' and properties {name: 'John Doe', age: 30}]

Result: Created new person node with ID: 123
リレーションシップの作成

次のようなリレーションシップを要求できます:

  • 「John Doe と Jane Smith を友達にして」
  • 「製品 A を製品 B のコンポーネントとして設定して」
  • 「John Doe を Sales 部門に割り当てて」

例:

User: "Make John Doe friends with Jane Smith"

Claude: I'll create a friendship relationship between these two people.

[Creates relationship internally: MATCH (a:Person {name: 'John Doe'}), (b:Person {name: 'Jane Smith'})
CREATE (a)-[:FRIENDS_WITH {since: '2024-01-05'}]->(b)]

Result: Created friendship relationship between John Doe and Jane Smith
複雑な操作

自然言語でより複雑な操作を実行できます:

  • 「ニューヨークに住む顧客が購入したすべての製品を見つけて」
  • 「John Doe の友達の友達を表示して」
  • 「各部門の従業員の平均年齢を計算して」

例:

User: "Find all products purchased by customers who live in New York"

Claude: I'll query the database for this information.

[Executes query internally:
MATCH (c:Customer {city: 'New York'})-[:PURCHASED]->(p:Product)
RETURN c.name, collect(p.name) as products]

Result:
- Alice Wilson: [Premium Coffee, Tea Set, Cookies]
- Bob Miller: [Premium Coffee, Water Bottle]

テスト

テストスイートを実行します:

npm test

ライセンス

MIT

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。