mcpField
M
MCP Server for ArangoDB

MCP Server for ArangoDB

ローカル
github.com/ravenwitsデータベース4621 週間前に更新

MCP Server for ArangoDB について

MCP Server for ArangoDB は、ArangoDB を操作するための TypeScript 製 MCP サーバーです。MCP クライアントから利用でき、読み取り専用ツールとデータやスキーマを変更するツールを区別しています。AQL クエリ、ドキュメント、インデックス、ArangoSearch、グラフ、バックアップに対応し、主に開発用データベースでの利用を想定しています。

主な機能

  1. 01コレクション、ドキュメント、インデックスの管理ツール
  2. 02読み取り専用の AQL 実行と検証ツール
  3. 03実行計画を確認するクエリ説明機能
  4. 04ArangoSearch ビューとアナライザーの管理
  5. 05グラフ走査と最短経路のツール
  6. 06設定されたルート配下に限定したバックアップツール

活用シーン

  1. 01AI クライアントからの ArangoDB データの探索
  2. 02開発用データベースでのドキュメントの挿入や更新
  3. 03AQL の実行計画とインデックス利用状況の確認

MCP 対応

ArangoDB 関連のツールを MCP サーバーとして MCP クライアントに提供し、JSON テキストと structuredContent を返します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"arangodb": {
"command": "npx",
"args": [
"-y",
"arango-server"
]
}
}
}
起動コマンドnpx -y arango-server

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

パッケージ
npmarango-server

ツール

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

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

詳細

ArangoDB 用 MCP サーバー

ArangoDB MCP サーバー

ArangoDB 用の Model Context Protocol サーバー

これは、ArangoDB を通じてデータベース操作機能を提供する、TypeScript ベースの MCP サーバーです。データベースの基本操作を実装し、MCP ツールを通じて ArangoDB とシームレスに連携できます。Claude アプリや、Cline のような MCP に対応した VSCode 拡張機能でも使用できます。

機能

ツール
ツールカテゴリ読み取り専用データ/スキーマの変更目的
arango_queryクエリいいえ場合によるバインド変数、結果の上限、クエリガードレールを指定して、一般的な AQL を実行します。
arango_read_queryクエリはいいいえ読み取り専用の AQL を実行し、書き込み/DDL キーワードを拒否します。
arango_validate_queryクエリはいいいえAQL を実行せずに解析し、検証します。
arango_explain_queryクエリはいいいえAQL の実行計画、インデックスの使用状況、オプティマイザーの出力を調べます。
arango_describe_database検出はいいいえコレクション、件数、インデックス、サンプルフィールドの概要を示します。
arango_list_collections検出はいいいえ設定済みデータベース内のコレクションを一覧表示します。
arango_get_collection検出はいいいえコレクションのプロパティ、件数、インデックスを返します。
arango_create_collectionコレクションいいえはいドキュメントコレクションまたはエッジコレクションを作成します。
arango_drop_collectionコレクションいいえはいconfirm: true を必須として、コレクションを削除します。
arango_get_documentドキュメントはいいいえコレクションと _key を指定して、1 件のドキュメントを取得します。
arango_list_documentsドキュメントはいいいえlimit と offset によるページネーションでドキュメントを一覧表示します。
arango_count_documentsドキュメントはいいいえコレクション内のドキュメント数を数えます。
arango_sample_documentsドキュメントはいいいえスキーマの検出に役立つ、少数のランダムなサンプルを返します。
arango_insertドキュメントいいえはいコレクションに 1 件のドキュメントを挿入します。
arango_bulk_insertドキュメントいいえはい1 回のリクエストで最大 1000 件のドキュメントを挿入します。
arango_updateドキュメントいいえはい_key を指定して、1 件のドキュメントを部分更新します。
arango_bulk_updateドキュメントいいえはい_key または _id を指定して、最大 1000 件のドキュメントをパッチ更新します。
arango_removeドキュメントいいえはい_key を指定して、1 件のドキュメントを削除します。
arango_list_indexesインデックスはいいいえコレクションのインデックスを一覧表示します。
arango_create_indexインデックスいいえはい永続、地理空間、TTL、または転置インデックスを作成します。
arango_list_viewsArangoSearchはいいいえArangoSearch と検索エイリアスのビューを一覧表示します。
arango_create_search_viewArangoSearchいいえはいコレクションにリンクされた ArangoSearch ビューを作成します。
arango_searchArangoSearchはいいいえアナライザーを考慮した BM25 ランキングを使用して、ArangoSearch ビューを検索します。
arango_list_analyzersアナライザーはいいいえArangoSearch アナライザーを一覧表示します。
arango_create_analyzerアナライザーいいえはいArangoSearch アナライザーを作成します。
arango_list_graphsグラフはいいいえ名前付きグラフを一覧表示します。
arango_create_graphグラフいいえはい1 つのエッジ定義を持つ名前付きグラフを作成します。
arango_insert_edgeグラフいいえはい_from と _to を含むエッジドキュメントを挿入します。
arango_traverseグラフはいいいえエッジコレクションまたは名前付きグラフを使用して、開始頂点からエッジをたどります。
arango_shortest_pathグラフはいいいえエッジコレクションまたは名前付きグラフを使用して、2 つの頂点間の最短経路を見つけます。
arango_backupバックアップいいえファイルシステムARANGO_BACKUP_ROOT 配下の JSON ファイルにコレクションをバックアップします。

