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-stdio.md
π§ Installation: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/getting-started/installation.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
β 43 MCP Tools - Complete ArangoDB operations (queries, collections, indexes, graphs) β 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) β
β β β β’ 43 Tools β β β’ Multi-Model β
β β β β’ Graph Mgmt β β β’ Graph Engine β
β β β β’ MCP Patterns β β β’ AQL Engine β
ββββββββββββββββββββββ βββββββββββββββββββββββ ββββββββββββββββββββ
- Python 3.11+
- Docker Desktop (for ArangoDB)
# Install from PyPI
pip install mcp-arangodb-async
# Start ArangoDB
docker run -d \
--name arangodb \
-p 8529:8529 \
-e ARANGO_ROOT_PASSWORD=changeme \
arangodb:3.11
# Verify installation
python -m mcp_arangodb_async --healthExpected output:
{"status": "healthy", "database_connected": true, "database_info": {"version": "3.11.x", "name": "mcp_arangodb_test"}}π Detailed installation guide: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/getting-started/installation.md
1. Configure Claude Desktop
Edit %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/.config/Claude/claude_desktop_config.json (macOS/Linux):
{
"mcpServers": {
"arangodb": {
"command": "python",
"args": ["-m", "mcp_arangodb_async", "server"],
"env": {
"ARANGO_URL": "http://localhost:8529",
"ARANGO_DB": "mcp_arangodb_test",
"ARANGO_USERNAME": "mcp_arangodb_user",
"ARANGO_PASSWORD": "mcp_arangodb_password"
}
}
}
}2. Restart Claude Desktop
3. Test the connection:
Ask Claude: "List all collections in the ArangoDB database"
π Full stdio quickstart: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/getting-started/quickstart-stdio.md
1. Build the Docker image:
docker build -t mcp-arangodb-async:latest .2. Configure Claude Desktop:
Edit %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/.config/Claude/claude_desktop_config.json (macOS/Linux):
{
"mcpServers": {
"arangodb": {
"command": "docker",
"args": ["run", "-i", "--rm", "mcp-arangodb-async:latest"],
"env": {
"ARANGO_URL": "http://host.docker.internal:8529",
"ARANGO_DB": "mcp_arangodb_test",
"ARANGO_USERNAME": "mcp_arangodb_user",
"ARANGO_PASSWORD": "mcp_arangodb_password"
}
}
}
}3. Restart Claude Desktop
π Transport configuration guide: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/configuration/transport-configuration.md
1. Start HTTP server:
python -m mcp_arangodb_async --transport http --host 0.0.0.0 --port 80002. Test health endpoint:
curl http://localhost:8000/health3. Connect from web client:
import { MCPClient } from '@modelcontextprotocol/sdk';
const client = new MCPClient({
transport: 'http',
url: 'http://localhost:8000/mcp'
});
await client.connect();
const tools = await client.listTools();π HTTP transport guide: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/developer-guide/http-transport.md
Required:
ARANGO_URL=http://localhost:8529
ARANGO_DB=mcp_arangodb_test
ARANGO_USERNAME=root
ARANGO_PASSWORD=changemeOptional:
# Transport configuration
MCP_TRANSPORT=stdio # stdio or http
MCP_HTTP_HOST=0.0.0.0 # HTTP bind address
MCP_HTTP_PORT=8000 # HTTP port
MCP_HTTP_STATELESS=false # Stateless mode
# Connection tuning
ARANGO_TIMEOUT_SEC=30.0 # Request timeout
ARANGO_CONNECT_RETRIES=3 # Connection retries
ARANGO_CONNECT_DELAY_SEC=1.0 # Retry delay
# Logging
LOG_LEVEL=INFO # DEBUG, INFO, WARNING, ERRORπ Complete configuration reference: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/configuration/environment-variables.md
The server exposes 43 MCP tools organized into 10 categories:
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 integrity
arango_graph_statistics- Graph statisticsarango_database_status- Database status
arango_search_tools- Search for tools by keywordsarango_list_tools_by_category- List tools by categoryarango_switch_context- Switch workflow contextarango_get_active_context- Get active contextarango_list_contexts- List all contextsarango_advance_workflow_stage- Advance workflow stagearango_get_tool_usage_stats- Get tool usage statisticsarango_unload_tools- Unload specific toolsarango_graph_traversal- Alias for arango_traverse
π 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:
# 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: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/examples/codebase-analysis.md
π 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
python -m mcp_arangodb_async --healthServer won't start in Claude Desktop:
# Verify Python installation
python --version # Must be 3.11+
# Test module directly
python -m mcp_arangodb_async --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: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/troubleshooting.md
β
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: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/getting-started/installation.md#arangodb-licensing
Contributions are welcome! Please see our documentation for guidelines.
π Architecture decisions: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/developer-guide/low-level-mcp-rationale.md
- Issues: https://github.com/PCfVW/mcp-arango-async/issues
- Discussions: https://github.com/PCfVW/mcp-arango-async/discussions
- Documentation: https://github.com/PCfVW/mcp-arango-async/tree/master/docs
Built with:
- Model Context Protocol by Anthropic
- python-arango - Official ArangoDB Python driver
- Pydantic - Data validation
- Starlette - HTTP transport
- ArangoDB - Multi-model database