Sign inSign up

ppidadi21/arangodb-mcp-server

By ppidadi21

•Updated 1 day ago

MCP server for ArangoDB

Image
Databases & storage
0

47

ppidadi21/arangodb-mcp-server repository overview

⁠ArangoDB MCP Server

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

⁠Quick start: local use (stdio)

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.

⁠Quick start: shared server (HTTP)

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.

⁠Configuration

VariableDefaultDescription
ARANGO_HOSTSrequiredArangoDB URL, e.g. https://your-arangodb:8529
ARANGO_USERNAMErequiredArangoDB user (use a dedicated, least-privileged user)
ARANGO_PASSWORDrequiredPassword or ArangoDB access token
ARANGO_DEFAULT_DB_NAMErequiredDefault database, e.g. _system
ARANGO_AUTH_METHODbasicjwt for the ArangoDB Platform (behind its login gateway)
ARANGO_VERIFY_SSLfalsetrue to verify the server certificate (requires ARANGO_SSL_CERT_PATH)
ARANGO_SSL_CERT_PATHCA 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_TRANSPORTstdiostdio or http
MCP_REQUIRE_AUTHfalseRequired (true) for HTTP mode on a network interface
FASTMCP_PORT8080HTTP port
MCP_ALLOWED_HOSTSlocalhost:*,127.0.0.1:*Host names clients use to reach the server, e.g. mcp.example.com

⁠Notes

  • ArangoDB Platform: set ARANGO_AUTH_METHOD=jwt.
  • HTTPS: the server speaks plain HTTP; put it behind a TLS-terminating proxy or gateway for remote access, and add the public host name to MCP_ALLOWED_HOSTS.
  • Kubernetes with a read-only root filesystem: mount a writable emptyDir at /tmp.
  • Health check: GET /health returns 200 when ArangoDB is reachable (HTTP mode).

⁠Tags

  • 1.1.0-rc1: release candidate (stdio and streamable HTTP, JWT authentication, per-user tokens)

Tag summary

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