Skip to main content

A Model Context Protocol server for ArangoDB

Project description

ArangoDB MCP Server for Python

Python License MCP PyPI

A production-ready Model Context Protocol (MCP) server exposing advanced ArangoDB operations to AI assistants like Claude Desktop and Augment Code. Features async-first Python architecture, comprehensive graph management, flexible content conversion (JSON, Markdown, YAML, Table), backup/restore functionality, and analytics capabilities.


Quick Links

๐Ÿ“š Documentation: https://github.com/PCfVW/mcp-arango-async/tree/master/docs

๐Ÿš€ Quick Start: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/getting-started/quickstart.md

๐Ÿ”ง ArangoDB Setup: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/getting-started/install-arangodb.md

๐Ÿ—„๏ธ Multi-Tenancy Guide: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/multi-tenancy-guide.md

โš™๏ธ CLI Reference: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/cli-reference.md

๐Ÿ“– Tools Reference: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/tools-reference.md

๐ŸŽฏ MCP Design Patterns: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/mcp-design-patterns.md

๐Ÿ“ Changelog: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/developer-guide/changelog.md

๐Ÿ› Issues: https://github.com/PCfVW/mcp-arango-async/issues


Features

โœ… 46 MCP Tools - Complete ArangoDB operations (queries, collections, indexes, graphs) โœ… Multi-Tenancy - Work with multiple databases, environment switching, cross-database operations โœ… MCP Design Patterns - Progressive discovery, context switching, tool unloading (98.7% token savings) โœ… Graph Management - Create, traverse, backup/restore named graphs โœ… Content Conversion - JSON, Markdown, YAML, and Table formats โœ… Backup/Restore - Collection and graph-level backup with validation โœ… Analytics - Query profiling, explain plans, graph statistics โœ… Dual Transport - stdio (desktop clients) and HTTP (web/containerized) โœ… Docker Support - Run in Docker for isolation and reproducibility โœ… Production-Ready - Retry logic, graceful degradation, comprehensive error handling โœ… Type-Safe - Pydantic validation for all tool arguments


Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”      โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”       โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚   MCP Client       โ”‚      โ”‚  ArangoDB MCP       โ”‚       โ”‚   ArangoDB       โ”‚
โ”‚ (Claude, Augment)  โ”‚โ”€โ”€โ”€โ”€โ”€โ–ถโ”‚  Server (Python)    โ”‚โ”€โ”€โ”€โ”€โ”€โ–ถโ”‚  (Docker)        โ”‚
โ”‚                    โ”‚      โ”‚  โ€ข 46 Tools         โ”‚       โ”‚  โ€ข Multi-Model   โ”‚
โ”‚                    โ”‚      โ”‚  โ€ข Multi-Tenancy    โ”‚       โ”‚  โ€ข Graph Engine  โ”‚
โ”‚                    โ”‚      โ”‚  โ€ข Graph Mgmt       โ”‚       โ”‚  โ€ข AQL Engine    โ”‚
โ”‚                    โ”‚      โ”‚  โ€ข MCP Patterns     โ”‚       โ”‚                  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜      โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜       โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Getting Started with ArangoDB

Prerequisites

  • Docker and Docker Compose installed
  • Python 3.11+ (for mcp-arangodb-async)

Step 1: Install ArangoDB

Create a docker-compose.yml file:

services:
  arangodb:
    image: arangodb:3.11
    environment:
      ARANGO_ROOT_PASSWORD: ${ARANGO_ROOT_PASSWORD:-changeme}
    ports:
      - "8529:8529"
    volumes:
      - arangodb_data:/var/lib/arangodb3
      - arangodb_apps:/var/lib/arangodb3-apps
    healthcheck:
      test: arangosh --server.username root --server.password "$ARANGO_ROOT_PASSWORD" --javascript.execute-string "require('@arangodb').db._version()" > /dev/null 2>&1 || exit 1
      interval: 5s
      timeout: 2s
      retries: 30
    restart: unless-stopped

volumes:
  arangodb_data:
    driver: local
  arangodb_apps:
    driver: local

Create a .env file:

# ArangoDB root password
ARANGO_ROOT_PASSWORD=changeme

# MCP Server connection settings
ARANGO_URL=http://localhost:8529
ARANGO_DB=mcp_arangodb_test
ARANGO_USERNAME=mcp_arangodb_user
ARANGO_PASSWORD=mcp_arangodb_password

Start ArangoDB:

docker compose --env-file .env up -d

Step 2: Install mcp-arangodb-async

Install the MCP server package:

pip install mcp-arangodb-async
Alternative: Install with Conda/Mamba/Micromamba
# Create environment and install
conda create -n mcp-arango python=3.11
conda activate mcp-arango
pip install mcp-arangodb-async

# Or with mamba/micromamba:
# mamba create -n mcp-arango python=3.11
# mamba activate mcp-arango
# pip install mcp-arangodb-async
Alternative: Install with uv
# Create environment and install
uv venv .venv --python 3.11
uv pip install mcp-arangodb-async

Step 3: Create Database and User

