← Explore all mcp servers

DATABASE DEVELOPMENT / MariaDB

MCP MariaDB Server

Python MCP server from the MariaDB organisation that lists databases and schemas, runs statements through a default read-only gate, and can register vector-store tools when an embedding provider is set.

“The MCP MariaDB Server provides a Model Context Protocol (MCP) interface for managing and querying MariaDB databases, supporting both standard SQL operations and advanced vector/embedding-based search.”

01 / THE REASONING

Why this made the selection.

  • MariaDB publishes this server in MariaDB/mcp. At 64876fb1a4cb81bf51564c46eb60401097c067cc, pyproject.toml names the package mariadb-server version 0.2.6, requires Python >=3.11, and describes it as MariaDB MCP Server. The LICENSE file is the MIT License and its copyright line is Copyright (c) 2025 MariaDB.
  • The README lists list_databases, list_tables, get_table_schema, get_table_schema_with_relations, execute_sql, and create_database, plus optional vector-store tools. src/server.py defines methods with those names.

02 / THE REVIEW RECORD

What we actually inspected.

Source review has boundaries.
A clear record is more useful than a “safe” badge.

Material inspected

  • README.md at 64876fb1a4cb81bf51564c46eb60401097c067cc: opening sentence, tool list, environment table, run commands, stdio and Docker JSON.
  • LICENSE at the same revision: MIT License, Copyright (c) 2025 MariaDB.
  • pyproject.toml at the same revision: name mariadb-server, version 0.2.6, requires-python >=3.11. No project.scripts table.
  • src/config.py at the same revision: MCP_READ_ONLY and MCP_BLOCK_SENSITIVE_SHOW default to the string true.
  • src/server.py at the same revision: allowed statement prefixes, the read-only PermissionError, create_database SQL, and the stdio, sse, and http branches in run_async_server.

Our findings

  • The README bullet for execute_sql names SELECT, SHOW, and DESCRIBE. The code prefix tuple also includes DESC and USE, and rejects every other prefix while MCP_READ_ONLY is true.
  • create_database is registered and builds CREATE DATABASE IF NOT EXISTS. That statement does not pass the default prefix gate.
  • The stdio JSON and the root-level uv run server.py line do not match the path src/server.py that is in the tree. The Docker JSON does use src/server.py.
  • The HTTP client example sets type to streamable-http. The server run line for that mode passes --transport http.

Not established by this review

  • Not executed: it was not installed or run.
  • No MariaDB connection was opened and no embedding provider was called.

The review applies to the material and revision named here. A newer upstream release can change its behavior.

03 / PUT IT TO WORK

Connect a server deliberately.

Upstream setup instructions ↗
  1. The README says to clone the repository, install uv, run uv lock and uv sync, create a .env file, and start the process. Those commands are in separate fenced blocks, so none is copied into install.command.
  2. The printed stdio line is uv run server.py. The file in this tree is src/server.py.
  3. Set DB_HOST, DB_USER, and DB_PASSWORD. Leave MCP_READ_ONLY unset to keep the default true.

Before you start

  • Python 3.11 and uv.
  • A MariaDB server and a database user.

Documented configuration example

Use the client and authentication context described in the setup guidance. Configuration formats vary between hosts.

{
  "mcpServers": {
    "MariaDB_Server": {
      "command": "uv",
      "args": [
        "--directory",
        "path/to/mariadb-mcp-server/",
        "run",
        "server.py"
      ],
      "envFile": "path/to/mcp-server-mariadb-vector/.env"
    }
  }
}

04 / FOLLOW THE EVIDENCE

The source trail.

Our notes are separate from the original resource.
Check upstream before adopting a new version.

  1. https://github.com/MariaDB/mcp/blob/64876fb1a4cb81bf51564c46eb60401097c067cc/README.md

    Supports: upstreamDescription, install, configExample, transports, bestFor, limitations, access

  2. MIT License at 64876fb1 ↗Checked

    https://github.com/MariaDB/mcp/blob/64876fb1a4cb81bf51564c46eb60401097c067cc/LICENSE

    Supports: license

  3. https://github.com/MariaDB/mcp/blob/64876fb1a4cb81bf51564c46eb60401097c067cc/pyproject.toml

    Supports: language, compatibility, whySelected

  4. https://github.com/MariaDB/mcp/blob/64876fb1a4cb81bf51564c46eb60401097c067cc/src/server.py

    Supports: limitations, access, review.findings

  5. https://github.com/MariaDB/mcp/blob/64876fb1a4cb81bf51564c46eb60401097c067cc/src/config.py

    Supports: limitations, access

Evidence & Ask