MariaDB, for the agent
you already code with.
Skills, tools, a real server.
Install one plugin and your coding agent gains 82 MariaDB skills and 28 MCP tools — it can read your schema, run SQL, version a migration and spin up a throwaway MariaDB instance to try it on first. Every tutorial here is something you can run in the next ten minutes.
Create a schema for a note-taking app, deploy a MariaDB sandbox on port 3310 and run the schema on it.
# Writing a SQL file optimized for MariaDB echo "CREATE SCHEMA notes_app; …" > notes_schema.sql sandbox.deploy(port=3310, password="…") db.connect("root@127.0.0.1:3310") db.execute_sql_script(sql_script="notes_schema.sql") db.list_objects(schema_name="notes_app") → user, note, notebook, tag, note_tag
No Docker, no container runtime, no administrator rights, no cloud account — and no risk to a real database, because the sandbox is a throwaway server that lives in a folder you can delete.
Getting Started
Three steps take you from a bare checkout to an agent that has built a schema and deployed it on a running MariaDB server. The skills work immediately with no database at all; the MCP server is one setup command away.
1 Install into your harness
Claude Code and Codex install from the plugin marketplace in two commands.
OpenCode merges one mcp block; Pi installs the repo as a package.
The skills are live the moment the plugin loads — no database required.
2 Configure the MCP server
The server starts out allowed to reach nothing. One run of
mariadb-shell -- mcp setup tells it which connections it may open
and which folders it may touch. Passwords go into the shell's secret store,
never into a config file the agent can read.
3 Build something real
The first tutorial is a complete round trip: the agent designs a Notes App schema using the MariaDB skills, deploys a throwaway sandbox server, runs the schema on it, and reads the objects back to prove it worked.
Nothing in it touches a database you care about, and the whole thing is undone by deleting the sandbox.
Start the first tutorial →CREATE SCHEMA IF NOT EXISTS `notes_app`
CHARACTER SET utf8mb4
COLLATE utf8mb4_uca1400_ai_ci;
-- A person who writes notes.
CREATE OR REPLACE TABLE `notes_app`.`user` (
`id` UUID NOT NULL DEFAULT UUID_v7(),
`email` VARCHAR(255) NOT NULL,
`display_name` VARCHAR(120) NOT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uq_user_email` (`email`)
) ENGINE=InnoDB;
The native UUID type and UUID_v7() come from the
skills, not from the model's memory — that is the whole point of shipping them.
Start here
The two tutorials that everything else builds on.
Build a Notes App schema and deploy it on a sandbox
The complete round trip. The agent designs a MariaDB schema for a note-taking app using the bundled skills, deploys a throwaway MariaDB server, runs the schema on it, and reads the objects back to prove it worked.
Run SQL and SQL scripts with the db.* tools
Open a connection, run a single statement, run a whole script, and read a result set back. Covers the one distinction that causes most db.* surprises — execute_sql runs on your session, execute_sql_script does not.
Structured learning paths
Four paths, each one a progression where every tutorial builds on the last. Pick the one that matches what you are trying to do, not your experience level.
First Steps with the MariaDB AI Plugins
From a fresh install to an agent that can create a schema, run it on a throwaway server and read the result back. Start here if you have never pointed an AI agent at a database before — every step is reversible and nothing touches a real server.
- 1
- 2
- 3
The Schema Lifecycle with MSM
A schema is never finished. This path takes the Notes App from a one-off create script to a versioned MariaDB Schema Management project with releases, a filled migration script and an in-place upgrade of a live install — the workflow that keeps a schema deployable to servers running any earlier version.
- 1
- 2
- 3
Operate and Optimize
The day-to-day work after the schema exists: managing throwaway servers to test against, reading an existing database you did not design, getting the agent to diagnose a slow query with EXPLAIN instead of guessing at indexes, and checking a schema against two MariaDB releases at once.
- 1
- 2
- 3
- 4
Build an API, or Move off MySQL
The two largest things the plugins automate end to end. Put REST endpoints in front of the Notes App schema with the MariaDB REST Service DDL, then drive a full MySQL-to-MariaDB migration with the migrator tooling.
- 1
- 2
Skills, an MCP server, and a shell
Installing a plugin gives you three separate things.
82 MariaDB skills
Reference material the agent reads when it becomes relevant: how
ALTER TABLE behaves in MariaDB, how vector indexes work, which
connector to use from Python or Java, what breaks when you move an application
over from MySQL. Baseline MariaDB 11.8 LTS.
- Work straight away — no database, no setup
- Statement-level, function-level, connectors and topical layers
- Vendored into the plugin, so they ship with a version you control
28 MCP tools
A live connection to a MariaDB server. The agent can list schemas, describe objects, run SQL and scripts, manage versioned schema projects, and deploy a throwaway server instance to try something dangerous on first.
db.*— connections, schemas, objects, SQLmsm.*— versioned schema projects and releasessandbox.*— local throwaway MariaDB instances
mariadb-shell
MariaDB's command-line shell — a port of MySQL Shell — installed automatically the first time an agent starts the MCP server. The server runs inside it as a plugin, which is where the high-performance connections, the credential store and the sandbox handling come from.
- It is also a perfectly good SQL client for you: run it and type
\help - Minimum version 26.9.1; the launcher installs it if nothing suitable is on
PATH
Safe by construction
The MCP server refuses everything it has not been told about. It cannot reach a connection you did not configure, and it cannot read or write a directory you did not allow. Give each MCP account only the privileges it needs — read-only on one schema is a perfectly good setting.
- Connections are an allow-list, not a free-form host field
- File access is an allow-list of paths
- Passwords live in the shell's secret store, not in agent-readable config
Ready to point an agent at MariaDB?
Install takes two commands. The first tutorial takes twenty minutes and leaves nothing behind but a folder you can delete.