ArcadeDB MCP Server

MCP endpoint built into the ArcadeDB multi-model database for schema, queries, search and graph upserts

Official · Arcade Data Java Local · stdio, Streamable HTTP Databases

75 popularity score ★ 1.2k ⇣ 562k pulls

Connect your client

Local (once it is running)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add --transport http arcadedb http://localhost:2480/api/v1/mcp
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "arcadedb": {
      "url": "http://localhost:2480/api/v1/mcp"
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "arcadedb": {
      "type": "http",
      "url": "http://localhost:2480/api/v1/mcp"
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.arcadedb]
url = "http://localhost:2480/api/v1/mcp"
Gemini CLITerminal
gemini mcp add --scope user --transport http arcadedb http://localhost:2480/api/v1/mcp
Local (from source)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

It needs ARCADEDB_SETTINGS. Replace each <NAME> with your value.

FirstTerminal
Download the full release package from https://github.com/ArcadeData/arcadedb/releases and unpack it to <ABSOLUTE_PATH_TO_ARCADEDB>
Claude CodeTerminal
claude mcp add arcadedb -e ARCADEDB_SETTINGS=<ARCADEDB_SETTINGS> -- '<ABSOLUTE_PATH_TO_ARCADEDB>/bin/mcp-stdio.sh'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "arcadedb": {
      "command": "<ABSOLUTE_PATH_TO_ARCADEDB>/bin/mcp-stdio.sh",
      "args": [],
      "env": {
        "ARCADEDB_SETTINGS": "<ARCADEDB_SETTINGS>"
      }
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "arcadedb": {
      "command": "<ABSOLUTE_PATH_TO_ARCADEDB>/bin/mcp-stdio.sh",
      "args": [],
      "env": {
        "ARCADEDB_SETTINGS": "<ARCADEDB_SETTINGS>"
      }
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "arcadedb": {
      "type": "stdio",
      "command": "<ABSOLUTE_PATH_TO_ARCADEDB>/bin/mcp-stdio.sh",
      "args": [],
      "env": {
        "ARCADEDB_SETTINGS": "<ARCADEDB_SETTINGS>"
      }
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.arcadedb]
command = "<ABSOLUTE_PATH_TO_ARCADEDB>/bin/mcp-stdio.sh"
args = []

[mcp_servers.arcadedb.env]
ARCADEDB_SETTINGS = "<ARCADEDB_SETTINGS>"
Gemini CLITerminal
gemini mcp add --scope user -e ARCADEDB_SETTINGS=<ARCADEDB_SETTINGS> arcadedb '<ABSOLUTE_PATH_TO_ARCADEDB>/bin/mcp-stdio.sh'

Settings 1

ARCADEDB_SETTINGS Required: Server settings as -D flags; the stdio launcher exits unless it holds -Darcadedb.server.rootPassword=<PASSWORD>.

What it does

ArcadeDB is an open-source multi-model database (graph, document, key-value, vector, time-series), and recent releases carry an MCP server inside the database process itself. There is nothing separate to install: the module ships in the standard distribution and Docker image, and is switched off until enabled in config/mcp-config.json, through the /api/v1/mcp/config endpoint, or from the MCP tab in ArcadeDB Studio.

Once on, a client can list databases, read a database's types, properties and indexes, pull a few sample records per type, and run queries in SQL, Cypher, Gremlin, GraphQL or MongoDB syntax. Search tools cover vector indexes (dense or sparse), full-text indexes, and a hybrid mode that fuses both and can walk up to three hops of graph edges from the hits. Two upsert tools merge entities and relationships by match keys, aimed at agents that keep their memory in a graph. Operator tools show server status, run the query profiler, and read or change server settings. Two prompts, graphrag_query and build_knowledge_graph, guide a model through retrieval and through extracting a knowledge graph from text.

It is reached in two ways: HTTP at POST /api/v1/mcp on a running server (port 2480 by default), signed in with ArcadeDB credentials as Basic auth or a Bearer API token; or stdio, by having the client launch bin/mcp-stdio.sh, which starts an embedded ArcadeDB server and acts as root. Version 26.10.1 registers 16 tools (counted in MCPDispatcher.java at that tag). Every write and admin permission defaults to off, and a tool profile (all, rag or admin) can narrow which tools are offered, globally or per user or API token.

What it needs

RuntimeJava 25+

An ArcadeDB server, 26.3.1 or later, from the full, minimal or headless release package or the arcadedata/arcadedb Docker image (the image bundles Java 25; a bare distribution needs Java 21 or later). The MCP module must be enabled for HTTP use. The stdio launcher is a shell script (bin/mcp-stdio.sh) and needs the root password set through ARCADEDB_SETTINGS. HTTP clients need an ArcadeDB user listed in allowedUsers (only root by default), or an API token.

Limits

Writes, deletes, schema changes and admin tools are refused until allowInsert, allowUpdate, allowDelete, allowSchemaChange or allowAdmin is turned on; the upsert tools need both insert and update. query and execute_command return 1,000 records by default, up to 100,000 with limit; sample_records returns 3 per type, up to 20; vector and hybrid search return at most 1,000 results; hybrid graph expansion stops at 3 hops. It does not create embeddings: callers must supply the query vector. set_server_setting changes are runtime only, and whether one survives a restart depends on the setting. Hiding engine error detail in production mode is documented for 26.11.1, which is not yet released.

Who it suits

Suits teams already running ArcadeDB who want an assistant to explore a schema, answer questions with vector, full-text or graph retrieval, or store agent memory as a graph, with permissions set per operation, per database and per user. Because it is part of the database, it is tied to ArcadeDB; it is not a general client for other databases. Those who only need Cypher or SQL execution from a shared multi-database tool can use Google's MCP Toolbox, which ArcadeDB's own pages say supports it over Bolt; the built-in server offers more tools, including search, upserts and admin operations.

Tools 16

list_databases
Lists the databases the signed-in user can access.
get_schema
Returns a database's types, their properties and indexes.
query
Runs a read-only query in SQL, Cypher, Gremlin, GraphQL or MongoDB syntax.
execute_command
Runs a write or schema command, subject to the permission flags.
sample_records
Fetches a few example records from chosen types.
vector_search
Finds nearest neighbours in a dense or sparse vector index for a given vector.
full_text_search
Searches a full-text index with a text query.
hybrid_search
Fuses vector and full-text results, optionally expanding along graph edges.
upsert_entity
Creates or updates a record matched by key properties.
upsert_relationship
Creates or updates an edge between two records found by match keys.
server_status
Reports server version, query languages and accessible databases.
profiler_start
Starts recording query timings for a set number of seconds.
profiler_stop
Stops the profiler and returns per-query statistics.
profiler_status
Shows whether the profiler is running and what it has collected.
get_server_settings
Lists server settings with current and default values, secrets masked.
set_server_setting
Changes a server setting at runtime; needs admin permission.

Similar servers