mcpField
M
mcp-neo4j-aura-manager

mcp-neo4j-aura-manager

ローカル
github.com/neo4j-contribデータベース9897 週間前に更新

mcp-neo4j-aura-manager について

Aura API を通じて Neo4j Aura データベースインスタンスを管理する MCP サーバーです。AI アシスタントから直接、インスタンスとテナントの作成、監視、保守を行えます。

主な機能

  1. 01インスタンスの一覧取得、詳細確認、名前による検索
  2. 02データベースインスタンスの作成、名前変更、削除
  3. 03メモリとベクトル最適化設定の変更
  4. 04インスタンスの一時停止と再開
  5. 05ネームスペースと複数のトランスポート方式への対応

活用シーン

  1. 01AI アシスタントからのグラフデータベースインスタンスのプロビジョニング
  2. 02未使用のインスタンスの一時停止と必要時の再開
  3. 03マルチテナント環境でのプロジェクトごとのツール名の分離

MCP 対応

本サーバーはAura インスタンスとテナントの管理操作を、stdio または HTTP トランスポート経由で MCP クライアントにツールとして公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"neo4j-contrib-mcp-neo4j-aura-manager": {
"command": "uvx",
"args": [
"mcp-neo4j-aura-manager"
],
"env": {
"NEO4J_AURA_CLIENT_ID": "<NEO4J_AURA_CLIENT_ID>",
"NEO4J_AURA_CLIENT_SECRET": "<NEO4J_AURA_CLIENT_SECRET>",
"NEO4J_NAMESPACE": "<NEO4J_NAMESPACE>"
}
}
}
}
起動コマンドuvx mcp-neo4j-aura-manager
設定が必要な環境変数
NEO4J_AURA_CLIENT_IDシークレットNeo4j Aura API Client ID
NEO4J_AURA_CLIENT_SECRETシークレットNeo4j Aura API Client Secret
NEO4J_NAMESPACENamespace for tools

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

パッケージ
pypimcp-neo4j-aura-manager0.4.5

ツール

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

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

詳細

🚀💖☁️ Neo4j Aura Database Manager MCP Server

mcp-name: io.github.neo4j-contrib/mcp-neo4j-aura-manager

🌟 概要

Neo4j Aura API を通じて Neo4j Aura データベースインスタンスを管理するツールを提供する、Model Context Protocol(MCP)サーバーの実装です。

このサーバーを使うと、Claude を通じて Neo4j Aura インスタンスを直接作成、監視、管理できます。グラフデータベースインフラストラクチャのプロビジョニングとメンテナンスを簡単に行えます。

🔑 認証

Neo4j Aura API の認証には、次の情報が必要です。

  • クライアント ID
  • クライアントシークレット

これらの認証情報は Neo4j Aura コンソールから取得できます。詳しくは、Aura API のドキュメントをご覧ください。

API 仕様はこちらです。

📦 コンポーネント

🔧 ツール

サーバーでは、次の主要なツールを利用できます。

