MCP server for ArangoDB
47
An [MCP] server that lets AI assistants such as Cursor and Claude Desktop query ArangoDB: run AQL, read documents, and explore schemas.
Tools: execute-aql-query, read-documents-with-filter, fetch-schemas, get-aql-manual
The MCP client starts the container itself, so no network port is opened and no token is needed. Add this to your client config (e.g. ~/.cursor/mcp.json):
{
"mcpServers": {
"arangodb": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "ARANGO_HOSTS=https://your-arangodb:8529",
"-e", "ARANGO_USERNAME=your_user",
"-e", "ARANGO_PASSWORD=your_password",
"-e", "ARANGO_DEFAULT_DB_NAME=your_db",
"ppidadi21/arangodb-mcp-server:1.1.0-rc1"
]
}
}
}
To keep the password out of the config, put the variables in an env file and use "--env-file", "/path/to/arangodb.env" instead of the -e lines.
Run one server that several clients connect to by URL. Each client sends its own ArangoDB token, and queries run with that user's permissions.
docker run -d --name arangodb-mcp -p 8080:8080 \
-e MCP_TRANSPORT=http \
-e MCP_REQUIRE_AUTH=true \
-e MCP_ALLOWED_HOSTS=mcp.example.com \
-e ARANGO_HOSTS=https://your-arangodb:8529 \
-e ARANGO_USERNAME=your_service_user \
-e ARANGO_PASSWORD=your_password \
-e ARANGO_DEFAULT_DB_NAME=your_db \
ppidadi21/arangodb-mcp-server:1.1.0-rc1
Client config:
{
"mcpServers": {
"arangodb": {
"url": "https://mcp.example.com/",
"headers": { "Authorization": "Bearer <ArangoDB JWT>" }
}
}
}
Get a token with POST /_open/auth on your ArangoDB deployment ({"username": "...", "password": "..."}). Tokens expire after about an hour.
HTTP mode requires MCP_REQUIRE_AUTH=true when it listens on a network interface, which is always the case in Docker. For use without a token, choose the stdio setup above.
| Variable | Default | Description |
|---|---|---|
ARANGO_HOSTS | required | ArangoDB URL, e.g. https://your-arangodb:8529 |
ARANGO_USERNAME | required | ArangoDB user (use a dedicated, least-privileged user) |
ARANGO_PASSWORD | required | Password or ArangoDB access token |
ARANGO_DEFAULT_DB_NAME | required | Default database, e.g. _system |
ARANGO_AUTH_METHOD | basic | jwt for the ArangoDB Platform (behind its login gateway) |
ARANGO_VERIFY_SSL | false | true to verify the server certificate (requires ARANGO_SSL_CERT_PATH) |
ARANGO_SSL_CERT_PATH | CA certificate inside the container. For publicly trusted certificates use /etc/ssl/certs/ca-certificates.crt; for your own CA, mount the file with -v | |
MCP_TRANSPORT | stdio | stdio or http |
MCP_REQUIRE_AUTH | false | Required (true) for HTTP mode on a network interface |
FASTMCP_PORT | 8080 | HTTP port |
MCP_ALLOWED_HOSTS | localhost:*,127.0.0.1:* | Host names clients use to reach the server, e.g. mcp.example.com |
ARANGO_AUTH_METHOD=jwt.MCP_ALLOWED_HOSTS.emptyDir at /tmp.GET /health returns 200 when ArangoDB is reachable (HTTP mode).1.1.0-rc1: release candidate (stdio and streamable HTTP, JWT authentication, per-user tokens)Content type
Image
Digest
sha256:219f57929…
Size
60.1 MB
Last updated
1 day ago
docker pull ppidadi21/arangodb-mcp-server:1.1.0-rc1