arango_queryLABSCO SUMMARY
An ArangoDB session that survives being asked vague questions.
Describing the database and sampling documents come before querying, so a model that has never seen your schema can find it rather than invent it. The read-only query path and the confirm flag on dropping a collection are where that exploration stops short of damage.
What it is
A full working surface for one ArangoDB database: AQL execution with a read-only mode, document CRUD in bulk, collection and index management, graph traversal, and ArangoSearch views and analyzers.
What you get
- AQL with bind variables and bounded results, plus a read-only variant that rejects writes and DDL
- Query validation and execution plans, so a query can be checked before it runs
- Database discovery — collections, counts, indexes and sample fields in one summary
- Documents by key, listed with limit and offset, counted, or randomly sampled to learn a schema
- Writes one at a time, or up to 1000 documents per bulk insert or bulk update
- Collections created and dropped, the drop requiring an explicit confirm
- Indexes: persistent, geo, TTL and inverted
- Graphs, edges, traversal and shortest path
- ArangoSearch views, analyzers and search, plus a database backup
Requirements
A reachable ArangoDB instance and credentials for the database you point it at. It runs as a TypeScript server launched from your MCP client config.
Setup effort
One command plus credentials — npm install -g arango-server, then supply credentials
USE CASES
Getting oriented in a database you did not design
Summarise the collections and sample a few documents to learn the shape before writing a query.
Answering a question without risking a write
Run it through the read-only path so a stray update cannot get through.
Fixing a slow query
Validate it, read the execution plan, and see which index it is actually using.
Loading a dataset
Create the collection, then push documents up to a thousand at a time instead of one per call.
Following relationships through the data
Traverse the graph from a starting vertex, or ask for the shortest path between two.
Standing up full-text search over a collection
Create the analyzer and the search view, then query through it.
31 tools
Listed in project docs. Your client may show a different list.
arango_read_queryarango_validate_queryarango_explain_queryarango_describe_databasearango_list_collectionsarango_get_collectionarango_create_collectionarango_drop_collectionarango_get_documentarango_list_documentsarango_count_documentsarango_sample_documentsarango_insertarango_bulk_insertarango_updatearango_bulk_updatearango_removearango_list_indexesarango_create_indexarango_list_viewsarango_create_search_viewarango_searcharango_list_analyzersarango_create_analyzerarango_list_graphsarango_create_grapharango_insert_edgearango_traversearango_shortest_patharango_backupBEFORE YOU INSTALL
What to know first
Tools you get
31 tools named in the project's documentation.
Requires
- npx on PATH
- ARANGO_PASSWORD in your environment
- ARANGO_URL in your environment
- ARANGO_DB in your environment
- ARANGO_USERNAME in your environment
Where it runs
All 4 documented clients run the server on your machine.
INSTALLATION
Connect your client
Server setup
npm install -g arango-serverMCP Clients
VS Code
{
"servers": {
"arango-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"arango-server"
],
"env": {
"ARANGO_URL": "http://localhost:8529",
"ARANGO_DB": "<YOUR_ARANGO_DB>",
"ARANGO_USERNAME": "<YOUR_ARANGO_USERNAME>",
"ARANGO_PASSWORD": "<YOUR_ARANGO_PASSWORD>"
}
}
}
}OpenCode
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"arango": {
"type": "local",
"command": [
"npx",
"-y",
"arango-server"
],
"enabled": true,
"environment": {
"ARANGO_URL": "<YOUR_ARANGO_URL>",
"ARANGO_DB": "<YOUR_ARANGO_DB>",
"ARANGO_USERNAME": "<YOUR_ARANGO_USERNAME>",
"ARANGO_PASSWORD": "<YOUR_ARANGO_PASSWORD>"
}
}
}
}Cline, Warp
{
"mcpServers": {
"arango": {
"command": "npx",
"args": [
"-y",
"arango-server"
],
"env": {
"ARANGO_URL": "<YOUR_ARANGO_URL>",
"ARANGO_DB": "<YOUR_ARANGO_DB>",
"ARANGO_USERNAME": "<YOUR_ARANGO_USERNAME>",
"ARANGO_PASSWORD": "<YOUR_ARANGO_PASSWORD>"
}
}
}
}