Create the database and user for the MCP server:

maa db add mcp_arangodb_test \
  --url http://localhost:8529 \
  --with-user mcp_arangodb_user \
  --env-file .env

Expected output:

The following actions will be performed:
  [ADD] Database 'mcp_arangodb_test'
  [ADD] User 'mcp_arangodb_user' (active: true)
  [GRANT] Permission rw: mcp_arangodb_user โ†’ mcp_arangodb_test

Are you sure you want to proceed? [y/N]: y
db add:
[ADDED] Database 'mcp_arangodb_test'
[ADDED] User 'mcp_arangodb_user' (active: true)
[GRANTED] Permission rw: mcp_arangodb_user โ†’ mcp_arangodb_test

Verify the database connection:

# Set environment variables
export ARANGO_URL=http://localhost:8529
export ARANGO_DB=mcp_arangodb_test
export ARANGO_USERNAME=mcp_arangodb_user
export ARANGO_PASSWORD=mcp_arangodb_password

# Run health check
maa health

Expected output:

{"status": "healthy", "database_connected": true, "database_info": {"version": "3.11.x", "name": "mcp_arangodb_test"}}

Step 4: Configure MCP Host

Configure your MCP host to use the server. The configuration includes environment variables for database connection. The location of the configuration file depends on your MCP host. For Claude Desktop, the file is located at:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Configuration:

{
  "mcpServers": {
    "arangodb": {
      "command": "python",
      "args": ["-m", "mcp_arangodb_async"],
      "env": {
        "ARANGO_URL": "http://localhost:8529",
        "ARANGO_DB": "mcp_arangodb_test",
        "ARANGO_USERNAME": "mcp_arangodb_user",
        "ARANGO_PASSWORD": "mcp_arangodb_password"
      }
    }
  }
}
Alternative: Configuration for Conda/Mamba/Micromamba

If you installed with conda/mamba/micromamba, use the run command:

{
  "mcpServers": {
    "arangodb": {
      "command": "conda",
      "args": ["run", "-n", "mcp-arango", "maa", "server"],
      "env": {
        "ARANGO_URL": "http://localhost:8529",
        "ARANGO_DB": "mcp_arangodb_test",
        "ARANGO_USERNAME": "mcp_arangodb_user",
        "ARANGO_PASSWORD": "mcp_arangodb_password"
      }
    }
  }
}

Replace "conda" with "mamba" or "micromamba" if using those tools.

Alternative: Configuration for uv

If you installed with uv, use uv run:

{
  "mcpServers": {
    "arangodb": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/project", "maa", "server"],
      "env": {
        "ARANGO_URL": "http://localhost:8529",
        "ARANGO_DB": "mcp_arangodb_test",
        "ARANGO_USERNAME": "mcp_arangodb_user",
        "ARANGO_PASSWORD": "mcp_arangodb_password"
      }
    }
  }
}

Replace /path/to/project with the directory containing your .venv folder.

Restart your MCP client after updating the configuration.

Test the connection:

Ask your MCP client: "List all collections in the ArangoDB database"

The assistant should successfully connect and list your collections.

Available Tools

The server exposes 46 MCP tools organized into 11 categories:

Multi-Tenancy Tools (4 tools)

  • arango_set_focused_database - Set focused database for session
  • arango_get_focused_database - Get currently focused database
  • arango_list_available_databases - List all configured databases
  • arango_get_database_resolution - Show database resolution algorithm

Core Data Operations (7 tools)

  • arango_query - Execute AQL queries
  • arango_list_collections - List all collections
  • arango_insert - Insert documents
  • arango_update - Update documents
  • arango_remove - Remove documents
  • arango_create_collection - Create collections
  • arango_backup - Backup collections

Index Management (3 tools)

  • arango_list_indexes - List indexes
  • arango_create_index - Create indexes
  • arango_delete_index - Delete indexes

Query Analysis (3 tools)

  • arango_explain_query - Explain query execution plan
  • arango_query_builder - Build AQL queries
  • arango_query_profile - Profile query performance

Data Validation (4 tools)

  • arango_validate_references - Validate document references
  • arango_insert_with_validation - Insert with validation
  • arango_create_schema - Create JSON schemas
  • arango_validate_document - Validate against schema

Bulk Operations (2 tools)

  • arango_bulk_insert - Bulk insert documents
  • arango_bulk_update - Bulk update documents

Graph Management (7 tools)

  • arango_create_graph - Create named graphs
  • arango_list_graphs - List all graphs
  • arango_add_vertex_collection - Add vertex collections
  • arango_add_edge_definition - Add edge definitions
  • arango_add_vertex - Add vertices
  • arango_add_edge - Add edges
  • arango_graph_traversal - Traverse graphs

Graph Traversal (2 tools)

  • arango_traverse - Graph traversal
  • arango_shortest_path - Find shortest paths

Graph Backup/Restore (5 tools)

  • arango_backup_graph - Backup single graph
  • arango_restore_graph - Restore single graph
  • arango_backup_named_graphs - Backup all named graphs
  • arango_validate_graph_integrity - Validate graph integrity
  • arango_graph_statistics - Graph statistics

