ArcadeDB Multi-Model DBMS
OfficialArcadeDB is a Multi-Model DBMS created by Luca Garulli, the same founder of OrientDB, after SAP's acquisition. Written from scratch with a brand-new engine made of Alien Technology, ArcadeDB is able to crunch millions of records per second on common hardware with minimal resource usage. ArcadeDB reuses OrientDB's SQL engine (heavily modified) and some utility classes. It's written in LLJ: Low Level Java - still Java21+ but only using low level APIs to leverage advanced mechanical sympathy techniques and reduce Garbage Collector pressure. Highly optimized for extreme performance, it runs from a Raspberry Pi to multiple servers on the cloud.
ArcadeDB is fully transactional DBMS with support for ACID transactions, structured and unstructured data, native graph engine (no joins but links between records), full-text indexing, geospatial querying, and advanced security.
ArcadeDB supports the following models:
Graph Database (compatible with Neo4j Cypher, Apache Tinkerpop Gremlin and OrientDB SQL)
Document Database (compatible with the MongoDB driver + MongoDB queries and OrientDB SQL)
Key/Value (compatible with the Redis driver)
Time Series (with InfluxDB Line Protocol, Prometheus remote_write/read, and PromQL support)
ArcadeDB understands multiple languages:
SQL (from OrientDB SQL)
Neo4j Cypher (Open Cypher)
ArcadeDB key capabilities:
70+ Built-in Graph Algorithms — Pathfinding, centrality, community detection, link prediction, graph embeddings, and more — all available out of the box
Parallel Query Execution — SQL queries leverage multiple CPU cores for faster execution on large datasets
Materialized Views — Pre-computed query results stored and automatically maintained
MCP Server — Built-in Model Context Protocol server for AI assistant and LLM integration
AI Assistant — Integrated AI assistant in Studio (Beta) for query help and database management
Geospatial Indexing — Native spatial queries and proximity searches with
geo.*SQL functionsTimeSeries — Columnar storage with Gorilla/Delta-of-Delta compression, InfluxDB/Prometheus ingestion, PromQL queries, Grafana integration
Hash Indexes — Extendible hashing for faster exact-match lookups alongside LSM-Tree indexes
ArcadeDB can be used as:
Embedded from any language on top of the Java Virtual Machine
Embedded from Python via bindings: arcadedb-embedded-python
Remotely by using HTTP/JSON
Remotely by using a Postgres driver (ArcadeDB implements Postgres Wire protocol)
Remotely by using a Redis driver (only a subset of the operations are implemented)
Remotely by using a MongoDB driver (only a subset of the operations are implemented)
By AI assistants via the built-in MCP Server (Model Context Protocol)
For more information, see the documentation.
Use Cases
Explore real-world examples in the arcadedb-usecases repository — self-contained projects with Docker Compose, SQL schemas, and runnable demos covering:
Recommendation Engine — graph traversal + vector similarity + time-series
Knowledge Graphs — co-authorship and citation networks with full-text search
Graph RAG — retrieval-augmented generation with LangChain4j and Neo4j Bolt
Fraud Detection — graph, vector, and time-series signals with Cypher
Real-time Analytics — IoT and service monitoring with time-series
Social Network Analytics — materialized view dashboards with polyglot queries
Supply Chain — multi-tier visibility with PostgreSQL protocol and JavaScript
Getting started in 5 minutes
Start ArcadeDB Server with Docker:
docker run --rm -p 2480:2480 -p 2424:2424 \
-e JAVA_OPTS="-Darcadedb.server.rootPassword=playwithdata -Darcadedb.server.defaultDatabases=Imported[root]{import:https://github.com/ArcadeData/arcadedb-datasets/raw/main/orientdb/OpenBeer.gz}" \
arcadedata/arcadedb:latestNow open your browser on http://localhost:2480 and play with ArcadeDB Studio and the
imported OpenBeer database to find your favorite beer.

