{
  "name": "arangodb",
  "display_name": "ArangoDB",
  "description": "MCP Server that provides database interaction capabilities through [ArangoDB](https://arangodb.com/).",
  "repository": {
    "type": "git",
    "url": "https://github.com/ravenwits/mcp-server-arangodb"
  },
  "homepage": "https://github.com/ravenwits/mcp-server-arangodb",
  "author": {
    "name": "ravenwits"
  },
  "license": "MIT",
  "categories": [
    "Databases"
  ],
  "tags": [
    "ArangoDB",
    "TypeScript"
  ],
  "installations": {
    "npm": {
      "type": "npm",
      "command": "npx",
      "args": [
        "-y",
        "https://github.com/ravenwits/mcp-server-arangodb"
      ],
      "description": "Run with npx (requires npm install)",
      "env": {
        "ARANGO_URL": "${ARANGO_URL}",
        "ARANGO_DATABASE": "${ARANGO_DATABASE}",
        "ARANGO_USERNAME": "${ARANGO_USERNAME}",
        "ARANGO_PASSWORD": "${ARANGO_PASSWORD}"
      }
    }
  },
  "examples": [
    {
      "title": "List all collections",
      "description": "Query to list all collections in the database.",
      "prompt": "{}"
    },
    {
      "title": "Insert a new document",
      "description": "Insert a new document into the 'users' collection.",
      "prompt": "{\"collection\": \"users\", \"document\": {\"name\": \"John Doe\", \"email\": \"john@example.com\"}}"
    },
    {
      "title": "Update a document",
      "description": "Update a document in the 'users' collection by key.",
      "prompt": "{\"collection\": \"users\", \"key\": \"123456\", \"update\": {\"name\": \"Jane Doe\"}}"
    },
    {
      "title": "Remove a document",
      "description": "Remove a document from the 'users' collection by key.",
      "prompt": "{\"collection\": \"users\", \"key\": \"123456\"}}"
    },
    {
      "title": "Backup database collections",
      "description": "Backup collections to a specified directory.",
      "prompt": "{\"outputDir\": \"./backup\"}"
    }
  ],
  "arguments": {
    "ARANGO_URL": {
      "description": "ArangoDB server URL (note: 8529 is the default port for ArangoDB for local development)",
      "required": true
    },
    "ARANGO_DATABASE": {
      "description": "Database name",
      "required": true
    },
    "ARANGO_USERNAME": {
      "description": "Database user",
      "required": true
    },
    "ARANGO_PASSWORD": {
      "description": "Database password",
      "required": true
    }
  },
  "tools": [
    {
      "name": "arango_query",
      "description": "Execute an AQL query",
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "AQL query string"
          },
          "bindVars": {
            "type": "object",
            "description": "Query bind variables",
            "additionalProperties": true
          }
        },
        "required": [
          "query"
        ]
      }
    },
    {
      "name": "arango_insert",
      "description": "Insert a document into a collection",
      "inputSchema": {
        "type": "object",
        "properties": {
          "collection": {
            "type": "string",
            "description": "Collection name"
          },
          "document": {
            "type": "object",
            "description": "Document to insert",
            "additionalProperties": true
          }
        },
        "required": [
          "collection",
          "document"
        ]
      }
    },
    {
      "name": "arango_update",
      "description": "Update a document in a collection",
      "inputSchema": {
        "type": "object",
        "properties": {
          "collection": {
            "type": "string",
            "description": "Collection name"
          },
          "key": {
            "type": "string",
            "description": "Document key"
          },
          "update": {
            "type": "object",
            "description": "Update object",
            "additionalProperties": true
          }
        },
        "required": [
          "collection",
          "key",
          "update"
        ]
      }
    },
    {
      "name": "arango_remove",
      "description": "Remove a document from a collection",
      "inputSchema": {
        "type": "object",
        "properties": {
          "collection": {
            "type": "string",
            "description": "Collection name"
          },
          "key": {
            "type": "string",
            "description": "Document key"
          }
        },
        "required": [
          "collection",
          "key"
        ]
      }
    },
    {
      "name": "arango_backup",
      "description": "Backup collections to JSON files.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "outputDir": {
            "type": "string",
            "description": "An absolute directory path to store backup files",
            "default": "./backup",
            "optional": true
          },
          "collection": {
            "type": "string",
            "description": "Collection name to backup. If not provided, backs up all collections.",
            "optional": true
          },
          "docLimit": {
            "type": "integer",
            "description": "Limit the number of documents to backup. If not provided, backs up all documents.",
            "optional": true
          }
        },
        "required": [
          "outputDir"
        ]
      }
    },
    {
      "name": "arango_list_collections",
      "description": "List all collections in the database",
      "inputSchema": {
        "type": "object",
        "properties": {}
      }
    },
    {
      "name": "arango_create_collection",
      "description": "Create a new collection in the database",
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of the collection to create"
          },
          "type": {
            "type": {
              "2": "DOCUMENT_COLLECTION",
              "3": "EDGE_COLLECTION",
              "DOCUMENT_COLLECTION": 2,
              "EDGE_COLLECTION": 3
            },
            "description": "Type of collection to create",
            "default": 2
          },
          "waitForSync": {
            "type": "boolean",
            "description": "If true, wait for data to be synchronized to disk before returning",
            "default": false
          }
        },
        "required": [
          "name"
        ]
      }
    }
  ]
}