すべてのツールは、成功時に JSON テキストと structuredContent を返します。読み取り中心のツールでは、エージェントが扱いやすい応答を保つため、上限を設けた limit パラメーターを公開しています。該当する場合、クエリツールは memoryLimit、maxRuntime、failOnWarning などのガードレールにも対応しています。

インストール

NPM を使ったインストール

NPM を使って arango-server をグローバルにインストールするには、次のコマンドを実行します。

npm install -g arango-server
NPX を使った実行

インストールせずに arango-server を直接実行するには、次のコマンドを使用します。

npx -y arango-server
VSCode Agent の設定

arango-server を VSCode Copilot エージェントで使用するには、VSCode 1.99.0 以降がインストールされている必要があります。次の手順に従ってください。

  1. MCP 設定ファイルを作成または編集します:

    • ワークスペース固有の設定:ワークスペース内に .vscode/mcp.json ファイルを作成または編集します。

    • ユーザー固有の設定:任意で、ユーザー設定の setting(mcp) にサーバーを指定すると、すべてのワークスペースで MCP サーバーを有効にできます。

      ヒント:設定ファイルのセットアップ方法の詳細については、VSCode の MCP 設定に関するドキュメントをこちらで参照してください。

  2. 次の設定を追加します:

    {
      "servers": {
        "arango-mcp": {
          "type": "stdio",
          "command": "npx",
          "args": ["-y", "arango-server"],
          "env": {
            "ARANGO_URL": "http://localhost:8529",
            "ARANGO_DB": "your_database_name",
            "ARANGO_USERNAME": "your_username",
            "ARANGO_PASSWORD": "your_password"
          }
        }
      }
    }
    
  3. MCP サーバーを起動します:

    • VSCode でコマンドパレットを開きます(Mac の場合は Ctrl+Shift+P または Cmd+Shift+P)。
    • MCP: Start Server コマンドを実行し、一覧から arango-mcp を選択します。
  4. サーバーを確認します:

    • VSCode でチャットビューを開き、エージェントモードに切り替えます。
    • Tools ボタンを使用して、arango-server のツールが利用可能であることを確認します。
Claude Desktop で使用する場合

次の場所を開きます:Settings > Developer > Edit Config または

  • MacOS:~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows:%APPDATA%/Claude/claude_desktop_config.json

セットアップ方法については、MCP のドキュメントもご確認ください。

OpenCode で使用する場合

opencode.json や opencode.jsonc などの OpenCode 設定ファイルに、次の設定を追加します:

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "arango": {
      "type": "local",
      "command": ["npx", "-y", "arango-server"],
      "enabled": true,
      "environment": {
        "ARANGO_URL": "your_database_url",
        "ARANGO_DB": "your_database_name",
        "ARANGO_USERNAME": "your_username",
        "ARANGO_PASSWORD": "your_password"
      }
    }
  }
}

OpenCode を再起動した後、ArangoDB のタスクで arango MCP ツールを使用するよう指示してください。

Cline VSCode Extension で使用する場合

次の場所を開きます:Cline Extension > MCP Servers > Edit Configuration または

  • MacOS:~/Library/Application Support/Code/User/globalStorage/cline.cline/config.json
  • Windows:%APPDATA%/Code/User/globalStorage/cline.cline/config.json

mcpServers セクションに次の設定を追加します:

{
  "mcpServers": {
    "arango": {
      "command": "npx",
      "args": ["-y", "arango-server"],
      "env": {
        "ARANGO_URL": "your_database_url",
        "ARANGO_DB": "your_database_name",
        "ARANGO_USERNAME": "your_username",
        "ARANGO_PASSWORD": "your_password"
      }
    }
  }
}

上記の設定を使用して、WARP でこのサーバーを動作させることもできます。