Health & Status (1 tool)

  • arango_database_status - Get comprehensive status of all databases

Tool Aliases (2 tools)

  • arango_graph_traversal - Alias for arango_traverse
  • arango_add_vertex - Alias for arango_insert

MCP Design Pattern Tools (8 tools)

  • arango_search_tools - Search for tools by keywords
  • arango_list_tools_by_category - List tools by category
  • arango_switch_workflow - Switch workflow context
  • arango_get_active_workflow - Get active workflow
  • arango_list_workflows - List all workflows
  • arango_advance_workflow_stage - Advance workflow stage
  • arango_get_tool_usage_stats - Get tool usage statistics
  • arango_unload_tools - Unload specific tools

๐Ÿ“– Complete tools reference: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/tools-reference.md

๐Ÿ“– MCP Design Patterns Guide: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/mcp-design-patterns.md


Use Case Example: Codebase Graph Analysis

Model your codebase as a graph to analyze dependencies, find circular references, and understand architecture. Here is an excert from the longer codebase analysis example:

# 1. Create graph structure
Ask Claude: "Create a graph called 'codebase' with vertex collections 'modules' and  functions', and edge collection 'calls' connecting functions"

# 2. Import codebase data
Ask Claude: "Insert these modules into the 'modules' collection: [...]"

# 3. Analyze dependencies
Ask Claude: "Find all functions that depend on the 'auth' module using graph traversal"

# 4. Detect circular dependencies
Ask Claude: "Check for circular dependencies in the codebase graph"

# 5. Generate architecture diagram
Ask Claude: "Export the codebase graph structure as Markdown for visualization"

๐Ÿ“– More examples


Documentation

Getting Started

Configuration

User Guide

Developer Guide

Examples

๐Ÿ“– Full documentation: https://github.com/PCfVW/mcp-arango-async/tree/master/docs


Troubleshooting

Common Issues

Database connection fails:

# Check ArangoDB is running
docker ps | grep arangodb

# Test connection
curl http://localhost:8529/_api/version

# Check credentials
maa health

Server won't start in Claude Desktop:

# Verify Python installation
python --version  # Must be 3.11+

# Test module directly
maa health

# Check Claude Desktop logs
# Windows: %APPDATA%\Claude\logs\
# macOS: ~/Library/Logs/Claude/

Tool execution errors:

  • Verify ArangoDB is healthy: docker compose ps
  • Check environment variables are set correctly
  • Review server logs for detailed error messages

๐Ÿ“– Complete troubleshooting guide


Why Docker for ArangoDB?

โœ… Stability - Isolated environment, no host conflicts
โœ… Zero-install - Start/stop with docker compose
โœ… Reproducibility - Same image across all environments
โœ… Health checks - Built-in readiness validation
โœ… Fast reset - Recreate clean instances easily
โœ… Portability - Consistent on Windows/macOS/Linux


License

  • This project: Apache License 2.0
  • ArangoDB 3.11: Apache License 2.0
  • ArangoDB 3.12+: Business Source License 1.1 (BUSL-1.1)

โš ๏ธ Important: This repository does not grant rights to ArangoDB binaries. You must comply with ArangoDB's license for your deployment version.

๐Ÿ“– License details


Contributing

Contributions are welcome! Please see our documentation for guidelines.

๐Ÿ“– Architecture decisions


Support


Acknowledgments

Built with:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_arangodb_async-0.5.0.tar.gz (250.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_arangodb_async-0.5.0-py3-none-any.whl (94.8 kB view details)

Uploaded Python 3

File details

Details for the file mcp_arangodb_async-0.5.0.tar.gz.

File metadata

  • Download URL: mcp_arangodb_async-0.5.0.tar.gz
  • Upload date:
  • Size: 250.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mcp_arangodb_async-0.5.0.tar.gz
Algorithm Hash digest
SHA256 c627c81a17baab73d28be2aead5afdb0a8df0a6f2f074923ddc346ed2fce464b
MD5 1716a411bed8ba4e5426b87f5dc0fb85
BLAKE2b-256 afb10f4e2b6c758bf47be1e0978478f284c8d40403d515e96f0ff7cf3d49bf6c

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_arangodb_async-0.5.0.tar.gz:

Publisher: publish-new-mcp-arangodb-async-to-pypi.yml on PCfVW/mcp-arangodb-async

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mcp_arangodb_async-0.5.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_arangodb_async-0.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ff90b793ba2edaeb0dff90b375164619d2a789c8ed88058140009a0d2fc2f00
MD5 8b0a323922b60cd5c61a49ee33ee7dd8
BLAKE2b-256 13445dcf0528372c86e8608839dbed7fb2478a58a88098f29a8c86d6a1370b25

See more details on using hashes here.

Provenance

The following attestation bundles were made for mcp_arangodb_async-0.5.0-py3-none-any.whl:

Publisher: publish-new-mcp-arangodb-async-to-pypi.yml on PCfVW/mcp-arangodb-async

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page