ArangoDB

by lucas-deangelis

4 stars
256 downloads
Not rated
GitHub

About

Integrates ArangoDB databases into workflows, enabling dynamic querying and analysis of document-oriented and graph data via AQL and document retrieval.

Details

Author
lucas-deangelis
Repository
lucas-deangelis/arango-mcp-server
GitHub stars
4
Downloads
256
License
MIT License
Categories
Productivity, Developer Tools, Design, Workplace, File Management, AI, Search, Frontend, Database, Other
Tags
#integration

- Execute read-only AQL queries via readQuery
- Execute any AQL query (read/write) via readWriteQuery
- List all databases on the ArangoDB server with listDatabases
- List all collections in a given database with listCollections

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name ArangoDB
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 arango-mcp-server
    • Argument 3 http://localhost:8529
    • Argument 4 root
    • Argument 5 root

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

To connect to an arangodb instance running on localhost:2434, to the database "account", add the following to your claude_desktop_config.json, assuming the path to this project is /home/yourcoolname/arango-mcp-server:

{
  "mcpServers": {
    "arangodb-account": {
      "command": "npx",
      "args": [
        "-y",
        "arango-mcp-server",
        "http://localhost:8529",
        "root",
        "root"
      ]
    }
  }
}

readQuery

Execute read-only query on the database. Input: databaseName (string): The database to query, aql (string): The read-only AQL query to execute. Returns: Query results as array of objects.

readWriteQuery

Execute query on the database. Input: databaseName (string): The database to query, aql (string): The AQL query to execute. Returns: Query results as array of objects.

listDatabases

List all the databases on the ArangoDB server. Returns: Array of the databases names.

listCollections

List all the collections in an ArangoDB database. Input: databaseName (string): The name of the database. Returns: Array of objects { "name": "<collectionName>" }.

Query Tools

- readQuery
- Execute read-only query on the database
- Input:
- databaseName (string): The database to query
- aql (string): The read-only AQL query to execute
- Returns: Query results as array of objects
- readWriteQuery
- Execute query on the database
- Input:
- databaseName (string): The database to query
- aql (string): The AQL query to execute
- Returns: Query results as array of objects
- listDatabases
- List all the databases on the ArangoDB server
- Returns: Array of the databases names
- listCollections
- List all the collections in an ArangoDB database
- Input:
- databaseName (string): The name of the database
- Returns: Array of objects { "name": "<collectionName>" }

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "arangodb": {
            "cwd": "/home/yourcoolname/arango-mcp-server",
            "env": {},
            "args": [
                "-y",
                "arango-mcp-server",
                "http://localhost:8529",
                "root",
                "root"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "cwd": "/home/yourcoolname/arango-mcp-server",
    "env": [],
    "args": [
        "-y",
        "arango-mcp-server",
        "http://localhost:8529",
        "root",
        "root"
    ],
    "command": "npx"
}

Macos

{
    "cwd": "/home/yourcoolname/arango-mcp-server",
    "env": [],
    "args": [
        "-y",
        "arango-mcp-server",
        "http://localhost:8529",
        "root",
        "root"
    ],
    "command": "npx"
}

Windows

{
    "cwd": "C:\\path\\to\\arango-mcp-server",
    "env": [],
    "args": [
        "/c",
        "npx",
        "-y",
        "arango-mcp-server",
        "http://localhost:8529",
        "root",
        "root"
    ],
    "command": "cmd"
}

ArangoDB MCP Server

This is an implementation of the Model Context Protocol for ArangoDB.

Overview

To be filled.

Components

Resources

Tools

Query Tools

- readQuery
- Execute read-only query on the database
- Input:
- databaseName (string): The database to query
- aql (string): The read-only AQL query to execute
- Returns: Query results as array of objects
- readWriteQuery
- Execute query on the database
- Input:
- databaseName (string): The database to query
- aql (string): The AQL query to execute
- Returns: Query results as array of objects
- listDatabases
- List all the databases on the ArangoDB server
- Returns: Array of the databases names
- listCollections
- List all the collections in an ArangoDB database
- Input:
- databaseName (string): The name of the database
- Returns: Array of objects { "name": "<collectionName>" }

Usage

To connect to an arangodb instance running on localhost:2434, to the database "account", add the following to your claude_desktop_config.json, assuming the path to this project is /home/yourcoolname/arango-mcp-server:

{
  "mcpServers": {
    "arangodb-account": {
      "command": "npx",
      "args": [
        "-y",
        "arango-mcp-server",
        "http://localhost:8529",
        "root",
        "root"
      ]
    }
  }
}

Development

Clone the repository.
Install everything.
Setup the dev environment.
Run the watcher.
Edit index.ts.

$ npm install
$ npm run dev:setup
$ npm run dev

Go to http://localhost:5173/ to see the inspector.

Todo

- [ ] Properly study the spec to see if the current implementation of resources actually make sense (I don't think it does)
- [x] The resource templates make sense
- [ ] Change all the "arango" to "arangodb" (repo name included...)
- [ ] Add back the arangodb password
- [ ] Proper README
- [ ] Tools/resource/etc following the format of the official anthropic stuff
- [ ] Figure out notifications
- [ ] Health checks
- [ ] More tools?
- [ ] Access all the databases running on an arangodb instance
- [ ] Release on npm somehow so it can be used with npx
- [ ] resources/subscribe and notifications/resources/list_changed and resources/unsubscribe
- [x] Properly document tools in the readme
- [x] Like on the SQLite MCP client
- [x] write_query tool separated from read_query -> actually is readWriteQuery
- [x] list_collections (see list_tables)
- [x] Client pool ie one client per database
- [x] Dev environment
- [x] resources/read with a template to read any document by database name, collection, id.
- [x] Add username and passwords as parameters of the command

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.