🛠️ インスタンス管理
  • list_instances

    • すべての Neo4j Aura データベースインスタンスを一覧表示します
    • 入力は不要です
    • 戻り値:すべてのインスタンスとその詳細の一覧
  • get_instance_details

    • ID を指定して、1 つまたは複数のインスタンスの詳細を取得します
    • 入力:
      • instance_ids(文字列または配列):取得するインスタンスの ID、またはインスタンス ID の配列
    • 戻り値:インスタンスの詳細情報
  • get_instance_by_name

    • 名前でインスタンスを検索します
    • 入力:
      • name(文字列):検索するインスタンスの名前
    • 戻り値:見つかった場合はインスタンスの詳細情報
  • create_instance

    • 新しい Neo4j Aura データベースインスタンスを作成します
    • 入力:
      • tenant_id(文字列):インスタンスを作成するテナント/プロジェクトの ID
      • name(文字列):新しいインスタンスの名前
      • memory(整数):メモリ割り当て量(GB)
      • region(文字列):インスタンスのリージョン(例:'us-east-1')
      • version(文字列):Neo4j のバージョン(例:'5.15')
      • type(文字列、任意):インスタンスタイプ(enterprise または professional)
      • vector_optimized(ブール値、任意):インスタンスをベクトル操作向けに最適化するかどうか
    • 戻り値:作成されたインスタンスの詳細情報
  • update_instance_name

    • インスタンスの名前を更新します
    • 入力:
      • instance_id(文字列):更新するインスタンスの ID
      • name(文字列):インスタンスの新しい名前
    • 戻り値:更新されたインスタンスの詳細情報
  • update_instance_memory

    • インスタンスのメモリ割り当て量を更新します
    • 入力:
      • instance_id(文字列):更新するインスタンスの ID
      • memory(整数):新しいメモリ割り当て量(GB)
    • 戻り値:更新されたインスタンスの詳細情報
  • update_instance_vector_optimization

    • インスタンスのベクトル最適化設定を更新します
    • 入力:
      • instance_id(文字列):更新するインスタンスの ID
      • vector_optimized(ブール値):インスタンスをベクトル操作向けに最適化するかどうか
    • 戻り値:更新されたインスタンスの詳細情報
  • pause_instance

    • データベースインスタンスを一時停止します
    • 入力:
      • instance_id(文字列):一時停止するインスタンスの ID
    • 戻り値:インスタンスのステータス情報
  • resume_instance

    • 一時停止中のデータベースインスタンスを再開します
    • 入力:
      • instance_id(文字列):再開するインスタンスの ID
    • 戻り値:インスタンスのステータス情報
  • delete_instance

    • データベースインスタンスを削除します
    • 入力:
      • tenant_id(文字列):インスタンスが存在するテナント/プロジェクトの ID
      • instance_id(文字列):削除するインスタンスの ID
    • 戻り値:削除ステータス情報
🏢 テナント/プロジェクト管理
  • list_tenants

    • すべての Neo4j Aura テナント/プロジェクトを一覧表示します
    • 入力は不要です
    • 戻り値:すべてのテナントとその詳細の一覧
  • get_tenant_details

    • 指定したテナント/プロジェクトの詳細を取得します
    • 入力:
      • tenant_id(文字列):取得するテナント/プロジェクトの ID
    • 戻り値:テナント/プロジェクトの詳細情報

🔧 Claude Desktop での使用

💾 インストール
pip install mcp-neo4j-aura-manager
⚙️ 設定

サーバーを claude_desktop_config.json に追加します。

"mcpServers": {
  "neo4j-aura": {
    "command": "uvx",
    "args": [
      "[email protected]",
      "--client-id",
      "<your-client-id>",
      "--client-secret",
      "<your-client-secret>"
      ]
  }
}

または、環境変数を設定できます。

"mcpServers": {
  "neo4j-aura": {
    "command": "uvx",
    "args": [ "[email protected]" ],
    "env": {
      "NEO4J_AURA_CLIENT_ID": "<your-client-id>",
      "NEO4J_AURA_CLIENT_SECRET": "<your-client-secret>"
    }
  }
}
🐳 Docker での使用
"mcpServers": {
  "neo4j-aura": {
    "command": "docker",
    "args": [
      "run",
      "--rm",
      "-e", "NEO4J_AURA_CLIENT_ID=${NEO4J_AURA_CLIENT_ID}",
      "-e", "NEO4J_AURA_CLIENT_SECRET=${NEO4J_AURA_CLIENT_SECRET}",
      "mcp-neo4j-aura-manager:0.4.8"
    ]
  }
}
🏷️ マルチテナントデプロイメント向けの名前空間設定

サーバーは、マルチテナントデプロイメント向けにツール名へプレフィックスを付ける名前空間設定をサポートしています。