ArcadeDB is cloud-ready with Docker and Kubernetes support.
You can also download the latest release, unpack it on your local hard drive and
start the server with bin/server.sh or bin/server.bat for Windows.
Releases
There are four variants of (about monthly) releases:
full- this is the complete package including all modulesminimal- this package excludes thegremlin,redisw,mongodbw,graphqlmodulesheadless- this package excludes thegremlin,redisw,mongodbw,graphql,studiomodulesbase- core engine, server, and network only — excludes all optional modules (console,gremlin,studio,redisw,mongodbw,postgresw,grpcw,graphql,metrics)
The nightly builds of the repository head can be found here.
You can also build a custom distribution with only the modules you need using the Custom Package Builder:
curl -fsSL https://github.com/ArcadeData/arcadedb/releases/download/26.3.1/arcadedb-builder.sh | \
bash -s -- --version=26.3.1 --modules=gremlin,studioAvailable optional modules: console, gremlin, studio, redisw, mongodbw, postgresw, grpcw, graphql, metrics. The
builder supports interactive mode, Docker image generation, and offline builds from local Maven repositories.
Java Versions
Starting from ArcadeDB 24.4.1 code is compatible with Java 21.
Java 21 packages are available on Maven central and docker images on Docker Hub.
We also support Java 17 on a separate branch java17 for those who cannot upgrade to Java 21 yet through GitHub packages.
To use Java 17 inside your project, add the repository to your pom.xml and reference dependencies as follows:
<repositories>
<repository>
<name>github</name>
<id>github</id>
<url>https://maven.pkg.github.com/ArcadeData/arcadedb</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.arcadedb</groupId>
<artifactId>arcadedb-engine</artifactId>
<version>26.3.1-java17</version>
</dependency>
</dependencies>Docker images are available on ghcr.io too:
docker pull ghcr.io/arcadedata/arcadedb:26.3.1-java17Building and Testing
Build the entire project (skipping tests):
mvn clean install -DskipTestsRun the full test suite:
mvn testSome tests are tagged to indicate their cost:
slow- functional tests that take noticeably long (large batches, multi-second elapsed time, big payloads)benchmark- microbenchmarks not intended for regular CI runs
To skip these and run only the fast tests:
mvn test -DexcludedGroups="slow,benchmark"To run only a specific tag (e.g. benchmark tests in isolation):
mvn test -Dgroups="benchmark"Community
Join our growing community around the world, for ideas, discussions and help regarding ArcadeDB.
Chat live with us on Discord
Follow us on Twitter
or on Bluesky
Connect with us on LinkedIn
or on Facebook
Questions tagged
#arcadedbon Stack OverflowView our official Blog
Security
For security issues kindly email us at support@arcadedb.com instead of posting a public issue on GitHub.
License and Attribution
ArcadeDB is Free for any usage and licensed under the liberal Open Source Apache 2 license. We are committed to remaining Open Source Forever — see our Governance for the structural guarantees that make this more than a promise. If you need commercial support, or you need to have an issue fixed ASAP, check our pricing page.
For third-party attributions and copyright notices, see:
NOTICE - Required legal attributions
ATTRIBUTIONS.md - Detailed third-party acknowledgments
LICENSE - Full license text
GOVERNANCE.md - License guarantee and project governance
Thanks To
for providing YourKit Profiler to our committers.
Contributing
We would love for you to get involved with ArcadeDB project. If you wish to help, you can learn more about how you can contribute to this project in the contribution guide.
Have fun with data!
The ArcadeDB Team
Stargazers over time
Available Tools
10 toolsexecute_commandA
Execute a non-idempotent command against an ArcadeDB database. Use this for INSERT, UPDATE, DELETE, CREATE TYPE, and other write operations. Prefer OpenCypher (language: 'cypher') unless SQL is explicitly requested.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default: 1000) | |
| command | Yes | The command to execute | |
| database | Yes | The name of the database | |
| language | No | Command language: 'sql', 'cypher', 'gremlin', 'graphql', 'mongo' | cypher |
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 that commands are non-idempotent and lists write operations, signaling side effects. However, it does not detail error handling, transaction behavior, or authorization requirements, which would enhance 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 sentences: first defines purpose and side-effect, second gives usage guidance. No redundant or extraneous information. Every sentence adds 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?
The description covers purpose, usage, and parameter guidance adequately. However, without an output schema, it omits information about return values or error handling. For a write operation, explaining what the command returns (e.g., success indicator or affected records) would improve completeness.
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 value by recommending the default language ('cypher') and when to use SQL, providing guidance beyond the schema. Other parameters are adequately described in 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 tool executes non-idempotent commands against an ArcadeDB database and lists write operations like INSERT, UPDATE, DELETE, CREATE TYPE. It distinguishes from sibling tools such as 'query' by specifying that this tool is for write operations.
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?
Explicitly states when to use: for INSERT, UPDATE, DELETE, CREATE TYPE, and other write operations. Also provides guidance to prefer OpenCypher (cypher) unless SQL is explicitly requested, helping the agent select the appropriate language.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_schemaB
Get the full schema of a database including types (vertex, edge, document), their properties, indexes, and inheritance hierarchy.
| Name | Required | Description | Default |
|---|---|---|---|
| database | Yes | The name of the database |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. The description discloses what information is returned (types, properties, indexes, inheritance), which is useful. However, it doesn't disclose whether this is a read-only operation, the granularity of the schema output, or how the inheritance hierarchy is presented. It's a reasonable disclosure but not rich.
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 front-loads the core purpose and enumerates the specific contents of the schema. There's no wasted text. Could add usage guidance but is appropriately concise for what it covers.
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 database schema retrieval is a moderately complex operation involving multiple data types and hierarchy, but the description covers the content scope well. However, with no output schema and no annotations, the agent has no idea about the structure or size of the returned schema. The description is adequate but could benefit from noting ordering, nesting depth, or related 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% with a single parameter (database), and the schema description for 'The name of the database' is already sufficient. The description doesn't add much beyond this, but with a single well-documented parameter there's little to add. 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 (Get), resource (schema of a database), and specifically enumerates what the schema includes (types, properties, indexes, inheritance hierarchy). It's distinct from siblings like list_databases (which lists DBs) and query (which runs queries). Could be slightly sharper in differentiating but is precise and specific.
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 doesn't provide any guidance on when to use this tool versus alternatives. It doesn't mention that this is a read-only introspection call, whether it requires specific permissions, or contrast with tools that might provide partial schema info. No when/when-not guidance given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_server_settingsA
Retrieve ArcadeDB server configuration settings. Returns all server-level settings with their current values, defaults, and descriptions. Sensitive values (passwords) are masked. Use this to understand and diagnose server configuration.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds value by noting that sensitive values are masked. It lacks other behavioral details like performance impact, but for a read-only tool this is acceptable.
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 with two sentences, front-loads the purpose, and contains no unnecessary 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?
The description fully explains what the tool returns (values, defaults, descriptions) and the masking behavior. For a parameterless retrieval tool, it is 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?
The input schema has no parameters, so the description correctly has no parameter info. Baseline score of 4 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 'Retrieve' and the resource 'ArcadeDB server configuration settings', and distinguishes it from siblings like 'set_server_setting' and 'server_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?
The description states to use it 'to understand and diagnose server configuration', which provides clear guidance. It does not explicitly mention alternatives but the siblings are distinct enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_databasesA
List all databases available to the authenticated user on the ArcadeDB server.
| 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 for behavioral disclosure. The description is a read-only operation (listing databases) with no side effects implied. It identifies that results are scoped to the authenticated user, which is useful context. However, it doesn't disclose return format, potential pagination, ordering, or error conditions (e.g., unauthenticated, no databases), which would be valuable given no annotations exist.
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, complete sentence with zero wasted words. It states verb, resource, and scope efficiently. There is nothing superfluous and the information density is high for the tool's simplicity.
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 zero-parameter list operation, the description covers the essential semantics. However, given there is no output schema and no annotations, the description could have noted the return structure, whether it includes database URLs, sizes, or just names, and any authentication requirements. For such a simple tool, the description is mostly sufficient but leaves some gaps around what exactly is returned.
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 0 parameters and schema description coverage is 100% (trivially, since there are no params). The description states the scope ('available to authenticated user'), which adds semantic meaning about what is returned. With zero parameters, the baseline of 4 applies, and the description appropriately doesn't need to elaborate further.
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 uses a specific verb ('List') with resource ('all databases') and scope ('available to the authenticated user'), and explicitly names the server (ArcadeDB). It clearly distinguishes this from siblings like get_schema or query which operate on database contents rather than the database list itself. A small deduction for not distinguishing from potential 'create database' or 'drop database' siblings, but given the provided siblings, the purpose is clear.
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 this is for enumerating databases, useful before connecting to or selecting one. However, it doesn't explicitly state when to use this vs alternatives, nor mention prerequisites (e.g., needing authentication first). There are no exclusions or alternative tool mentions. It provides minimal but adequate context for the primary use case, though it lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profiler_startA
Start the query profiler to capture query execution data. The profiler records all queries with their execution times and plans. It auto-stops after the specified timeout (default 60 seconds). Use profiler_stop to stop early and get results, or profiler_status to check progress.
| Name | Required | Description | Default |
|---|---|---|---|
| timeoutSeconds | No | Recording timeout in seconds. The profiler auto-stops after this duration. Default: 60. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description fully discloses behavior: it records all queries with execution times and plans, auto-stops after timeout, and provides instructions for manual stop and status checks.
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?
Three concise sentences: first states purpose, second details behavior, third provides usage guidance for siblings. No superfluous 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 one optional parameter and no output schema, the description covers all necessary aspects: start, auto-stop, manual stop, and status check. It is complete for effective use.
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 sole parameter timeoutSeconds is fully described in the schema (including default, min, max). The description reinforces the default value but adds no new semantic 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 verb ('Start') and resource ('query profiler') and captures query execution data. It distinguishes itself from siblings profiler_status and profiler_stop by focusing on initiation.
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 explicitly mentions when to use alternatives: 'Use profiler_stop to stop early and get results, or profiler_status to check progress.' It also explains the auto-stop behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profiler_statusA
Get the current status of the query profiler. Returns whether the profiler is recording, and if available, the current or last profiling results including captured queries, timing statistics, and server metric snapshots.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description fully transparently states that the tool returns whether the profiler is recording and includes profiling results if available. It implies a read-only operation with no side effects, which is sufficient for this simple getter.
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 long, front-loaded with the main purpose, and every word adds value. No wasted content.
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 parameters and no output schema, the description adequately explains what the tool returns. It covers all essential aspects for a simple status check, though could potentially mention that the profiler must be enabled.
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 no parameters, so the description does not need to add meaning beyond the schema. According to guidelines, 0 parameters baseline is 4.
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 starts with 'Get the current status of the query profiler,' clearly stating the verb and resource. It distinguishes from sibling tools like profiler_start and profiler_stop by focusing on status retrieval, and from server_status by specifying profiler-specific details.
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 does not provide any guidance on when to use this tool versus alternatives such as profiler_start, profiler_stop, or server_status. No explicit context or exclusions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
profiler_stopA
Stop the query profiler and return the captured profiling data. Returns aggregated query statistics including execution counts, timing (min/max/avg/p99), and execution plan step costs. Results are also saved to disk for later retrieval.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly states the tool stops profiling and returns data, and adds that results are saved to disk. However, it doesn't mention if the profiler state is reset or if repeated calls have any 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 two sentences, front-loaded with the primary action and result, followed by additional detail. Every sentence provides 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?
Given no parameters or output schema, the description adequately explains what the tool does and the nature of its return value (aggregated statistics, saved to disk). It could mention if the data is cumulative or cleared, but overall it is sufficiently 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?
No parameters exist (0 params, schema coverage 100%). The description adds no parameter semantics but is not required to. Baseline for 0 params is 4.
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 stops the query profiler and returns captured data. It distinguishes from siblings like 'profiler_start' and 'profiler_status' by specifying the stop action and return of profiling data.
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 after starting the profiler but does not explicitly state when to use, prerequisites (e.g., profiler must be running), or alternatives. The guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queryA
Execute a read-only (idempotent) query against an ArcadeDB database. Use this for SELECT, MATCH, and other read operations. Prefer OpenCypher (language: 'cypher') unless SQL is explicitly requested.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results to return (default: 1000) | |
| query | Yes | The query to execute | |
| database | Yes | The name of the database to query | |
| language | No | Query language: 'sql', 'cypher', 'gremlin', 'graphql', 'mongo' | cypher |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description states read-only and idempotent behavior, which are key traits. However, with no annotations, more details about error handling or limitations would improve 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 sentences, no fluff, front-loaded with purpose. Every part is valuable and efficiently conveyed.
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?
Adequate for a query tool with 4 parameters and no output schema. Could be improved by mentioning return format or common usage patterns, but is sufficient.
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 context about query purpose and language preference, but does not significantly enhance parameter understanding 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 tool executes read-only queries on ArcadeDB, specifying the verb and resource. It distinguishes itself from sibling tools like execute_command by focusing on read operations.
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?
Explicitly instructs to use for SELECT, MATCH, and other read operations, and recommends preferring OpenCypher unless SQL is requested. This provides clear context for when to use this tool, though it does not explicitly mention exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
server_statusA
Get ArcadeDB server information including version, server name, available query languages, and HA/cluster status.
| 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 must fully disclose behavior. It indicates a read operation ('Get') but does not mention any side effects, authentication needs, or rate limits. For a simple info retrieval this is acceptable but insufficient for full 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, focused sentence that lists key details. It is front-loaded and concise 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?
Given the tool has no parameters and no output schema, the description is fairly complete. It specifies the type of information returned. Could be improved by hinting at the output format or structure, but it suffices.
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, so the input schema is fully covered. The baseline for 0 parameters is 4, and the description adds meaning by explaining what information is retrieved, which goes beyond the empty 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 tool retrieves server information, listing specific details like version, server name, query languages, and HA/cluster status. This differentiates it from sibling tools such as 'get_server_settings' or 'list_databases'.
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 checking server status but does not explicitly state when to use vs alternatives or provide exclusions. No guidance on when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_server_settingA
Update a server configuration setting at runtime. Changes take effect immediately but may not persist across server restarts (depends on the setting). Use get_server_settings first to see available settings and their current values.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | The configuration key (e.g., 'arcadedb.maxPageRAM', 'arcadedb.asyncWorkerThreads'). | |
| value | Yes | The new value for the setting. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses key behavioral traits: changes take effect immediately, may not persist across restarts. This goes beyond the schema and provides useful runtime behavior 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?
Two sentences, no filler. First sentence states action and effects; second sentence provides a usage tip. Well-structured and efficient.
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?
Adequate for a simple two-parameter tool with no output schema. Mentions persistence behavior but does not cover error conditions or authorization needs. 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 coverage is 100%, so baseline is 3. Description gives example key values but does not add significant 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?
Clearly states 'Update a server configuration setting at runtime', which is a specific verb (update) and resource (server configuration setting). Distinguishes from sibling get_server_settings which is for reading.
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?
Explicitly advises 'Use get_server_settings first to see available settings and their current values', providing a clear prerequisite. Does not specify when not to use, but the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v26.8.1- Added
get_schema - Added
list_databases
2 tool updates
v26.7.3- Removed
get_schema - Removed
list_databases
10 tool updates
v0.1.0- First observed
execute_command - First observed
get_schema - First observed
get_server_settings - First observed
list_databases - First observed
profiler_start - First observed
profiler_status - First observed
profiler_stop - First observed
query - First observed
server_status - First observed
set_server_setting
TDQS
Each tool targets a clearly distinct concern: server admin (status, settings), profiler lifecycle (start/stop/status), and database operations (list, schema, query, execute). No two tools overlap in purpose, making misselection unlikely.
Tools follow a consistent verb_noun pattern: profiler_start/stop/status, get_server_settings, set_server_setting, list_databases, get_schema, execute_command, query, server_status. The only slight deviation is 'execute_command' and 'query' which use more generic verbs rather than a resource-specific noun, and 'server_status' uses a different word order than get_/set_ prefixes.
Ten tools is well-scoped for a DBMS server MCP. Each tool maps to a meaningful operation a client would need: server introspection, config management, profiling, and database CRUD/querying. Nothing feels redundant or missing at the top level.
The surface covers server status, configuration management, profiling, database enumeration, schema retrieval, and both read and write operations. Minor gaps include no database creation/deletion and no explicit way to retrieve saved profiler results from disk, but the core admin+query workflow is complete.
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
A collaborative substrate over your data: vector, knowledge graph, SQL, geospatial, streaming.
Persistent memory for AI agents. Semantic search, memory graph, W3C DID identity.
- busabaseOAuthcom.busabase
Database for your AI agent. Turn its output into data, docs, skills, and apps you can actually use.
Universal persistent memory and knowledge retrieval layer for AI agents and LLMs.
11
Related MCP Servers
- AlicenseBqualityNot gradedmaintenanceZero-config graph DB for builders, AI agents, and SaaS teams who move fast2931-
- AlicenseNot gradedqualityNot gradedmaintenanceA lightning-fast, self-hosted knowledge store and memory layer for AI agents-
- FlicenseNot gradedqualityBmaintenanceMunin is a high-performance, pragmatic memory layer for AI agents (Cursor, Claude Code, OpenClaw, Gemini CLI,...). Unlike other solutions, Munin focuses on developer productivity with: * Multi-Project Support: Isolate memories into separate "brains" (Context Cores). * GraphRAG: Automatically builds a knowledge graph from your context. * Sub-200ms Search: Blazing fast Hybrid & Semantic3-
- AlicenseBqualityAmaintenanceEnables building and querying vector-based knowledge graphs with node and edge management and semantic search.513MIT
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/ArcadeData/arcadedb'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
