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.
π 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
β 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
ββββββββββββββββββββββ βββββββββββββββββββββββ ββββββββββββββββββββ
β MCP Client β β ArangoDB MCP β β ArangoDB β
β (Claude, Augment) βββββββΆβ Server (Python) βββββββΆβ (Docker) β
β β β β’ 46 Tools β β β’ Multi-Model β
β β β β’ Multi-Tenancy β β β’ Graph Engine β
β β β β’ Graph Mgmt β β β’ AQL Engine β
β β β β’ MCP Patterns β β β
ββββββββββββββββββββββ βββββββββββββββββββββββ ββββββββββββββββββββ
- Docker and Docker Compose installed
- Python 3.11+ (for mcp-arangodb-async)
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: localCreate 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_passwordStart ArangoDB:
docker compose --env-file .env up -dInstall the MCP server package:
pip install mcp-arangodb-asyncAlternative: 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-asyncAlternative: Install with uv
# Create environment and install
uv venv .venv --python 3.11
uv pip install mcp-arangodb-asyncCreate 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 .envExpected 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 healthExpected output:
{"status": "healthy", "database_connected": true, "database_info": {"version": "3.11.x", "name": "mcp_arangodb_test"}}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.
The server exposes 46 MCP tools organized into 11 categories:
arango_set_focused_database- Set focused database for sessionarango_get_focused_database- Get currently focused databasearango_list_available_databases- List all configured databasesarango_get_database_resolution- Show database resolution algorithm
arango_query- Execute AQL queriesarango_list_collections- List all collectionsarango_insert- Insert documentsarango_update- Update documentsarango_remove- Remove documentsarango_create_collection- Create collectionsarango_backup- Backup collections
arango_list_indexes- List indexesarango_create_index- Create indexesarango_delete_index- Delete indexes
arango_explain_query- Explain query execution planarango_query_builder- Build AQL queriesarango_query_profile- Profile query performance
arango_validate_references- Validate document referencesarango_insert_with_validation- Insert with validationarango_create_schema- Create JSON schemasarango_validate_document- Validate against schema
arango_bulk_insert- Bulk insert documentsarango_bulk_update- Bulk update documents
arango_create_graph- Create named graphsarango_list_graphs- List all graphsarango_add_vertex_collection- Add vertex collectionsarango_add_edge_definition- Add edge definitionsarango_add_vertex- Add verticesarango_add_edge- Add edgesarango_graph_traversal- Traverse graphs
arango_traverse- Graph traversalarango_shortest_path- Find shortest paths
arango_backup_graph- Backup single grapharango_restore_graph- Restore single grapharango_backup_named_graphs- Backup all named graphsarango_validate_graph_integrity- Validate graph integrityarango_graph_statistics- Graph statistics
arango_database_status- Get comprehensive status of all databases
arango_graph_traversal- Alias for arango_traversearango_add_vertex- Alias for arango_insert
arango_search_tools- Search for tools by keywordsarango_list_tools_by_category- List tools by categoryarango_switch_workflow- Switch workflow contextarango_get_active_workflow- Get active workflowarango_list_workflows- List all workflowsarango_advance_workflow_stage- Advance workflow stagearango_get_tool_usage_stats- Get tool usage statisticsarango_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
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
π Full documentation: https://github.com/PCfVW/mcp-arango-async/tree/master/docs
Database connection fails:
# Check ArangoDB is running
docker ps | grep arangodb
# Test connection
curl http://localhost:8529/_api/version
# Check credentials
maa healthServer 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
β
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
- This project: Apache License 2.0
- ArangoDB 3.11: Apache License 2.0
- ArangoDB 3.12+: Business Source License 1.1 (BUSL-1.1)
π License details
Contributions are welcome! Please see our documentation for guidelines.
Built with:
- Model Context Protocol by Anthropic
- python-arango - Official ArangoDB Python driver
- Pydantic - Data validation
- Starlette - HTTP transport
- ArangoDB - Multi-model database