"mcpServers": {
  "neo4j-aura-app1": {
    "command": "uvx",
    "args": [
      "[email protected]",
      "--client-id", "<your-client-id>",
      "--client-secret", "<your-client-secret>",
      "--namespace", "app1"
    ]
  },
  "neo4j-aura-app2": {
    "command": "uvx", 
    "args": [
      "[email protected]",
      "--client-id", "<your-client-id>",
      "--client-secret", "<your-client-secret>",
      "--namespace", "app2"
    ]
  }
}
CLI の使用方法
# With namespace
mcp-neo4j-aura-manager --client-id <id> --client-secret <secret> --namespace myapp

# Tools become: myapp-list_instances, myapp-create_instance, etc.
環境変数
export NEO4J_AURA_CLIENT_ID=your_client_id
export NEO4J_AURA_CLIENT_SECRET=your_client_secret  
export NEO4J_NAMESPACE=myapp
mcp-neo4j-aura-manager
名前空間を設定した Docker
docker run -e NEO4J_AURA_CLIENT_ID=<id> \
           -e NEO4J_AURA_CLIENT_SECRET=<secret> \
           -e NEO4J_NAMESPACE=myapp \
           mcp-neo4j-aura-manager
🌐 HTTP トランスポートモード

サーバーは、ウェブベースのデプロイメントおよびマイクロサービス向けに HTTP トランスポートをサポートしています。

# Basic HTTP mode (defaults: host=127.0.0.1, port=8000, path=/mcp/)
mcp-neo4j-aura-manager --transport http

# Custom HTTP configuration
mcp-neo4j-aura-manager --transport http --host 127.0.0.1 --port 8080 --path /api/mcp/

HTTP の設定に使用する環境変数:

export NEO4J_TRANSPORT=http
export NEO4J_MCP_SERVER_HOST=127.0.0.1
export NEO4J_MCP_SERVER_PORT=8080
export NEO4J_MCP_SERVER_PATH=/api/mcp/
export NEO4J_MCP_SERVER_ALLOWED_HOSTS="localhost,127.0.0.1"
export NEO4J_MCP_SERVER_ALLOW_ORIGINS="http://localhost:3000"
export NEO4J_NAMESPACE=myapp
mcp-neo4j-aura-manager
🔄 トランスポートモード

サーバーは、次の 3 つのトランスポートモードをサポートしています。

  • STDIO(デフォルト):ローカルツールおよび Claude Desktop 向けの標準入力/出力
  • SSE:ウェブベースのデプロイメント向けの Server-Sent Events
  • HTTP:最新のウェブデプロイメントおよびマイクロサービス向けの Streamable HTTP

🔒 セキュリティ保護

このサーバーには、HTTP トランスポート使用時に MCP の全機能を維持しながら、一般的なウェブベースの攻撃から保護する安全なデフォルト設定を備えた包括的なセキュリティ保護機能が含まれています。

🛡️ DNS リバインディング保護

TrustedHost Middleware は Host ヘッダーを検証し、DNS リバインディング攻撃を防ぎます。

デフォルトで安全:

  • デフォルトでは localhost と 127.0.0.1 のホストのみが許可されます
  • 悪意のあるウェブサイトがブラウザーをだましてローカルサーバーにアクセスさせることはできません

環境変数:

export NEO4J_MCP_SERVER_ALLOWED_HOSTS="example.com,www.example.com"
🌐 CORS 保護

Cross-Origin Resource Sharing(CORS) 保護は、ブラウザーベースのリクエストをデフォルトでブロックします。

環境変数:

export NEO4J_MCP_SERVER_ALLOW_ORIGINS="https://example.com,https://example.com"
🔧 完全なセキュリティ設定

開発環境のセットアップ:

mcp-neo4j-aura-manager --transport http \
  --allowed-hosts "localhost,127.0.0.1" \
  --allow-origins "http://localhost:3000"

本番環境のセットアップ:

