ArangoDB MCP Server

ArangoDB MCP servers enable AI models to interact with ArangoDB databases, providing capabilities for document operations, graph queries, AQL queries, and multi-model data management.

GitHub starsnpm versionnpm downloads

Overview

The MCP ArangoDB Server bridges AI and databases by letting language models (LLMs) work directly with ArangoDB, a flexible multi-model database. It's part of the Model Context Protocol (MCP) system, providing a safe and standard way to connect AI with powerful database capabilities for documents, graphs, and complex data relationships.

Created by:

Developed by ravenwits

Key Features

📄

Document & Graph Operations

Work seamlessly with documents, edges, and vertices for complex data relationships

🔍

Powerful AQL Queries

Execute complex ArangoDB Query Language (AQL) queries with optional parameterized bind variables

💾

Database & Collection Management

Create, list, and manage collections with automatic document key generation

💾

Backup & Data Export

Export all collections as JSON files for backup and migration purposes

Available Tools

Quick Reference

ToolPurposeCategory
arango_queryExecute AQL queries with bind variablesRead
arango_insertAdd documents to collectionsWrite
arango_updateModify existing documentsWrite
arango_removeDelete documents from collectionsWrite
arango_list_collectionsList all collections in databaseDiscovery
arango_create_collectionCreate new document or edge collectionsAdministration
arango_backupExport collections as JSON filesBackup

Detailed Usage

arango_query

Execute AQL (ArangoDB Query Language) queries with optional parameterized bind variables for secure and efficient database operations.

use_mcp_tool({
  server_name: "arangodb",
  tool_name: "arango_query",
  arguments: {
    aql: "FOR doc IN users FILTER doc.age > @minAge RETURN doc",
    bindVars: {
      minAge: 18
    }
  }
});
arango_insert

Insert documents into collections with automatic document key generation if not provided.

use_mcp_tool({
  server_name: "arangodb",
  tool_name: "arango_insert",
  arguments: {
    collection: "users",
    document: {
      name: "John Doe",
      email: "[email protected]",
      age: 30
    }
  }
});

Automatic Key Generation:

Document keys are automatically generated if not provided in the document

arango_update

Update existing documents in a collection by specifying the collection name and document key.

use_mcp_tool({
  server_name: "arangodb",
  tool_name: "arango_update",
  arguments: {
    collection: "users",
    key: "doc_key_123",
    document: {
      age: 31,
      email: "[email protected]"
    }
  }
});
arango_remove

Delete documents from collections by collection name and document key.

use_mcp_tool({
  server_name: "arangodb",
  tool_name: "arango_remove",
  arguments: {
    collection: "users",
    key: "doc_key_123"
  }
});
arango_list_collections

List all collections in the connected database with metadata including names, IDs, and types.

use_mcp_tool({
  server_name: "arangodb",
  tool_name: "arango_list_collections",
  arguments: {}
});
arango_create_collection

Create new document or edge collections in the database with configurable options.

use_mcp_tool({
  server_name: "arangodb",
  tool_name: "arango_create_collection",
  arguments: {
    collection: "products",
    type: "document"
  }
});

Collection Types:

Create either document collections (standard) or edge collections (for graph relationships)

arango_backup

Export all collections as JSON files for backup and data migration purposes.

use_mcp_tool({
  server_name: "arangodb",
  tool_name: "arango_backup",
  arguments: {
    outputDir: "/path/to/backup/directory"
  }
});

Data Preservation:

Creates JSON files for each collection with all current data for safe backups and migrations

Installation

{
  "mcpServers": {
    "arangodb": {
      "command": "npx",
      "args": ["arango-server"],
      "env": {
        "ARANGO_URL": "http://localhost:8529",
        "ARANGO_DB": "your_database",
        "ARANGO_USERNAME": "root",
        "ARANGO_PASSWORD": "your_password"
      }
    }
  }
}

Default Port:

ArangoDB runs on port 8529 by default. Adjust ARANGO_URL if using a different port or remote server.

Common Use Cases

1. Document Management

Store and retrieve documents with AQL queries:

// Insert a new document
use_mcp_tool({
  server_name: "arangodb",
  tool_name: "arango_insert",
  arguments: {
    collection: "articles",
    document: {
      title: "Getting Started with ArangoDB",
      content: "ArangoDB is a multi-model database...",
      author: "John Doe",
      published: true
    }
  }
});

2. Graph Relationships

Query complex relationships using graph traversal:

// Find all connected users
use_mcp_tool({
  server_name: "arangodb",
  tool_name: "arango_query",
  arguments: {
    aql: `
      FOR vertex, edge, path IN 1..2 OUTBOUND @start GRAPH 'social_graph'
      RETURN {vertex: vertex, path: path}
    `,
    bindVars: {
      start: "users/user_123"
    }
  }
});

3. Data Analysis & Aggregation

Run aggregation queries on large datasets:

// Get user statistics
use_mcp_tool({
  server_name: "arangodb",
  tool_name: "arango_query",
  arguments: {
    aql: `
      FOR doc IN users
      COLLECT region = doc.region WITH COUNT INTO count
      RETURN {region: region, users: count}
    `
  }
});

4. Bulk Data Operations

Perform bulk updates across collections:

// Update multiple documents matching criteria
use_mcp_tool({
  server_name: "arangodb",
  tool_name: "arango_query",
  arguments: {
    aql: `
      FOR doc IN users
      FILTER doc.status == @oldStatus
      UPDATE doc WITH { status: @newStatus }
      IN users
      RETURN NEW
    `,
    bindVars: {
      oldStatus: "inactive",
      newStatus: "archived"
    }
  }
});

Environment Variables

Configure the ArangoDB MCP server with these environment variables:

  • ARANGO_URL - ArangoDB server URL (e.g., http://localhost:8529)
  • ARANGO_DB - Target database name (e.g., my_database)
  • ARANGO_USERNAME - Database username (e.g., root)
  • ARANGO_PASSWORD - Database password

Development Only:

This tool is designed for local development environments. Connecting to production databases is discouraged due to security risks.

Sources