環境変数

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

  • ARANGO_URL - ArangoDB サーバーの URL(注:8529 はローカル開発での ArangoDB のデフォルトポートです)
  • ARANGO_DB - データベース名
  • ARANGO_USERNAME - データベースユーザー
  • ARANGO_PASSWORD - データベースのパスワード
  • ARANGO_BACKUP_ROOT - arango_backup の出力先となる任意のルートディレクトリ。デフォルトは ./backups です。

使用方法

意味のあるプロンプトであれば、ほぼどのような内容でも指定でき、Claude が適切な関数の実行を試みます。

プロンプトの例:

  • 「データベース内のすべてのコレクションを一覧表示して」
  • 「すべてのユーザーをクエリして」
  • 「'users' コレクションに、名前が 'John Doe'、メールアドレスが "[email protected]' の新しいドキュメントを挿入して」
  • 「キーが '123456' または名前が 'Jane Doe' のドキュメントを更新して、年齢を 48 に変更して」
  • 「'products' という名前の新しいコレクションを作成して」
Claude App での使用

Claude App で ArangoDB MCP サーバーを使用するデモ

Cline VSCode 拡張機能での使用方法

Cline VSCode 拡張機能で ArangoDB MCP サーバーを使用するデモ

すべてのユーザーをクエリします:

{
  "query": "FOR user IN users RETURN user",
  "limit": 100
}

新しいドキュメントを挿入します:

{
  "collection": "users",
  "document": {
    "name": "John Doe",
    "email": "[email protected]"
  }
}

ドキュメントを更新します:

{
  "collection": "users",
  "key": "123456",
  "update": {
    "name": "Jane Doe"
  }
}

ドキュメントを削除します:

{
  "collection": "users",
  "key": "123456"
}

すべてのコレクションを一覧表示します:

{
} // No parameters required

データベースのコレクションをバックアップします:

{
  "outputDir": "nightly_1", // Safe subdirectory name under ARANGO_BACKUP_ROOT. Absolute paths and slashes are rejected.
  "collection": "users", // Optional. If omitted, all collections are backed up.
  "docLimit": 1000 // Optional. Maximum documents per collection. Defaults to 1000 and is capped at 10000.
}

バックアップの保存先を選択するには、ARANGO_BACKUP_ROOT を設定します。このサーバーは、任意のファイル書き込みリスクを軽減するため、パストラバーサル、絶対パス、シンボリックリンクによるパスの逸脱、および既存の出力ファイルを拒否します。

新しいコレクションを作成します:

{
  "name": "products",
  "type": "document", // "document" or "edge" (optional, defaults to "document")
  "waitForSync": false // Optional, defaults to false
}

コレクションを削除します:

{
  "name": "products",
  "confirm": true
}

注:このサーバーはデータベース構造に依存せず、ArangoDB のドキュメントコレクションとエッジコレクションのモデルに従っていれば、どのようなコレクション名や構造でも使用できます。

免責事項

開発用途のみ

このツールはローカル開発環境専用に設計されています。技術的には本番データベースに接続できますが、重大なセキュリティリスクが生じるため、明示的に推奨されていません。責任の分離と本番データの保護のため、開発データベースでのみ使用しています。

開発

コントリビューションを歓迎します。プルリクエストを作成する前に、CONTRIBUTING.md をお読みください。

  1. リポジトリをクローンします

  2. 依存関係をインストールします:

    npm run build
    
  3. 自動再ビルドを有効にして開発する場合:

    npm run watch
    
デバッグ

MCP サーバーは標準入出力を介して通信するため、デバッグが難しい場合があります。開発には、MCP Inspector を使用したデバッグをおすすめします:

npm run inspector

Inspector は、ブラウザーでデバッグツールにアクセスするための URL を提供します。

テスト
npm test

テストスイートには、絶対パス、パストラバーサル、シンボリックリンクによるパスの逸脱を防ぐ arango_backup のパス処理に関する回帰テストが含まれています。

ローカルの Docker ArangoDB インスタンスで統合スモークテストを実行するには:

npm run test:integration

統合テストでは、一時的な Docker ArangoDB インスタンスを起動し、標準入出力経由で MCP サーバーを起動してツールを一覧表示し、outputSchema を検証します。次に、一時コレクションを作成してドキュメントを挿入し、limit を指定してクエリを実行します。また、バックアップの出力先が ARANGO_BACKUP_ROOT 配下に収まること、絶対バックアップパスが拒否されることを検証した後、コレクションをクリーンアップし、コンテナーを停止します。

テストコンテナーは、ローカルの ArangoDB(8529)との競合を避けるため、デフォルトでホストポート 18529 を使用します。必要に応じて ARANGO_PORT で上書きしてください。

ライセンス

このプロジェクトは MIT License の下でライセンスされています。詳細については、LICENSE ファイルをご覧ください。

コメント

MCP は初めてですか?

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

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