mcp-neo4j-aura-manager --transport http \
  --allowed-hosts "example.com,www.example.com" \
  --allow-origins "https://example.com,https://example.com"
🚨 セキュリティのベストプラクティス

allow_origins の場合:

  • 具体的に指定します:["https://example.com", "https://example.com"]
  • 本番環境では、認証情報を使用する際に "*" を絶対に使用しないでください
  • 本番環境では HTTPS のオリジンを使用してください

allowed_hosts の場合:

  • 実際のドメインを含めます:["example.com", "www.example.com"]
  • localhost を含めるのは開発環境のみとしてください
  • リスクを理解していない限り、"*" を絶対に使用しないでください

🐳 Docker デプロイメント

Neo4j Aura Manager MCP サーバーは、リモートデプロイメント向けに Docker を使用してデプロイできます。Docker デプロイメントでは、ウェブからアクセスできるように HTTP トランスポートを使用してください。このデプロイメントを Claude Desktop などのアプリケーションと統合するには、MCP 設定で mcp-remote などのプロキシを使用する必要があります。

🐳 Claude Desktop で Docker を使用する

ここでは、Docker Hub でホストされている Aura Manager MCP サーバーのイメージを、Claude Desktop で使用するために stdio トランスポートで実行します。

設定の詳細:

  • -i:インタラクティブモード。stdio トランスポート通信のために STDIN を開いたままにします
  • --rm:終了時にコンテナーを自動的に削除します(クリーンアップ)
  • -p 8000:8000:ポートマッピング。ホストのポート 8000 をコンテナーのポート 8000 にマッピングします
  • NEO4J_TRANSPORT=stdio:Claude Desktop との互換性のために stdio トランスポートを使用します
  • NEO4J_AURA_CLIENT_ID と NEO4J_AURA_CLIENT_SECRET:Aura API の認証情報
{
  "mcpServers": {
    "neo4j-aura": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-p",
        "8000:8000",
        "-e", "NEO4J_AURA_CLIENT_ID=your-client-id",
        "-e", "NEO4J_AURA_CLIENT_SECRET=your-client-secret",
        "-e", "NEO4J_TRANSPORT=stdio",
        "mcp/neo4j-aura-manager:latest"
      ]
    }
  }
}
📦 ビルドしたイメージを使用する

docker build -t mcp-neo4j-aura-manager:latest . をローカルで実行してビルドした後:

# Build the image
docker build -t mcp-neo4j-aura-manager:<version> .

# Run with http transport (default for Docker)
docker run --rm -p 8000:8000 \
  -e NEO4J_AURA_CLIENT_ID="your-client-id" \
  -e NEO4J_AURA_CLIENT_SECRET="your-client-secret" \
  -e NEO4J_TRANSPORT="http" \
  -e NEO4J_MCP_SERVER_HOST="0.0.0.0" \
  -e NEO4J_MCP_SERVER_PORT="8000" \
  -e NEO4J_MCP_SERVER_PATH="/mcp/" \
  mcp-neo4j-aura-manager:<version>

# Run with security middleware for production
docker run --rm -p 8000:8000 \
  -e NEO4J_AURA_CLIENT_ID="your-client-id" \
  -e NEO4J_AURA_CLIENT_SECRET="your-client-secret" \
  -e NEO4J_TRANSPORT="http" \
  -e NEO4J_MCP_SERVER_HOST="0.0.0.0" \
  -e NEO4J_MCP_SERVER_PORT="8000" \
  -e NEO4J_MCP_SERVER_PATH="/mcp/" \
  -e NEO4J_MCP_SERVER_ALLOWED_HOSTS="example.com,www.example.com" \
  -e NEO4J_MCP_SERVER_ALLOW_ORIGINS="https://example.com" \
  mcp-neo4j-aura-manager:<version>
