mcp-arangodb-async
Provides tools for interacting with ArangoDB, enabling AI agents to manage collections, execute AQL queries, perform graph operations, backup/restore data, and analyze query performance.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-arangodb-asyncquery for active users in the 'orders' collection"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ArangoDB MCP Server for Python
A production-ready Model Context Protocol (MCP) server exposing advanced ArangoDB operations to AI assistants like Claude Desktop and Augment Code. Features async-first Python architecture, comprehensive graph management, flexible content conversion (JSON, Markdown, YAML, Table), backup/restore functionality, and analytics capabilities.
Quick Links
π Documentation: https://github.com/PCfVW/mcp-arango-async/tree/master/docs
π Quick Start: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/getting-started/quickstart.md
π§ ArangoDB Setup: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/getting-started/install-arangodb.md
ποΈ Multi-Tenancy Guide: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/multi-tenancy-guide.md
βοΈ CLI Reference: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/cli-reference.md
π Tools Reference: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/tools-reference.md
π― MCP Design Patterns: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/mcp-design-patterns.md
π Changelog: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/developer-guide/changelog.md
π Issues: https://github.com/PCfVW/mcp-arango-async/issues
Related MCP server: production-grade-mcp-agentic-system
Features
β 46 MCP Tools - Complete ArangoDB operations (queries, collections, indexes, graphs)
β Multi-Tenancy - Work with multiple databases, environment switching, cross-database operations
β MCP Design Patterns - Progressive discovery, context switching, tool unloading (98.7% token savings)
β Graph Management - Create, traverse, backup/restore named graphs
β Content Conversion - JSON, Markdown, YAML, and Table formats
β Backup/Restore - Collection and graph-level backup with validation
β Analytics - Query profiling, explain plans, graph statistics
β Dual Transport - stdio (desktop clients) and HTTP (web/containerized)
β Docker Support - Run in Docker for isolation and reproducibility
β Production-Ready - Retry logic, graceful degradation, comprehensive error handling
β Type-Safe - Pydantic validation for all tool arguments
Architecture
ββββββββββββββββββββββ βββββββββββββββββββββββ ββββββββββββββββββββ
β MCP Client β β ArangoDB MCP β β ArangoDB β
β (Claude, Augment) βββββββΆβ Server (Python) βββββββΆβ (Docker) β
β β β β’ 46 Tools β β β’ Multi-Model β
β β β β’ Multi-Tenancy β β β’ Graph Engine β
β β β β’ Graph Mgmt β β β’ AQL Engine β
β β β β’ MCP Patterns β β β
ββββββββββββββββββββββ βββββββββββββββββββββββ ββββββββββββββββββββGetting Started with ArangoDB
Prerequisites
Docker and Docker Compose installed
Python 3.11+ (for mcp-arangodb-async)
Step 1: Install ArangoDB
Create a docker-compose.yml file:
services:
arangodb:
image: arangodb:3.11
environment:
ARANGO_ROOT_PASSWORD: ${ARANGO_ROOT_PASSWORD:-changeme}
ports:
- "8529:8529"
volumes:
- arangodb_data:/var/lib/arangodb3
- arangodb_apps:/var/lib/arangodb3-apps
healthcheck:
test: arangosh --server.username root --server.password "$ARANGO_ROOT_PASSWORD" --javascript.execute-string "require('@arangodb').db._version()" > /dev/null 2>&1 || exit 1
interval: 5s
timeout: 2s
retries: 30
restart: unless-stopped
volumes:
arangodb_data:
driver: local
arangodb_apps:
driver: localCreate a .env file:
# ArangoDB root password
ARANGO_ROOT_PASSWORD=changeme
# MCP Server connection settings
ARANGO_URL=http://localhost:8529
ARANGO_DB=mcp_arangodb_test
ARANGO_USERNAME=mcp_arangodb_user
ARANGO_PASSWORD=mcp_arangodb_passwordStart ArangoDB:
docker compose --env-file .env up -dStep 2: Install mcp-arangodb-async
Install the MCP server package:
pip install mcp-arangodb-async# Create environment and install
conda create -n mcp-arango python=3.11
conda activate mcp-arango
pip install mcp-arangodb-async
# Or with mamba/micromamba:
# mamba create -n mcp-arango python=3.11
# mamba activate mcp-arango
# pip install mcp-arangodb-async# Create environment and install
uv venv .venv --python 3.11
uv pip install mcp-arangodb-asyncStep 3: Create Database and User
Create the database and user for the MCP server:
maa db add mcp_arangodb_test \
--url http://localhost:8529 \
--with-user mcp_arangodb_user \
--env-file .envExpected output:
The following actions will be performed:
[ADD] Database 'mcp_arangodb_test'
[ADD] User 'mcp_arangodb_user' (active: true)
[GRANT] Permission rw: mcp_arangodb_user β mcp_arangodb_test
Are you sure you want to proceed? [y/N]: y
db add:
[ADDED] Database 'mcp_arangodb_test'
[ADDED] User 'mcp_arangodb_user' (active: true)
[GRANTED] Permission rw: mcp_arangodb_user β mcp_arangodb_testVerify the database connection:
# Set environment variables
export ARANGO_URL=http://localhost:8529
export ARANGO_DB=mcp_arangodb_test
export ARANGO_USERNAME=mcp_arangodb_user
export ARANGO_PASSWORD=mcp_arangodb_password
# Run health check
maa healthExpected output:
{"status": "healthy", "database_connected": true, "database_info": {"version": "3.11.x", "name": "mcp_arangodb_test"}}Step 4: Configure MCP Host
Configure your MCP host to use the server. The configuration includes environment variables for database connection. The location of the configuration file depends on your MCP host. For Claude Desktop, the file is located at:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Configuration:
{
"mcpServers": {
"arangodb": {
"command": "python",
"args": ["-m", "mcp_arangodb_async"],
"env": {
"ARANGO_URL": "http://localhost:8529",
"ARANGO_DB": "mcp_arangodb_test",
"ARANGO_USERNAME": "mcp_arangodb_user",
"ARANGO_PASSWORD": "mcp_arangodb_password"
}
}
}
}If you installed with conda/mamba/micromamba, use the run command:
{
"mcpServers": {
"arangodb": {
"command": "conda",
"args": ["run", "-n", "mcp-arango", "maa", "server"],
"env": {
"ARANGO_URL": "http://localhost:8529",
"ARANGO_DB": "mcp_arangodb_test",
"ARANGO_USERNAME": "mcp_arangodb_user",
"ARANGO_PASSWORD": "mcp_arangodb_password"
}
}
}
}Replace "conda" with "mamba" or "micromamba" if using those tools.
If you installed with uv, use uv run:
{
"mcpServers": {
"arangodb": {
"command": "uv",
"args": ["run", "--directory", "/path/to/project", "maa", "server"],
"env": {
"ARANGO_URL": "http://localhost:8529",
"ARANGO_DB": "mcp_arangodb_test",
"ARANGO_USERNAME": "mcp_arangodb_user",
"ARANGO_PASSWORD": "mcp_arangodb_password"
}
}
}
}Replace /path/to/project with the directory containing your .venv folder.
Restart your MCP client after updating the configuration.
Test the connection:
Ask your MCP client: "List all collections in the ArangoDB database"
The assistant should successfully connect and list your collections.
Available Tools
The server exposes 46 MCP tools organized into 11 categories:
Multi-Tenancy Tools (4 tools)
arango_set_focused_database- Set focused database for sessionarango_get_focused_database- Get currently focused databasearango_list_available_databases- List all configured databasesarango_get_database_resolution- Show database resolution algorithm
Core Data Operations (7 tools)
arango_query- Execute AQL queriesarango_list_collections- List all collectionsarango_insert- Insert documentsarango_update- Update documentsarango_remove- Remove documentsarango_create_collection- Create collectionsarango_backup- Backup collections
Index Management (3 tools)
arango_list_indexes- List indexesarango_create_index- Create indexesarango_delete_index- Delete indexes
Query Analysis (3 tools)
arango_explain_query- Explain query execution planarango_query_builder- Build AQL queriesarango_query_profile- Profile query performance
Data Validation (4 tools)
arango_validate_references- Validate document referencesarango_insert_with_validation- Insert with validationarango_create_schema- Create JSON schemasarango_validate_document- Validate against schema
Bulk Operations (2 tools)
arango_bulk_insert- Bulk insert documentsarango_bulk_update- Bulk update documents
Graph Management (7 tools)
arango_create_graph- Create named graphsarango_list_graphs- List all graphsarango_add_vertex_collection- Add vertex collectionsarango_add_edge_definition- Add edge definitionsarango_add_vertex- Add verticesarango_add_edge- Add edgesarango_graph_traversal- Traverse graphs
Graph Traversal (2 tools)
arango_traverse- Graph traversalarango_shortest_path- Find shortest paths
Graph Backup/Restore (5 tools)
arango_backup_graph- Backup single grapharango_restore_graph- Restore single grapharango_backup_named_graphs- Backup all named graphsarango_validate_graph_integrity- Validate graph integrityarango_graph_statistics- Graph statistics
Health & Status (1 tool)
arango_database_status- Get comprehensive status of all databases
Tool Aliases (2 tools)
arango_graph_traversal- Alias for arango_traversearango_add_vertex- Alias for arango_insert
MCP Design Pattern Tools (8 tools)
arango_search_tools- Search for tools by keywordsarango_list_tools_by_category- List tools by categoryarango_switch_workflow- Switch workflow contextarango_get_active_workflow- Get active workflowarango_list_workflows- List all workflowsarango_advance_workflow_stage- Advance workflow stagearango_get_tool_usage_stats- Get tool usage statisticsarango_unload_tools- Unload specific tools
π Complete tools reference: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/tools-reference.md
π MCP Design Patterns Guide: https://github.com/PCfVW/mcp-arango-async/blob/master/docs/user-guide/mcp-design-patterns.md
Use Case Example: Codebase Graph Analysis
Model your codebase as a graph to analyze dependencies, find circular references, and understand architecture. Here is an excerpt from the longer codebase analysis example:
# 1. Create graph structure
Ask Claude: "Create a graph called 'codebase' with vertex collections 'modules' and 'functions', and edge collection 'calls' connecting functions"
# 2. Import codebase data
Ask Claude: "Insert these modules into the 'modules' collection: [...]"
# 3. Analyze dependencies
Ask Claude: "Find all functions that depend on the 'auth' module using graph traversal"
# 4. Detect circular dependencies
Ask Claude: "Check for circular dependencies in the codebase graph"
# 5. Generate architecture diagram
Ask Claude: "Export the codebase graph structure as Markdown for visualization"π More examples
Documentation
Getting Started
Configuration
User Guide
Developer Guide
Examples
π Full documentation: https://github.com/PCfVW/mcp-arango-async/tree/master/docs
Troubleshooting
Common Issues
Database connection fails:
# Check ArangoDB is running
docker ps | grep arangodb
# Test connection
curl http://localhost:8529/_api/version
# Check credentials
maa healthServer won't start in Claude Desktop:
# Verify Python installation
python --version # Must be 3.11+
# Test module directly
maa health
# Check Claude Desktop logs
# Windows: %APPDATA%\Claude\logs\
# macOS: ~/Library/Logs/Claude/Tool execution errors:
Verify ArangoDB is healthy:
docker compose psCheck environment variables are set correctly
Review server logs for detailed error messages
π Complete troubleshooting guide
Why Docker for ArangoDB?
β
Stability - Isolated environment, no host conflicts
β
Zero-install - Start/stop with docker compose
β
Reproducibility - Same image across all environments
β
Health checks - Built-in readiness validation
β
Fast reset - Recreate clean instances easily
β
Portability - Consistent on Windows/macOS/Linux
License
This project: Apache License 2.0
ArangoDB 3.11: Apache License 2.0
ArangoDB 3.12+: Business Source License 1.1 (BUSL-1.1)
β οΈ Important: This repository does not grant rights to ArangoDB binaries. You must comply with ArangoDB's license for your deployment version.
π License details
Contributing
Contributions are welcome! Please see our documentation for guidelines.
Support
Acknowledgments
Built with:
Model Context Protocol by Anthropic
python-arango - Official ArangoDB Python driver
Pydantic - Data validation
Starlette - HTTP transport
ArangoDB - Multi-model database
Available Tools
46 toolsarango_add_edgeC
Add an edge document between two vertices with optional attributes.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | ||
| from_id | Yes | _from document id, e.g., users/123 | |
| to_id | Yes | _to document id, e.g., orders/456 | |
| attributes | No | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry full burden. It only states it adds an edge, but omits behavioral details like idempotency, error handling, permissions, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise but lacks necessary detail. It's appropriately sized for a simple definition, but under-specification reduces value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 5 parameters, no annotations, no output schema, the description is severely incomplete. Missing details on return value, error conditions, and parameter semantics for collection and database.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Description adds minimal parameter info beyond schema: only 'with optional attributes' is vague. Schema already covers from_id, to_id examples. 60% coverage leaves collection and database undescribed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (add), resource (edge document), and relationship (between two vertices). It distinguishes from siblings like arango_add_vertex and arango_add_edge_definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. No mention of prerequisites (e.g., collection existence, vertex existence) or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_add_edge_definitionC
Create an edge definition in a named graph.
| Name | Required | Description | Default |
|---|---|---|---|
| graph | Yes | ||
| edge_collection | Yes | ||
| from_collections | Yes | ||
| to_collections | Yes | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility for behavioral transparency. It only states 'Create an edge definition' without disclosing potential side effects, mutability, authorization needs, or constraints. The parameter 'Database override' gives minimal context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it concise. However, it lacks structure and could provide more information without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters (4 required) and no output schema, the description is severely incomplete. It does not explain what an edge definition is, how parameters relate, or the outcome of the operation. The agent cannot properly invoke this tool based solely on the description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20% (only 'database' has a description). The tool description adds no parameter explanations. With low coverage, the description should compensate but does not, leaving most parameters undefined.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (create) and resource (edge definition in a named graph). However, it does not differentiate from sibling tools like arango_add_edge, which adds an edge document, not a definition.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites such as the graph needing to exist or that the edge collection must be new.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_add_vertexC
Alias for arango_insert (insert a vertex document into a collection).
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | ||
| document | Yes | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of disclosing behavioral traits. It only states it is an alias, implying identical behavior to arango_insert, but does not elaborate on side effects, permissions, or any other operational details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely short (one sentence) but fails to provide sufficient information. Conciseness is not an excuse for underspecification; it should be more informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, a required nested object, and no output schema, the description is woefully incomplete. It does not explain the structure of the document, required fields, or what the tool returns, leaving the agent with insufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the input schema. The schema has 3 parameters with low description coverage (33% only for 'database'), and the description fails to explain the semantics of 'collection' or 'document', which are required and involve a nested object.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is an alias for arango_insert and specifies the action 'insert a vertex document into a collection.' This verb-resource combination is specific and distinguishes it from sibling tools like arango_add_edge.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description only notes it is an alias for arango_insert, but does not provide any guidance on when to use this tool versus other related tools or alternatives. No contextual or conditional usage information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_add_vertex_collectionC
Add a vertex collection to a named graph.
| Name | Required | Description | Default |
|---|---|---|---|
| graph | Yes | ||
| collection | Yes | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must convey behavioral traits. It does not disclose whether the operation is permanent, requires permissions, or has any side effects on existing graph structures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at one sentence, but it sacrifices detail. It lacks structure but no word is wasted. It could be improved without adding much length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low schema coverage, no output schema, no annotations, and the tool's operation (modifying a graph), the description is completely inadequate. It does not explain return values, error conditions, or prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 33% (only 'database' has a description). The 'graph' and 'collection' parameters lack explanations, and the description does not add any meaning beyond the parameter names. The baseline for low coverage is higher, so this is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action 'add a vertex collection to a named graph,' which is clear but vague. It does not specify whether it creates a new collection or associates an existing one, and it does not differentiate well from sibling tools like arango_create_collection or arango_add_vertex.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as arango_add_vertex or arango_create_graph. There is no mention of prerequisites, contexts, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_advance_workflow_stageB
Advance to the next workflow stage, automatically unloading tools from previous stage and loading tools for new stage. Enables Tool Unloading pattern.
| Name | Required | Description | Default |
|---|---|---|---|
| stage | Yes | Workflow stage to advance to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description discloses automatic unloading/loading of tools, which is good behavioral context. However, it does not mention if the operation is destructive, reversible, or requires specific state (e.g., current stage). Missing details about side effects beyond the provided info.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey the main action and pattern. No wasted words, but the term 'next' could be more precise. The structure is logical, though additional structure (e.g., bullet points) would not hurt.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core functionality and side effects. However, it lacks context on prerequisites (e.g., active workflow), return value, and whether stages can be skipped. Given the simplicity (1 param, no output schema), it is adequate but has gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description for 'stage'. The tool description adds value by explaining the unloading/loading behavior, which is not in the schema. This enhances understanding beyond the parameter definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool advances workflow stages and automatically handles tool unloading/loading. However, it says 'next workflow stage' while the parameter allows specifying any stage, introducing slight ambiguity. It distinguishes from siblings like arango_switch_workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives. It does not mention prerequisites (e.g., must have an active workflow) or when not to use (e.g., to skip stages). The description implies usage for stage progression but lacks exclusionary criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_backupC
Backup collections to JSON files.
| Name | Required | Description | Default |
|---|---|---|---|
| outputDir | No | Directory to write backup files (defaults to timestamped backups/ folder) | |
| collection | No | Single collection to backup (for TypeScript compatibility) | |
| collections | No | List of collections to backup (if not specified, backs up all non-system collections) | |
| docLimit | No | Maximum number of documents to backup per collection | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only says 'backup collections to JSON files'. It does not disclose effects like overwriting, read-only nature, or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise. It is front-loaded but could be more informative without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a backup tool with 5 optional parameters and no output schema, the description is too minimal. It does not explain the backup process, return values, or constraints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds no extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Backup collections to JSON files', which is a specific verb and resource, distinguishing it from sibling tools like arango_backup_graph. However, it does not explicitly differentiate from siblings, but the name and context imply the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like arango_backup_graph or arango_backup_named_graphs. No prerequisites or use cases mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_backup_graphB
Export complete graph structure including vertices, edges, and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| graph_name | Yes | Name of the graph to backup | |
| outputDir | No | Output directory for backup files (defaults to timestamped graph_backups/ folder) | |
| includeMetadata | No | Include graph metadata and definitions in backup | |
| docLimit | No | Maximum number of documents to backup per collection | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose side effects, output details, and constraints. It only states what is included (vertices, edges, metadata) but omits whether the operation is read-only, any required permissions, output format, or the effect of parameters like docLimit and outputDir.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with 8 words, no redundancy. Efficiently captures the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite 5 parameters and no output schema, the description provides minimal context. It fails to explain the output (files created), metadata scope, or how documentation limits work. The tool is moderately complex, and the description is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions (100% coverage), so baseline is 3. The description adds no additional meaning about parameters; it does not mention how graph_name, outputDir, includeMetadata, docLimit, or database are used in the export.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Export' and the resource 'complete graph structure including vertices, edges, and metadata.' It differentiates from sibling backup tools like arango_backup (generic) and arango_backup_named_graphs (named graphs) by specifying 'complete graph structure' for a specific graph.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as arango_backup or arango_backup_named_graphs. No context about prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_backup_named_graphsC
Backup graph definitions from _graphs system collection.
| Name | Required | Description | Default |
|---|---|---|---|
| outputFile | No | Output file for graph definitions (defaults to timestamped file) | |
| graphNames | No | Specific graphs to backup (if not specified, backs up all graphs) | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states 'Backup graph definitions,' which implies a non-destructive read operation, but does not explicitly state safety, side effects, or other behavioral aspects. The description is too brief to give transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It is appropriately concise and front-loaded with the action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is very minimal. It does not explain what form the backup takes, how to use the output, or any prerequisites. For a tool with 3 parameters, more context would be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 3 parameters have descriptions), so the baseline is 3. The tool description adds no extra meaning beyond what the schema provides, maintaining the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Backup graph definitions from _graphs system collection.' It uses a specific verb and resource, making the purpose clear. However, there is a sibling tool 'arango_backup_graph' that likely performs a similar function, and the description does not differentiate between them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'arango_backup_graph' or when not to use it. The description lacks context for appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_bulk_insertC
Bulk insert documents with batching and basic error handling.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | ||
| documents | Yes | ||
| validate_refs | No | ||
| batch_size | No | ||
| on_error | No | stop | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It only mentions 'basic error handling' without specifics. No mention of results, performance characteristics, or whether it is destructive (implied but not explicit). The fact that it inserts documents is obvious, but the error handling behavior is vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (one sentence), which is concise but at the expense of completeness. It front-loads the core action, but the lack of structure and detail reduces usefulness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, no output schema, and no annotations, the description is severely incomplete. It does not cover return values, error outcomes, prerequisites, or performance implications. For a bulk operation, more context is essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 17% (only database has a description). The description does not explain key parameters like batch_size, on_error, or validate_refs beyond their names. It hints at batching and error handling but adds no detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'bulk insert' and the resource 'documents', with batching and error handling. It distinguishes from single-insert tools like arango_insert by emphasizing 'bulk' and 'batching'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs. alternatives (e.g., arango_insert, arango_bulk_update, arango_insert_with_validation). The description does not mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_bulk_updateC
Bulk update documents by key with batching.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | ||
| updates | Yes | ||
| batch_size | No | ||
| on_error | No | stop | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but lacks detail: no mention of atomicity, error handling behavior (though on_error parameter exists), or side effects. Only 'bulk update by key with batching' is stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise at 5 words, but critically missing information. Front-loading is not relevant due to brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 5-parameter tool with no output schema or annotations, the description is incomplete. Lacks explaination of return values, update behavior, or required fields in documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 20%. The description adds no meaning to parameters (e.g., 'updates' array structure, required _key field); relies solely on schema which is sparse.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs bulk updates by key with batching, distinguishing it from single update and bulk insert siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use vs. alternatives like arango_update or arango_bulk_insert. Does not specify prerequisites or ideal scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_create_collectionC
Create a collection (document or edge).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Name of the collection to create | |
| type | No | Type of collection (document or edge) | document |
| waitForSync | No | Whether to wait for sync to disk | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the action without revealing side effects, permissions needed, naming constraints, or error conditions. This is insufficient for a creation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short and front-loaded, but it sacrifices critical details. It could be expanded with important usage notes without being bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description lacks details on return value, error handling, and best practices. It is incomplete for a non-trivial creation operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema; it merely echoes the type enum. No additional semantics provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a collection and mentions the two types (document or edge). It distinguishes from sibling tools like arango_create_graph or arango_create_index, but could be more specific about the resource type.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites (e.g., database existence), and no exclusions provided. The agent gets no context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_create_graphB
Create a named graph with edge definitions (optionally creating collections).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| edge_definitions | Yes | ||
| create_collections | No | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It only mentions 'optionally creating collections' via the create_collections parameter. It does not disclose failure behavior if the graph exists, permission requirements, or whether the operation is destructive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence that concisely states the tool's purpose. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters, low schema coverage, no output schema, and no annotations, the description is too minimal. It lacks explanation of what a named graph is, the pattern of edge definitions, and expected behavior (e.g., whether existing collections are reused).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (25%)βonly the 'database' parameter has a description. The description adds no parameter-specific information beyond what is in the schema. It does not explain the 'edge_definitions' structure or the effect of 'create_collections'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool creates a named graph with edge definitions, and optionally creates collections. This distinguishes it from sibling tools like 'arango_add_edge_definition' or 'arango_create_collection', which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. For example, it does not explain prerequisites (e.g., database must exist) or when to use 'arango_add_edge_definition' instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_create_indexB
Create an index on a collection (persistent, hash, skiplist, ttl, fulltext, geo).
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Name of the collection to create index on | |
| type | No | Type of index to create | persistent |
| fields | Yes | Field paths to index | |
| unique | No | Whether the index should enforce uniqueness | |
| sparse | No | Whether the index should be sparse (ignore null values) | |
| deduplicate | No | Whether to deduplicate index entries | |
| name | No | Custom name for the index | |
| in_background | No | Whether to create index in background | |
| ttl | No | TTL seconds (expireAfter) for TTL index | |
| expireAfter | No | Alias for ttl (expireAfter) | |
| minLength | No | Minimum length for fulltext index | |
| geoJson | No | If true, fields are in GeoJSON format for geo index | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says 'create an index', implying a write operation, but does not disclose idempotency, error handling (e.g., if index already exists), or performance implications. Minimal behavioral information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, efficient but not overly terse. It front-loads the action and resource. Slightly more structure (e.g., noting required params) could improve usability without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (13 parameters, 2 required) and no output schema, the description is insufficient. It lacks any context about return values, constraints (e.g., required collection and fields), or typical usage patterns. A more complete description would aid agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description enumerates index types, which the schema also does via enum, adding minimal extra value. No other parameter semantics are added beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('create an index') and the resource ('on a collection'), and enumerates the index types (persistent, hash, skiplist, ttl, fulltext, geo). This distinguishes it clearly from sibling tools like list or delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives (e.g., when to use a different type of index, or when to choose arango_create_schema). No mention of prerequisites or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_create_schemaC
Create or update a named JSON Schema for a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| collection | Yes | ||
| schema | Yes | JSON Schema draft-07 compatible schema | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full burden of behavioral disclosure. It only states 'Create or update', implying mutation, but omits critical details: whether the schema replaces or merges, permissions required, side effects on existing documents, or if the operation is reversible. The description fails to disclose any behavioral traits beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with a single sentence, but it sacrifices necessary detail. It lacks structure (e.g., bullet points or sections) and does not mention parameters, usage context, or return values. While brevity is valued, the description is too minimal for a tool with four parameters, including a complex nested schema object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (4 parameters, nested object schema, no output schema), the description is insufficient. It does not explain how the schema is applied, its relationship to collection validation, or any side effects. Sibling tools like 'arango_validate_document' suggest interplay, but no connection is made. The description lacks completeness for an agent to use the tool correctly without prior knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool description adds no information about the parameters. Schema coverage is only 50% (two out of four parameters have descriptions in the input schema). The 'name' and 'collection' parameters lack documentation both in the schema and the description, so the description does not compensate for the coverage gap. The description does not clarify the purpose of each parameter or provide format examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create or update') and the resource ('a named JSON Schema for a collection'). This distinguishes it from siblings like 'arango_create_collection' (which creates a collection, not a schema) and 'arango_validate_document' (which validates documents using a schema). The verb+resource combination is specific and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no mention of when not to use it. For example, it does not indicate whether this tool should be used before inserting documents or if there are existing schemas that might conflict. The usage context is entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_database_statusB
Get connection status for all configured databases, showing which databases are accessible, their versions, and which database is currently focused.
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It correctly implies a read-only operation and describes the output (accessibility, versions, focused database). However, it does not mention any potential side effects, rate limits, or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately conveys the tool's purpose and output. No unnecessary words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers what the tool returns (database accessibility, versions, focused database). It is complete for a simple status tool with one optional parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage by describing the single optional parameter 'database' as 'Database override'. The tool description does not add further meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb 'get' and the resource 'connection status for all configured databases', and details what is shown (accessible databases, versions, focused database). However, it does not explicitly differentiate from siblings, which include many other arango tools, though no direct competitor exists.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it state any prerequisites or exclusions. It simply states what the tool does, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_delete_indexB
Delete an index by id or name from a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Name of the collection containing the index | |
| id_or_name | Yes | Index ID (e.g., collection/12345) or name to delete | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose effects of deletion (e.g., irreversible, impact on queries, constraints). Lacks essential behavioral context for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise and front-loaded with the key action and resource. No wasted words, but could be slightly more structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so the description should clarify return behavior or success indicators. Missing information on side effects and use context, leaving significant gaps for a deletion tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions (100% coverage), including examples like id_or_name format. The description adds no extra meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (delete), resource (index), and identification method (by id or name). It distinguishes from sibling tools like create_index or list_indexes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use or avoid this tool; no mention of prerequisites, side effects, or alternatives. The description is purely functional.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_explain_queryA
Explain an AQL query and return execution plans and optional index suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| bind_vars | No | ||
| suggest_indexes | No | ||
| max_plans | No | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It mentions returning execution plans and optional index suggestions, but does not explicitly state that the query is not executed (read-only operation). This ambiguity reduces transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core functionality without unnecessary words. It is concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should explain the return structure fully. It mentions execution plans and index suggestions but lacks detail on format or additional information. Given 5 parameters and only 1 required, the description could better note optional parameters and defaults.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 20% (only 'database' has a description). The description adds no detail about parameters like 'query', 'bind_vars', or 'max_plans', though 'suggest_indexes' is implied by 'optional index suggestions'. Parameters are largely undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Explain an AQL query and return execution plans and optional index suggestions.' This distinguishes it clearly from siblings like arango_query (executes queries) and arango_query_profile (profiles execution).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for understanding query performance via execution plans, but does not explicitly state when to use this tool versus alternatives, such as before executing a query or for optimization.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_get_active_workflowA
Get the currently active workflow context and its tool set.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read-only operation through the verb 'Get', but does not explicitly state whether it is safe (non-destructive), what happens when no active workflow exists, or whether any state changes occur. The description is adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no unnecessary words. It front-loads the verb and resource, making it immediately actionable. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and no annotations, the description is somewhat incomplete. It tells what the tool does but lacks details on the return format or what constitutes 'context' and 'tool set'. For a parameterless getter, it is minimally viable but could provide more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so schema description coverage is effectively 100%. Per guidelines, a baseline of 4 applies, and the description does not need to add parameter information. No additional semantics are required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the currently active workflow context and its tool set. The verb 'Get' and specific resource 'currently active workflow context and its tool set' make the purpose unambiguous, and it distinguishes from siblings like arango_switch_workflow and arango_list_workflows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as arango_list_workflows or arango_switch_workflow. It simply states what it does without context on prerequisites or comparison to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_get_database_resolutionA
Show the database resolution algorithm result for the current session, displaying which database would be used based on the 6-level priority fallback.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It correctly indicates this is a read-only diagnostic operation showing algorithm results, but does not disclose session context implications or confirm lack of side effects. Basic transparency is achieved.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-structured sentence that immediately conveys the tool's purpose and key detail (6-level priority), with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and a simple diagnostic purpose, the description is fully complete. It explains what the tool does and the key aspect of its output (which database based on priority fallback).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema description coverage is 100%. The description adds no parameter details, but with no parameters, a baseline of 4 is appropriate as nothing more is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool shows the database resolution algorithm result for the current session, with specific mention of the 6-level priority fallback. It distinguishes itself from sibling tools like arango_database_status or arango_get_focused_database by focusing on resolution logic rather than status or selection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for diagnostic use to understand which database would be chosen, but provides no explicit guidance on when to use it versus alternatives, nor does it mention prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_get_focused_databaseA
Get the currently focused database for the current session.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description implies a read-only operation but does not explicitly state behavioral traits like idempotency, authorization needs, or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, concise, front-loaded with key information. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Simple tool with no parameters, but lacks description of return value or output format. Could be improved by specifying what the returned database identifier looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0 parameters with 100% coverage. Description does not add information about parameters, but none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (get), the resource (currently focused database), and the scope (current session). It distinguishes from sibling arango_set_focused_database which sets the focused database.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool vs alternatives, but it is clearly a getter complementary to set_focused. However, no when-not or context is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_get_tool_usage_statsA
Get usage statistics for all tools, including use counts and last used timestamps. Useful for understanding tool usage patterns.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the output contents (use counts, timestamps) but fails to mention any potential side effects, performance implications, or access requirements. Given the lack of annotations, more behavioral detail is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, consisting of two sentences that front-load the core purpose and then add context. Every sentence contributes value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with no parameters. The description states what it does and gives examples of returned data (use counts, timestamps). However, without an output schema, the exact structure is unclear. The description partially compensates but is not fully detailed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%. According to the rubric, zero parameters baseline is 4. The description adds no parameter-specific info beyond the schema, which is acceptable as no parameters exist.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get usage statistics for all tools, including use counts and last used timestamps.' It specifies the verb (get), the resource (usage statistics), and the scope (all tools). This distinguishes it from sibling tools like arango_list_collections or arango_query.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates the tool's utility for 'understanding tool usage patterns,' providing clear context for when it is appropriate to use. However, it does not mention when not to use it or suggest alternatives, as there are no directly competing sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_graph_statisticsA
Generate comprehensive graph analytics (vertex/edge counts, degree distribution, connectivity metrics).
| Name | Required | Description | Default |
|---|---|---|---|
| graphName | No | Specific graph to analyze (if not specified, analyzes all graphs) | |
| includeDegreeDistribution | No | Calculate degree distribution statistics | |
| includeConnectivity | No | Calculate connectivity metrics | |
| sampleSize | No | Sample size for large graphs (defaults to automatic sizing) | |
| aggregateCollections | No | Aggregate statistics across all collections for more representative results | |
| perCollectionStats | No | Provide detailed per-collection statistics breakdown | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses the tool is for generating analytics (likely read-only), but does not mention permissions, performance impact, or whether it modifies data. Provides basic behavioral context but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence front-loads the tool's purpose and specifics. No wasted words; all information is relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, and description does not explain return format. For a statistical tool, it lacks detail on how results are structured (e.g., per-graph vs aggregated). Adequate but incomplete given the complexity of graph analytics.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description mentions vertex/edge counts, degree distribution, and connectivity, which align with boolean parameters, but does not add meaning beyond what the schema already provides for other params like graphName and sampleSize.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it generates comprehensive graph analytics including specific metrics (vertex/edge counts, degree distribution, connectivity). Distinguishes from siblings like arango_graph_traversal which focuses on traversal rather than analytics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or alternatives provided. The description implies usage for analytics but does not specify when to choose this over other graph tools like arango_graph_traversal or arango_shortest_path.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_graph_traversalC
Alias for arango_traverse (graph traversal by graph or edge collections).
| Name | Required | Description | Default |
|---|---|---|---|
| start_vertex | Yes | ||
| direction | No | OUTBOUND | |
| min_depth | No | ||
| max_depth | No | ||
| graph | No | ||
| edge_collections | No | ||
| return_paths | No | ||
| limit | No | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided and the description lacks any behavioral details such as performance, side effects, limits, or result structure. The agent has no insight into the tool's behavior beyond being an alias.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short but fails to provide substantial information. It is terse rather than concise, offering minimal value beyond stating it is an alias.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of graph traversal with 9 parameters, the description is severely inadequate. It does not explain what the tool does, its inputs, outputs, or how it differs from similar tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 11%, with only the 'database' parameter having a description. The tool description does not explain any parameters, leaving the agent without guidance on how to fill them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it is an alias for arango_traverse, which identifies the tool's function as graph traversal. However, it does not elaborate on what traversal means in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus arango_traverse or other traversal tools. The description only notes it is an alias, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_insertC
Insert a document into a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | ||
| document | Yes | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description fails to disclose any behavioral traits such as error handling, duplicate handling, or side effects. The agent has no warning about possible failures.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no wasted words. However, it could be slightly more informative without sacrificing brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not explain return values, success/failure behavior, or any context about insertion behavior (e.g., collection must exist). Incomplete for a data mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (33%), and the description adds no parameter details. It does not explain 'collection' or 'document' beyond their names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Insert a document into a collection', which is a specific verb-resource pair. It distinguishes from sibling tools like arango_bulk_insert, arango_update, arango_remove.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., bulk insert, update, remove). No exclusion criteria or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_insert_with_validationC
Insert a document after validating its reference fields.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | ||
| document | Yes | ||
| reference_fields | No | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must fully disclose behavioral traits. It states the core behavior (insert after validation) but omits critical details: what happens if validation fails (error? partial insert?), whether the operation is atomic, permission requirements, or side effects. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (one sentence, 7 words) and front-loaded with the main action. However, it is overly terse given the tool's complexity and lack of annotations; a few more sentences would improve clarity without compromising conciseness. Scores at the middle of the range.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 parameters, 2 required, no output schema, sibling tools), the description is incomplete. It does not explain what 'validating reference fields' entails, how 'reference_fields' parameter is used, what the return value is, or error handling. An agent needs more context to use this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, yet the description adds no meaning to any of the 4 parameters. The description does not mention 'collection', 'document', 'reference_fields', or 'database', leaving the agent to infer their roles solely from names. Baseline for low coverage and no param info is 2.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Insert a document after validating its reference fields.' It specifies the verb (insert), resource (document), and the unique aspect (validation of reference fields), distinguishing it from sibling tools like 'arango_insert' (plain insert) and 'arango_validate_document' (only validation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool over alternatives (e.g., arango_insert, arango_validate_references). The description implies usage when validation is desired before insert, but does not provide criteria, exclusions, or mention of when validation might be unnecessary or when to combine other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_list_available_databasesA
List all configured databases available for multi-tenancy operations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only states the action without disclosing that it is read-only, has no side effects, or any authentication or permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence with no wasted words. Every word contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no parameters and no output schema, the description is adequate but minimal. It does not specify what information is returned (e.g., database names) or how the list is ordered, which could be helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters and schema coverage is 100%. The description adds meaning by explaining the tool's purpose beyond the empty schema, meeting the baseline of 4 for no-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'databases', with a qualifier 'available for multi-tenancy operations' that distinguishes it from database-specific tools like arango_get_focused_database or arango_database_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings such as arango_get_focused_database or arango_list_collections. The context for multi-tenancy operations is implied but not explicitly contrasted.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_list_collectionsB
List non-system collection names.
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only mentions listing non-system collection names without disclosing behaviors like read-only, permission requirements, or output details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise at four words, no wasted text; purpose is immediately clear.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter, the description is adequate but omits output format or any notes about system collections; could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter (database) with description, so the description adds no extra meaning; baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (list) and the resource (non-system collection names), distinguishing it from sibling tools like arango_list_graphs or arango_list_indexes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, such as arango_list_available_databases or arango_list_graphs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_list_graphsB
List available graphs in the database.
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose behavioral traits like read-only nature, permissions, or performance. The word 'list' implies a read operation, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no wasted words. It is appropriately sized for a simple listing tool with one optional parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a low-complexity tool with one optional parameter and no output schema, the description is minimally complete. It tells the agent what the tool does, but lacks behavioral context that annotations would typically provide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents the 'database' parameter. The description adds no additional meaning beyond what the schema provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List available graphs in the database' clearly identifies the verb (list) and resource (graphs). It distinguishes from siblings like arango_create_graph or arango_graph_traversal, but does not explicitly differentiate from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as arango_list_collections or arango_list_indexes. The description only states functionality without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_list_indexesB
List indexes for a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Collection name to list indexes for | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It only says 'List indexes', implying a read operation, but doesn't disclose any behavioral traits such as read-only nature, performance impact, or pagination behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with no wasted words. Front-loaded with the action and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with no output schema, the description is mostly adequate. However, it does not mention the return format (array of index definitions), which a new agent might benefit from.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning beyond what the schema already provides for the 'collection' and 'database' parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'List indexes for a collection.' Clearly identifies the verb (List) and resource (indexes for a collection). Distinguishes from sibling tools like arango_create_index and arango_delete_index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, or when to avoid it. The description provides no context about prerequisites or complementary tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_list_tools_by_categoryA
List all MCP tools organized by category. Useful for understanding tool organization and selecting workflow-specific tool sets.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category to filter by. If None, returns all categories with their tools. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It accurately describes the listing behavior but does not disclose potential side effects (though listing should be safe), authorization needs, or any internal state changes. It is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the core purpose without any redundant or superfluous text. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool simplicity and absence of output schema, the description sufficiently conveys the high-level behavior. However, it does not specify the structure of the output (e.g., category names, tool names), which could be helpful for an agent to process the result. It is mostly complete but lacks minor detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description in the schema already explains the behavior (filtering by category, returns all if None). The tool description adds no additional semantic value beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb (list) and resource (MCP tools organized by category). It distinguishes from sibling tools like arango_search_tools by indicating it lists all tools by category for browsing, which is a distinct purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a general usage hint ('useful for understanding tool organization and selecting workflow-specific tool sets') but does not explicitly compare to siblings or state when not to use. The guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_list_workflowsB
List all available workflow contexts with their descriptions and optional tool lists.
| Name | Required | Description | Default |
|---|---|---|---|
| include_tools | No | Include tool lists for each context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description should disclose behavioral traits like read-only nature or auth requirements. It only states what it lists, without mentioning side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, perfectly concise for the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one optional parameter and no output schema. The description is adequate but could mention that returned tool lists are optional and what 'descriptions' entails.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single boolean parameter. The description does not add any extra meaning beyond the schema's description of the parameter. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and the resource 'all available workflow contexts' with their descriptions and optional tool lists. It distinguishes from other list siblings since it's specific to workflows.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool vs alternatives like arango_get_active_workflow or arango_switch_workflow. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_queryC
Execute an AQL query with optional bind vars and return rows.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | AQL query string | |
| bind_vars | No | Optional bind variables for the AQL query | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It fails to mention that the query can modify data (destructive potential) or that it is read-only for certain query types. The description is too generic and does not address safety or side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that communicates the essential action and key parameters. It is front-loaded and efficient, though it could include additional details without becoming overly long.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema), the description is incomplete. It does not explain the return format (e.g., array, cursor), pagination, limits, or potential performance implications. This is a significant gap for a query execution tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds 'optional bind vars' which is already in the schema. No additional meaning is provided for 'query' or 'database' parameters beyond what the schema already describes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool executes an AQL query and returns rows, using a specific verb and resource. It distinguishes from sibling tools like arango_explain_query and arango_query_profile, but could be more explicit about its role versus these alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like arango_explain_query or arango_query_profile. The description does not mention use cases or exclusions, leaving the agent to infer based on the tool name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_query_builderB
Build and execute a simple AQL query from filters, sort, and limit.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | ||
| filters | No | ||
| sort | No | ||
| limit | No | ||
| return_fields | No | Fields to project; omit for full doc | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It states 'execute' but does not clarify whether the tool is read-only or modifies data, nor does it mention side effects, authentication needs, or rate limits. This is insufficient for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that bundles two actions ('build and execute'). While concise, it could benefit from a brief breakdown of the key steps or a note on the output. It is not front-loaded with the most critical information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, nested objects, no output schema, and no annotations, the description is too minimal. It does not explain what the returned data looks like, error handling, or how 'execute' affects data. The description is incomplete for an agent to use the tool reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is low (33%), with only return_fields and database having descriptions. The tool description mentions 'filters, sort, and limit' but adds no extra meaning beyond their names. The nested schema for filters and sort is detailed but the description does not explain how to use them effectively, failing to compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Build and execute a simple AQL query from filters, sort, and limit.' It uses a specific verb-resource pair ('build and execute' + 'AQL query') and distinguishes from siblings like arango_query (raw AQL) and arango_explain_query (query explanation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies it's for 'simple' queries, offering some guidance on scope, but does not explicitly state when to use this tool versus alternatives like arango_query or when not to use it (e.g., for complex queries or graph traversals).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_query_profileC
Explain a query and return plans/stats for profiling.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| bind_vars | No | ||
| max_plans | No | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It states 'return plans/stats' but does not mention read-only nature, required permissions, or potential side effects. For a profiling tool, safety traits are essential but omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise but at the expense of missing critical details. It is appropriately sized for a simple tool but could include more information without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and low schema coverage, the description is incomplete. It does not clarify return value structure, bind variable syntax, or how to use 'database' override. A profiling tool typically needs more context for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 25% (only 'database' has a description). The description adds no detail on 'query', 'bind_vars', or 'max_plans'. The term 'plans' vaguely relates to 'max_plans' but does not explain meaning or default behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool explains a query and returns plans/stats for profiling. However, it does not explicitly differentiate from sibling tool 'arango_explain_query', which may also explain queries. The phrase 'for profiling' hints at but does not guarantee distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'arango_explain_query' or 'arango_query'. No prerequisites, when-not-to-use, or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_removeB
Remove a document by key in a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Name of the collection containing the document | |
| key | Yes | Document key to remove | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral load. It only states 'Remove' without disclosing whether the operation is destructive, what happens if the key doesn't exist, whether permission checks are required, or what the return value is.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence that is front-loaded with the verb and key intent. It is concise but could benefit from a bit more structure (e.g., separating conditions or return info).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (3 params, no output schema), the description is incomplete. It omits crucial details such as behavior on missing keys, return format, and error handling, which are essential for an agent to use it correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds 'by key in a collection' which matches the parameters but does not provide additional semantic nuance. The database parameter's description ('Database override') adds minimal context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Remove' and the resource 'a document by key in a collection'. It distinguishes from sibling tools like arango_insert and arango_update by explicitly focusing on removal by key.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs. alternatives (e.g., arango_bulk_insert for batch operations). The description lacks any context about prerequisites or conditions for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_restore_graphC
Import graph data with referential integrity validation and conflict resolution.
| Name | Required | Description | Default |
|---|---|---|---|
| inputDir | Yes | Directory containing graph backup files | |
| graphName | No | Target graph name (defaults to original name from backup) | |
| conflictResolution | No | How to handle conflicts: skip existing, overwrite, or error | error |
| validateIntegrity | No | Validate referential integrity during restore | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must carry the full burden. It mentions validation and conflict resolution but does not disclose that this is a restore operation from a backup, whether it is destructive (overwrites existing graph), or what permissions are needed. The behavior of conflict resolution (skip/overwrite/error) is hinted but not fully explained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and to the point. However, it is vague and could be improved by specifying the source (backup directory) and what 'import' means in this context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is present, so the description should explain return values or success/failure indicators. It does not. The description also fails to mention that the tool restores from a backup, which is critical context. Given the complexity (5 params, restore operation), the description is insufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter is already well documented in the schema. The description adds only a high-level summary ('validation and conflict resolution') which does not provide new meaning beyond the structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it imports graph data with validation and conflict resolution. However, it does not explicitly mention that it restores from a backup, which is the core action. This could cause confusion with importing data from other sources, especially given siblings like arango_create_graph.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus siblings such as arango_create_graph, arango_backup_graph, or arango_validate_graph_integrity. There are no prerequisites mentioned, e.g., that a backup must exist at inputDir.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_search_toolsA
Search for MCP tools by keywords and categories. Enables progressive tool discovery by returning only relevant tools instead of loading all 34 tools upfront.
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Keywords to search for in tool names and descriptions | |
| categories | No | Filter by categories: core_data, indexing, validation, schema, query, graph_basic, graph_advanced, aliases, health | |
| detail_level | No | Level of detail: 'name' (just names), 'summary' (names + descriptions), 'full' (complete schemas) | summary |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adequately conveys the read-only nature (search/filter) and parameter effects, but does not specify return format or side effects, which is acceptable for a simple query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise, front-loaded sentences with no filler. Every word earns its place, efficiently conveying purpose and benefit.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with thorough schema parameter descriptions, provides sufficient context for a search/filter tool. It lacks return format details but given the detail_level parameter, the behavior is predictable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds framing but no new semantic detail beyond what the schema already provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches for MCP tools by keywords and categories, and it distinguishes itself from siblings like arango_list_tools_by_category by emphasizing progressive discovery and avoiding loading all 34 tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly guides use by stating it enables progressive discovery instead of loading all tools, but does not explicitly mention when not to use or compare with alternatives like listing all tools by category.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_set_focused_databaseA
Set the focused database for the current session. All subsequent tool calls will use this database unless overridden with the database parameter. Pass None or empty string to unset the focused database and revert to default database resolution.
| Name | Required | Description | Default |
|---|---|---|---|
| database | No | Database key to set as focused database for this session. Use None or empty string to unset the focused database. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It explains the session-wide effect and how to revert. It does not mention authorization or scope details, but for a simple setter, this is sufficient. Slight gap on whether the focus persists across different connections.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, efficient and front-loaded. Every sentence provides essential information: first states the action, second explains the effect and how to unset. No unnecessary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (single optional parameter, no output schema, no annotations), the description is largely complete. It covers setting, unsetting, and the session scope. One could argue it could mention whether the focus applies only to the current connection, but it's a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (one parameter fully described). The description adds meaningful context by explaining that setting the database affects all subsequent tool calls unless overridden, which goes beyond the schema description. This helps the agent understand the parameter's impact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: setting the focused database for the current session. It specifies the verb 'set', the resource 'focused database', and the scope 'current session', distinguishing it from sibling tools like 'arango_get_focused_database'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use the tool (to set a focused database) and when to unset it (pass None or empty string). It also mentions that subsequent calls will use this database unless overridden, providing context. However, it does not explicitly mention alternatives like using the 'database' parameter directly on each tool call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_shortest_pathC
Compute the shortest path between two vertices (by graph or edge collections).
| Name | Required | Description | Default |
|---|---|---|---|
| start_vertex | Yes | ||
| end_vertex | Yes | ||
| direction | No | OUTBOUND | |
| graph | No | ||
| edge_collections | No | ||
| return_paths | No | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility for behavioral disclosure. It does not state whether the tool returns just the distance, the full path, or both (though the 'return_paths' parameter hints at it). It also fails to mention algorithm type, performance characteristics, or requirements like graph existence.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but overly brief. It front-loads the core purpose but omits necessary details, making it under-specified rather than efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters, low schema coverage, no output schema, and no annotations, the description is incomplete. It does not explain return values, error conditions, prerequisites (e.g., graph must exist), or the expected behavior when both graph and edge_collections are null.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 14% (only 'database' has a description). The description adds minimal value beyond the schema, stating 'by graph or edge collections' but not clarifying the mutual exclusivity or required conditions for these parameters. Parameters like 'direction' and 'return_paths' lack additional context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes shortest paths between two vertices. It mentions two modes (graph or edge collections), which hints at flexibility. However, it does not differentiate from sibling tools like arango_graph_traversal or arango_traverse that also handle path computations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., arango_graph_traversal). The description lacks explicit when-to-use or when-not-to-use instructions, and no prerequisites or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_switch_workflowA
Switch to a different workflow context with a predefined set of tools. Enables Workflow Switching pattern for workflow-specific tool sets.
| Name | Required | Description | Default |
|---|---|---|---|
| context | Yes | Workflow context to switch to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description explains the tool enables a switching pattern but does not disclose side effects, authorization needs, or state changes beyond the basic function. Partial transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no fluff. Front-loaded with the main action. Every sentence is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required parameter, no output schema), the description adequately covers the purpose and pattern. Complete for the scope.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with enum list. Description adds minimal extra meaning beyond the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'switch' and resource 'workflow context'. Distinguishes from siblings like 'arango_advance_workflow_stage' by implying a different action (switching vs advancing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for switching workflow contexts but provides no explicit when-to-use or when-not-to-use guidance. No alternatives mentioned despite related sibling 'arango_advance_workflow_stage'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_traverseC
Traverse graph from a start vertex with depth bounds (by graph or edge collections).
| Name | Required | Description | Default |
|---|---|---|---|
| start_vertex | Yes | ||
| direction | No | OUTBOUND | |
| min_depth | No | ||
| max_depth | No | ||
| graph | No | ||
| edge_collections | No | ||
| return_paths | No | ||
| limit | No | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits beyond the basic operation. Without annotations, it fails to mention that traversal is read-only, what the output contains (e.g., paths, vertices), or any side effects. The single sentence is insufficient for an agent to understand the tool's full behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. It wastes no words, but could benefit from structuring to include more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 9 parameters, no output schema, and no annotations, the description is too sparse. It lacks details on output format, parameter constraints, and edge cases, leaving significant gaps for an agent to correctly use the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaning for start_vertex, min_depth/max_depth, and graph/edge_collections by mentioning 'start vertex' and 'depth bounds (by graph or edge collections)'. However, it does not explain direction, return_paths, or limit, and schema coverage is only 11%. The added value is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool traverses a graph starting from a vertex with depth bounds, and specifies two ways to define the graph (by graph name or edge collections). However, it does not explicitly differentiate from sibling tools like arango_graph_traversal or arango_shortest_path, missing a chance to distinguish.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like arango_graph_traversal or arango_shortest_path. There is no mention of prerequisites, context, or typical use cases, leaving the agent without decision support.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_unload_toolsA
Manually unload specific tools from the active context. Useful for fine-grained control over tool lifecycle.
| Name | Required | Description | Default |
|---|---|---|---|
| tool_names | Yes | List of tool names to unload from active context |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only mentions 'unload', which implies deletion, but lacks details on side effects, reversibility, or permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded with the main action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the tool is simple with one parameter. Description could elaborate on what 'active context' means or post-unload state.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the parameter with description, and the tool description does not add significant new meaning beyond what's in the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'unload' and resource 'specific tools from the active context'. Distinguishes from siblings as no other tool unloads tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides usage context: 'Manually unload specific tools...' but does not explicitly specify when not to use or mention alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_updateB
Update a document by key in a collection.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | Name of the collection containing the document | |
| key | Yes | Document key to update | |
| update | Yes | Fields to update in the document | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It only states the basic update action but does not disclose whether it performs a partial merge or full replacement, what happens to missing fields, or if permissions are required. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. However, it could incorporate additional context (e.g., merge behavior) without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and four parameters (including a nested object), the description is too minimal. It does not explain the return value, error scenarios, or how the update interacts with the document schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for all four parameters. The description adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update a document by key') and the resource ('in a collection'). It is specific and distinguishes from sibling tools like arango_insert, arango_remove, and arango_bulk_update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as arango_bulk_update for multiple documents or arango_query for complex updates. No when-not-to-use or context hints are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_validate_documentC
Validate a document against a stored or inline JSON Schema.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | ||
| document | Yes | ||
| schema_name | No | Name of stored schema to use | |
| schema | No | Inline JSON Schema to validate against | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It only says 'Validate a document' but does not disclose what happens on failure (e.g., error vs boolean), whether it is read-only, or any side effects. This is a significant gap for a validation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise. However, it is borderline under-specified; still, it is efficient with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fails to explain the return value (e.g., validation errors or success indicator). It also omits behavior details like mutual exclusivity of schema_name and schema. For a 5-parameter tool, this inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60% (3 of 5 parameters have descriptions). The description adds no extra meaning beyond what the input schema already provides, such as the relationship between schema_name and schema or constraints on these parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool validates a document against a stored or inline JSON Schema. It uses a specific verb and resource, but does not explicitly distinguish from sibling tools like arango_insert_with_validation, though the purpose is fairly distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives such as arango_insert_with_validation or when to use stored vs inline schema. No prerequisites or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_validate_graph_integrityC
Verify graph consistency, orphaned edges, and constraint violations.
| Name | Required | Description | Default |
|---|---|---|---|
| graphName | No | Specific graph to validate (if not specified, validates all graphs) | |
| checkOrphanedEdges | No | Check for edges with missing vertices | |
| checkConstraints | No | Validate graph constraints and edge definitions | |
| returnDetails | No | Return detailed violation information | |
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full burden. It implies a read-only operation, but does not disclose whether the operation is destructive, performance impact, or any side effects. Minimal behavioral context beyond basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, very concise with no wasted words. It could be slightly more structured, but it is efficiently front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description does not explain return values or how to interpret results. Given the complexity of validating graph integrity with multiple options, the description is insufficient for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% as all five parameters have descriptions in the input schema. The description adds no additional meaning beyond what the schema already provides, meriting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool verifies graph consistency, orphaned edges, and constraint violations. It uses a specific verb and resource, distinguishing it from traversal or document validation tools among siblings, though it does not explicitly differentiate from other validation tools like validate_references.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives, no prerequisites or exclusions provided. The description only states what it does, not when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
arango_validate_referencesB
Validate that documents in a collection have valid references in specified fields.
| Name | Required | Description | Default |
|---|---|---|---|
| collection | Yes | ||
| reference_fields | Yes | ||
| fix_invalid | No | ||
| database | No | Database override |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description bears full responsibility for transparency. It mentions a 'fix_invalid' parameter but does not clarify whether this modifies documents (destructive) or is read-only, nor does it describe error handling or output format. The behavior beyond validation is opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, making it very concise and front-loaded. However, it is too brief to convey necessary details, trading off completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and only basic parameter information, the description is incomplete. It does not specify return values, side effects (e.g., when fix_invalid is true), or prerequisite conditions. The tool's behavior is inadequately explained for an AI agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, and the description adds no parameter-level details. It references 'specified fields' for reference_fields but does not explain their format or meaning. The fix_invalid parameter is mentioned but not elaborated. The description fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'validate' and resource 'documents in a collection have valid references in specified fields'. It differentiates from siblings like arango_validate_document (single document) and arango_validate_graph_integrity (graph structure) by focusing on cross-document reference validation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for validating references across documents, but it does not explicitly state when to use it versus alternatives like arango_validate_document or arango_validate_graph_integrity. No usage context or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes, but several aliases (e.g., arango_add_vertex as alias for arango_insert, arango_graph_traversal as alias for arango_traverse) create potential confusion, as an agent may select the wrong tool if unaware of the alias.
The majority of tools follow a consistent arango_verb_noun pattern. However, minor inconsistencies exist, such as mixing 'add' and 'create' (e.g., arango_add_edge vs arango_create_collection) and using noun_noun for arango_query_builder.
With 46 tools, the server has significantly more than the ideal range. While the domain is broad, many tools are workflow management or backup-related, and the presence of aliases adds redundancy, making tool selection more complex.
The tool set covers a wide range of ArangoDB operations including CRUD, graph management, indexing, schema validation, querying, backup/restore, and multi-tenancy. Minor gaps like lack of transaction support are acceptable for an MCP server.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server for building and testing AI agents with multi-model experimentation and insights.
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
MCP server connecting AI agents to 100+ apps (Gmail, Slack, Notion, GitHub) via one-click OAuth.
Hosted MCP server for AI-driven data ops. Create apps, manage schemas, and CRUD structured data.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA comprehensive MCP server that provides full integration with LightRAG API, offering 22 tools across document management, querying, knowledge graph operations, and system management.37MIT
- AlicenseNot gradedqualityDmaintenanceA production-grade MCP server designed for multi-tenant, authenticated, and observable AI agent systems, enabling secure tool execution across heterogeneous data sources.62MIT
- AlicenseBqualityDmaintenanceTurns ArangoDB into a schema-driven MCP server for agents, enabling search-describe-exec workflows for database, graph, and knowledge operations without oversizing the tool list.10MIT
- AlicenseNot gradedqualityBmaintenanceProduction-ready MCP server for MySQL databases enabling AI assistants to interact with MySQL through secure, validated, and audited tools.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PCfVW/mcp-arangodb-async'
If you have feedback or need assistance with the MCP directory API, please join our Discord server