🔧 環境変数
変数デフォルト説明
NEO4J_AURA_CLIENT_ID(なし)Neo4j Aura API クライアント ID
NEO4J_AURA_CLIENT_SECRET(なし)Neo4j Aura API クライアントシークレット
NEO4J_NAMESPACE(空 - プレフィックスなし)ツール名の名前空間プレフィックス(例:myapp-list_instances)
NEO4J_TRANSPORTstdio(ローカル)、http(リモート)トランスポートプロトコル(stdio、http、sse)
NEO4J_MCP_SERVER_HOST127.0.0.1(ローカル)バインドするホスト
NEO4J_MCP_SERVER_PORT8000HTTP/SSE トランスポート用のポート
NEO4J_MCP_SERVER_PATH/mcp/MCP サーバーへのアクセスに使用するパス
NEO4J_MCP_SERVER_ALLOW_ORIGINS(空 - デフォルトでセキュア)許可する CORS オリジンのカンマ区切りリスト
NEO4J_MCP_SERVER_ALLOWED_HOSTSlocalhost,127.0.0.1許可するホストのカンマ区切りリスト(DNS リバインディング対策)
NEO4J_MCP_SERVER_STATELESSfalseHTTP/SSE トランスポートでステートレスモードを有効にします(true/false、stdio には影響しません)
🌐 レガシーな Web アクセス用の SSE トランスポート

SSE トランスポートを使用する場合(レガシーな Web クライアント向け)、サーバーは HTTP エンドポイントを公開します。

# Start the server with SSE transport
docker run -d -p 8000:8000 \
  -e NEO4J_AURA_CLIENT_ID="your-client-id" \
  -e NEO4J_AURA_CLIENT_SECRET="your-client-secret" \
  -e NEO4J_TRANSPORT="sse" \
  -e NEO4J_MCP_SERVER_HOST="0.0.0.0" \
  -e NEO4J_MCP_SERVER_PORT="8000" \
  --name neo4j-aura-mcp-server \
  mcp-neo4j-aura-manager:latest

# Test the SSE endpoint
curl http://localhost:8000/sse

# Use with MCP Inspector
npx @modelcontextprotocol/inspector http://localhost:8000/sse
🔗 Docker を使用した Claude Desktop との統合

HTTP トランスポートを使用する Docker 化されたサーバーと Claude Desktop を統合する場合:

{
  "mcpServers": {
    "neo4j-aura-docker": {
      "command": "npx",
      "args": ["-y", "mcp-remote@latest", "http://localhost:8000/mcp/"]
    }
  }
}

注:まず HTTP トランスポートで Docker コンテナを起動します。その後、Claude Desktop は HTTP エンドポイントと mcp-remote などのプロキシサーバーを介して接続できます。

📝 使用例

🔍 テナントの概要を確認する

README の画像

🔎 名前でインスタンスを検索する

README の画像

📋 インスタンスを一覧表示して、一時停止中のインスタンスを見つける

README の画像

▶️ 一時停止中のインスタンスを再開する

README の画像

➕ 新しいインスタンスを作成する

README の画像

🚀 開発

📦 前提条件
  1. uv(Universal Virtualenv)をインストールします:
# Using pip
pip install uv

# Using Homebrew on macOS
brew install uv

# Using cargo (Rust package manager)
cargo install uv
  1. リポジトリをクローンし、開発環境をセットアップします:
# Clone the repository
git clone https://github.com/yourusername/mcp-neo4j-aura-manager.git
cd mcp-neo4j-aura-manager

# Create and activate virtual environment using uv
uv venv
source .venv/bin/activate  # On Unix/macOS
.venv\Scripts\activate     # On Windows

# Install dependencies including dev dependencies
uv pip install -e ".[dev]"

📄 ライセンス

この MCP サーバーは MIT License の下でライセンスされています。つまり、MIT License の利用規約に従う限り、ソフトウェアを自由に使用、変更、配布できます。詳細については、プロジェクトリポジトリ内の LICENSE ファイルを参照してください。

コメント

MCP は初めてですか?

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

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