[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-mariadb-mariadb-mcp":3,"mdc-2l33rr-key":31,"related-org-mariadb-mariadb-mcp":1404,"related-repo-mariadb-mariadb-mcp":1501},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":20,"repoUrl":21,"updatedAt":22,"license":23,"forks":24,"topics":25,"repo":26,"sourceUrl":29,"mdContent":30},"mariadb-mcp","connect AI agents to MariaDB","How to connect AI agents to MariaDB using the Model Context Protocol (MCP). Use when setting up MCP with MariaDB, connecting Claude Code, Cursor, or other AI tools to a MariaDB database, enabling natural language database queries, or building AI applications that need live database access. The MariaDB MCP Server lets agents query schemas, run read-only SQL, and perform semantic search against MariaDB.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},"mariadb","MariaDB","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmariadb.png",[12,14,17],{"name":9,"slug":8,"type":13},"tag",{"name":15,"slug":16,"type":13},"Database","database",{"name":18,"slug":19,"type":13},"MCP","mcp",9,"https:\u002F\u002Fgithub.com\u002FMariaDB\u002Fskills","2026-07-13T06:14:00.682655",null,2,[],{"repoUrl":21,"stars":20,"forks":24,"topics":27,"description":28},[],"MariaDB skills for Claude Code and AI agents - because it is not MySQL","https:\u002F\u002Fgithub.com\u002FMariaDB\u002Fskills\u002Ftree\u002FHEAD\u002Fmariadb-mcp","---\nname: mariadb-mcp\ndescription: \"How to connect AI agents to MariaDB using the Model Context Protocol (MCP). Use when setting up MCP with MariaDB, connecting Claude Code, Cursor, or other AI tools to a MariaDB database, enabling natural language database queries, or building AI applications that need live database access. The MariaDB MCP Server lets agents query schemas, run read-only SQL, and perform semantic search against MariaDB.\"\n---\n\n# MariaDB MCP Server\n\n*Last updated: 2026-05-25*\n\nThe Model Context Protocol (MCP) lets AI agents connect to external tools and data sources. The MariaDB MCP Server gives agents direct, controlled access to a MariaDB database — reading schemas, running queries, and optionally performing vector\u002Fsemantic search — without requiring the developer to write integration code.\n\nThe server is open source (MIT), maintained by the MariaDB Foundation at [github.com\u002FMariaDB\u002Fmcp](https:\u002F\u002Fgithub.com\u002FMariaDB\u002Fmcp).\n\n> **Requires:** Python 3.11+, `uv` package manager, MariaDB server.\n\n## What Agents Can Do\n\nWith the MariaDB MCP Server connected, an agent can:\n\n- List databases and tables\n- Read table schemas including foreign key relationships\n- Run read-only SQL queries (`SELECT`, `SHOW`, `DESCRIBE`)\n- Create databases\n- Perform semantic\u002Fvector search on stored documents (when embedding provider is configured)\n\nWrite operations (`INSERT`, `UPDATE`, `DELETE`) are disabled by default.\n\n## Installation\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FMariaDB\u002Fmcp\ncd mcp\ncp .env.example .env\n# Edit .env with your database credentials\n```\n\n**Minimum `.env` configuration:**\n```\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_USER=myuser\nDB_PASSWORD=mypassword\nDB_NAME=mydatabase\nMCP_READ_ONLY=true\n```\n\n**Run the server:**\n```bash\nuv run server.py\n```\n\n## Connecting Claude Code, Cursor, or Windsurf\n\nUse the official server from a local clone (see Installation). Point your MCP config at `uv run server.py` and the `.env` file with database credentials.\n\n**Claude Code** (project-scoped `.mcp.json` at the repo root):\n\n```json\n{\n  \"mcpServers\": {\n    \"mariadb\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"--directory\",\n        \"\u002Fabsolute\u002Fpath\u002Fto\u002Fmcp\",\n        \"run\",\n        \"server.py\"\n      ],\n      \"envFile\": \"\u002Fabsolute\u002Fpath\u002Fto\u002Fmcp\u002F.env\"\n    }\n  }\n}\n```\n\nOr add via CLI (replace paths):\n\n```bash\nclaude mcp add mariadb -- uv --directory \u002Fabsolute\u002Fpath\u002Fto\u002Fmcp run server.py\n```\n\n**Cursor \u002F VS Code** — same `mcpServers` block in MCP settings; use absolute paths.\n\n**SSE or HTTP** — run `uv run server.py --transport sse` (or `http`) and connect to the URL; see [MariaDB\u002Fmcp README — Integration](https:\u002F\u002Fgithub.com\u002FMariaDB\u002Fmcp#integration---claude-desktopcursorwindsurfvscode).\n\n> **Not official:** PyPI package `mcp-server-mariadb` (`uvx mcp-server-mariadb`) is a third-party project, not maintained by the MariaDB Foundation. Prefer `github.com\u002FMariaDB\u002Fmcp` unless you have a specific reason to use the PyPI package.\n\n## Available Tools\n\n| Tool | What it does |\n|---|---|\n| `list_databases` | Lists all databases the user can access |\n| `list_tables` | Lists tables in a database |\n| `get_table_schema` | Returns column definitions and types |\n| `get_table_schema_with_relations` | Includes foreign key relationships |\n| `execute_sql` | Runs a read-only SQL query |\n| `create_database` | Creates a new database |\n\n## Vector & Semantic Search (Optional)\n\nWhen an embedding provider is configured, additional tools are available for building RAG pipelines directly through the MCP interface:\n\n| Tool | What it does |\n|---|---|\n| `create_vector_store` | Creates a vector store table |\n| `insert_docs_vector_store` | Embeds and stores documents |\n| `search_vector_store` | Semantic similarity search |\n| `list_vector_stores` | Lists available vector stores |\n| `delete_vector_store` | Removes a vector store |\n\n**Configure an embedding provider in `.env`:**\n```\nEMBEDDING_PROVIDER=openai   # or gemini or huggingface\nOPENAI_API_KEY=sk-...\n```\n\nFor building pure vector search applications, using MariaDB's native `VECTOR` type and `VEC_DISTANCE_*` functions directly is more efficient. The MCP vector tools are useful for quick prototyping and when AI agents need to manage the vector store themselves. See the `mariadb-vector` skill for native vector SQL.\n\n## Security: Read-Only Access\n\nThe `MCP_READ_ONLY=true` setting enforces read-only at the application level by filtering queries. For production or shared environments, also restrict at the database level:\n\n```sql\nCREATE USER 'mcp_agent'@'localhost' IDENTIFIED BY 'password';\nGRANT SELECT, SHOW DATABASES ON *.* TO 'mcp_agent'@'localhost';\n-- Do NOT grant INSERT, UPDATE, DELETE, DROP\n```\n\nApplication-level read-only alone is not sufficient — database-level privileges are the reliable guarantee.\n\n## Key Gotchas\n\n- **`uv` is required**: the MCP server uses `uv` for dependency management, not `pip` directly. Install: `pip install uv` or `brew install uv`.\n- **Read-only is not fully enforced in software**: rely on database-level privileges, not just `MCP_READ_ONLY=true`.\n- **Vector tools are disabled** until `EMBEDDING_PROVIDER` is set in `.env`.\n- **Connection pooling** defaults to 10 connections — tune `MCP_MAX_POOL_SIZE` for concurrent agent use.\n- **SSL\u002FTLS**: configure `DB_SSL_CA`, `DB_SSL_CERT`, `DB_SSL_KEY` in `.env` for remote or production databases.\n- **Enterprise version**: MariaDB also offers a MariaDB Enterprise MCP Server with additional access control and multi-agent features. See [mariadb.com\u002Fproducts\u002Fmcp-server](https:\u002F\u002Fmariadb.com\u002Fproducts\u002Fmcp-server\u002F).\n\n## Sources\n\n- [MariaDB MCP Server — GitHub](https:\u002F\u002Fgithub.com\u002FMariaDB\u002Fmcp)\n- [MariaDB MCP Server product page — mariadb.com](https:\u002F\u002Fmariadb.com\u002Fproducts\u002Fmcp-server\u002F)\n- [Connect Claude Code to tools via MCP — Claude Code Docs](https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fmcp)\n\n*For topics not covered here, see the official MariaDB documentation at [mariadb.com\u002Fdocs](https:\u002F\u002Fmariadb.com\u002Fdocs).*\n",{"data":32,"body":33},{"name":4,"description":6},{"type":34,"children":35},"root",[36,45,55,60,76,100,107,112,165,192,198,275,291,301,309,333,339,359,377,665,670,728,745,779,815,821,951,957,962,1067,1081,1090,1119,1125,1138,1171,1176,1182,1345,1351,1382,1398],{"type":37,"tag":38,"props":39,"children":41},"element","h1",{"id":40},"mariadb-mcp-server",[42],{"type":43,"value":44},"text","MariaDB MCP Server",{"type":37,"tag":46,"props":47,"children":48},"p",{},[49],{"type":37,"tag":50,"props":51,"children":52},"em",{},[53],{"type":43,"value":54},"Last updated: 2026-05-25",{"type":37,"tag":46,"props":56,"children":57},{},[58],{"type":43,"value":59},"The Model Context Protocol (MCP) lets AI agents connect to external tools and data sources. The MariaDB MCP Server gives agents direct, controlled access to a MariaDB database — reading schemas, running queries, and optionally performing vector\u002Fsemantic search — without requiring the developer to write integration code.",{"type":37,"tag":46,"props":61,"children":62},{},[63,65,74],{"type":43,"value":64},"The server is open source (MIT), maintained by the MariaDB Foundation at ",{"type":37,"tag":66,"props":67,"children":71},"a",{"href":68,"rel":69},"https:\u002F\u002Fgithub.com\u002FMariaDB\u002Fmcp",[70],"nofollow",[72],{"type":43,"value":73},"github.com\u002FMariaDB\u002Fmcp",{"type":43,"value":75},".",{"type":37,"tag":77,"props":78,"children":79},"blockquote",{},[80],{"type":37,"tag":46,"props":81,"children":82},{},[83,89,91,98],{"type":37,"tag":84,"props":85,"children":86},"strong",{},[87],{"type":43,"value":88},"Requires:",{"type":43,"value":90}," Python 3.11+, ",{"type":37,"tag":92,"props":93,"children":95},"code",{"className":94},[],[96],{"type":43,"value":97},"uv",{"type":43,"value":99}," package manager, MariaDB server.",{"type":37,"tag":101,"props":102,"children":104},"h2",{"id":103},"what-agents-can-do",[105],{"type":43,"value":106},"What Agents Can Do",{"type":37,"tag":46,"props":108,"children":109},{},[110],{"type":43,"value":111},"With the MariaDB MCP Server connected, an agent can:",{"type":37,"tag":113,"props":114,"children":115},"ul",{},[116,122,127,155,160],{"type":37,"tag":117,"props":118,"children":119},"li",{},[120],{"type":43,"value":121},"List databases and tables",{"type":37,"tag":117,"props":123,"children":124},{},[125],{"type":43,"value":126},"Read table schemas including foreign key relationships",{"type":37,"tag":117,"props":128,"children":129},{},[130,132,138,140,146,147,153],{"type":43,"value":131},"Run read-only SQL queries (",{"type":37,"tag":92,"props":133,"children":135},{"className":134},[],[136],{"type":43,"value":137},"SELECT",{"type":43,"value":139},", ",{"type":37,"tag":92,"props":141,"children":143},{"className":142},[],[144],{"type":43,"value":145},"SHOW",{"type":43,"value":139},{"type":37,"tag":92,"props":148,"children":150},{"className":149},[],[151],{"type":43,"value":152},"DESCRIBE",{"type":43,"value":154},")",{"type":37,"tag":117,"props":156,"children":157},{},[158],{"type":43,"value":159},"Create databases",{"type":37,"tag":117,"props":161,"children":162},{},[163],{"type":43,"value":164},"Perform semantic\u002Fvector search on stored documents (when embedding provider is configured)",{"type":37,"tag":46,"props":166,"children":167},{},[168,170,176,177,183,184,190],{"type":43,"value":169},"Write operations (",{"type":37,"tag":92,"props":171,"children":173},{"className":172},[],[174],{"type":43,"value":175},"INSERT",{"type":43,"value":139},{"type":37,"tag":92,"props":178,"children":180},{"className":179},[],[181],{"type":43,"value":182},"UPDATE",{"type":43,"value":139},{"type":37,"tag":92,"props":185,"children":187},{"className":186},[],[188],{"type":43,"value":189},"DELETE",{"type":43,"value":191},") are disabled by default.",{"type":37,"tag":101,"props":193,"children":195},{"id":194},"installation",[196],{"type":43,"value":197},"Installation",{"type":37,"tag":199,"props":200,"children":205},"pre",{"className":201,"code":202,"language":203,"meta":204,"style":204},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git clone https:\u002F\u002Fgithub.com\u002FMariaDB\u002Fmcp\ncd mcp\ncp .env.example .env\n# Edit .env with your database credentials\n","bash","",[206],{"type":37,"tag":92,"props":207,"children":208},{"__ignoreMap":204},[209,232,246,265],{"type":37,"tag":210,"props":211,"children":214},"span",{"class":212,"line":213},"line",1,[215,221,227],{"type":37,"tag":210,"props":216,"children":218},{"style":217},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[219],{"type":43,"value":220},"git",{"type":37,"tag":210,"props":222,"children":224},{"style":223},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[225],{"type":43,"value":226}," clone",{"type":37,"tag":210,"props":228,"children":229},{"style":223},[230],{"type":43,"value":231}," https:\u002F\u002Fgithub.com\u002FMariaDB\u002Fmcp\n",{"type":37,"tag":210,"props":233,"children":234},{"class":212,"line":24},[235,241],{"type":37,"tag":210,"props":236,"children":238},{"style":237},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[239],{"type":43,"value":240},"cd",{"type":37,"tag":210,"props":242,"children":243},{"style":223},[244],{"type":43,"value":245}," mcp\n",{"type":37,"tag":210,"props":247,"children":249},{"class":212,"line":248},3,[250,255,260],{"type":37,"tag":210,"props":251,"children":252},{"style":217},[253],{"type":43,"value":254},"cp",{"type":37,"tag":210,"props":256,"children":257},{"style":223},[258],{"type":43,"value":259}," .env.example",{"type":37,"tag":210,"props":261,"children":262},{"style":223},[263],{"type":43,"value":264}," .env\n",{"type":37,"tag":210,"props":266,"children":268},{"class":212,"line":267},4,[269],{"type":37,"tag":210,"props":270,"children":272},{"style":271},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[273],{"type":43,"value":274},"# Edit .env with your database credentials\n",{"type":37,"tag":46,"props":276,"children":277},{},[278],{"type":37,"tag":84,"props":279,"children":280},{},[281,283,289],{"type":43,"value":282},"Minimum ",{"type":37,"tag":92,"props":284,"children":286},{"className":285},[],[287],{"type":43,"value":288},".env",{"type":43,"value":290}," configuration:",{"type":37,"tag":199,"props":292,"children":296},{"className":293,"code":295,"language":43},[294],"language-text","DB_HOST=127.0.0.1\nDB_PORT=3306\nDB_USER=myuser\nDB_PASSWORD=mypassword\nDB_NAME=mydatabase\nMCP_READ_ONLY=true\n",[297],{"type":37,"tag":92,"props":298,"children":299},{"__ignoreMap":204},[300],{"type":43,"value":295},{"type":37,"tag":46,"props":302,"children":303},{},[304],{"type":37,"tag":84,"props":305,"children":306},{},[307],{"type":43,"value":308},"Run the server:",{"type":37,"tag":199,"props":310,"children":312},{"className":201,"code":311,"language":203,"meta":204,"style":204},"uv run server.py\n",[313],{"type":37,"tag":92,"props":314,"children":315},{"__ignoreMap":204},[316],{"type":37,"tag":210,"props":317,"children":318},{"class":212,"line":213},[319,323,328],{"type":37,"tag":210,"props":320,"children":321},{"style":217},[322],{"type":43,"value":97},{"type":37,"tag":210,"props":324,"children":325},{"style":223},[326],{"type":43,"value":327}," run",{"type":37,"tag":210,"props":329,"children":330},{"style":223},[331],{"type":43,"value":332}," server.py\n",{"type":37,"tag":101,"props":334,"children":336},{"id":335},"connecting-claude-code-cursor-or-windsurf",[337],{"type":43,"value":338},"Connecting Claude Code, Cursor, or Windsurf",{"type":37,"tag":46,"props":340,"children":341},{},[342,344,350,352,357],{"type":43,"value":343},"Use the official server from a local clone (see Installation). Point your MCP config at ",{"type":37,"tag":92,"props":345,"children":347},{"className":346},[],[348],{"type":43,"value":349},"uv run server.py",{"type":43,"value":351}," and the ",{"type":37,"tag":92,"props":353,"children":355},{"className":354},[],[356],{"type":43,"value":288},{"type":43,"value":358}," file with database credentials.",{"type":37,"tag":46,"props":360,"children":361},{},[362,367,369,375],{"type":37,"tag":84,"props":363,"children":364},{},[365],{"type":43,"value":366},"Claude Code",{"type":43,"value":368}," (project-scoped ",{"type":37,"tag":92,"props":370,"children":372},{"className":371},[],[373],{"type":43,"value":374},".mcp.json",{"type":43,"value":376}," at the repo root):",{"type":37,"tag":199,"props":378,"children":382},{"className":379,"code":380,"language":381,"meta":204,"style":204},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"mcpServers\": {\n    \"mariadb\": {\n      \"command\": \"uv\",\n      \"args\": [\n        \"--directory\",\n        \"\u002Fabsolute\u002Fpath\u002Fto\u002Fmcp\",\n        \"run\",\n        \"server.py\"\n      ],\n      \"envFile\": \"\u002Fabsolute\u002Fpath\u002Fto\u002Fmcp\u002F.env\"\n    }\n  }\n}\n","json",[383],{"type":37,"tag":92,"props":384,"children":385},{"__ignoreMap":204},[386,395,424,448,488,514,536,557,578,595,604,638,647,656],{"type":37,"tag":210,"props":387,"children":388},{"class":212,"line":213},[389],{"type":37,"tag":210,"props":390,"children":392},{"style":391},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[393],{"type":43,"value":394},"{\n",{"type":37,"tag":210,"props":396,"children":397},{"class":212,"line":24},[398,403,409,414,419],{"type":37,"tag":210,"props":399,"children":400},{"style":391},[401],{"type":43,"value":402},"  \"",{"type":37,"tag":210,"props":404,"children":406},{"style":405},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[407],{"type":43,"value":408},"mcpServers",{"type":37,"tag":210,"props":410,"children":411},{"style":391},[412],{"type":43,"value":413},"\"",{"type":37,"tag":210,"props":415,"children":416},{"style":391},[417],{"type":43,"value":418},":",{"type":37,"tag":210,"props":420,"children":421},{"style":391},[422],{"type":43,"value":423}," {\n",{"type":37,"tag":210,"props":425,"children":426},{"class":212,"line":248},[427,432,436,440,444],{"type":37,"tag":210,"props":428,"children":429},{"style":391},[430],{"type":43,"value":431},"    \"",{"type":37,"tag":210,"props":433,"children":434},{"style":217},[435],{"type":43,"value":8},{"type":37,"tag":210,"props":437,"children":438},{"style":391},[439],{"type":43,"value":413},{"type":37,"tag":210,"props":441,"children":442},{"style":391},[443],{"type":43,"value":418},{"type":37,"tag":210,"props":445,"children":446},{"style":391},[447],{"type":43,"value":423},{"type":37,"tag":210,"props":449,"children":450},{"class":212,"line":267},[451,456,462,466,470,475,479,483],{"type":37,"tag":210,"props":452,"children":453},{"style":391},[454],{"type":43,"value":455},"      \"",{"type":37,"tag":210,"props":457,"children":459},{"style":458},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[460],{"type":43,"value":461},"command",{"type":37,"tag":210,"props":463,"children":464},{"style":391},[465],{"type":43,"value":413},{"type":37,"tag":210,"props":467,"children":468},{"style":391},[469],{"type":43,"value":418},{"type":37,"tag":210,"props":471,"children":472},{"style":391},[473],{"type":43,"value":474}," \"",{"type":37,"tag":210,"props":476,"children":477},{"style":223},[478],{"type":43,"value":97},{"type":37,"tag":210,"props":480,"children":481},{"style":391},[482],{"type":43,"value":413},{"type":37,"tag":210,"props":484,"children":485},{"style":391},[486],{"type":43,"value":487},",\n",{"type":37,"tag":210,"props":489,"children":491},{"class":212,"line":490},5,[492,496,501,505,509],{"type":37,"tag":210,"props":493,"children":494},{"style":391},[495],{"type":43,"value":455},{"type":37,"tag":210,"props":497,"children":498},{"style":458},[499],{"type":43,"value":500},"args",{"type":37,"tag":210,"props":502,"children":503},{"style":391},[504],{"type":43,"value":413},{"type":37,"tag":210,"props":506,"children":507},{"style":391},[508],{"type":43,"value":418},{"type":37,"tag":210,"props":510,"children":511},{"style":391},[512],{"type":43,"value":513}," [\n",{"type":37,"tag":210,"props":515,"children":517},{"class":212,"line":516},6,[518,523,528,532],{"type":37,"tag":210,"props":519,"children":520},{"style":391},[521],{"type":43,"value":522},"        \"",{"type":37,"tag":210,"props":524,"children":525},{"style":223},[526],{"type":43,"value":527},"--directory",{"type":37,"tag":210,"props":529,"children":530},{"style":391},[531],{"type":43,"value":413},{"type":37,"tag":210,"props":533,"children":534},{"style":391},[535],{"type":43,"value":487},{"type":37,"tag":210,"props":537,"children":539},{"class":212,"line":538},7,[540,544,549,553],{"type":37,"tag":210,"props":541,"children":542},{"style":391},[543],{"type":43,"value":522},{"type":37,"tag":210,"props":545,"children":546},{"style":223},[547],{"type":43,"value":548},"\u002Fabsolute\u002Fpath\u002Fto\u002Fmcp",{"type":37,"tag":210,"props":550,"children":551},{"style":391},[552],{"type":43,"value":413},{"type":37,"tag":210,"props":554,"children":555},{"style":391},[556],{"type":43,"value":487},{"type":37,"tag":210,"props":558,"children":560},{"class":212,"line":559},8,[561,565,570,574],{"type":37,"tag":210,"props":562,"children":563},{"style":391},[564],{"type":43,"value":522},{"type":37,"tag":210,"props":566,"children":567},{"style":223},[568],{"type":43,"value":569},"run",{"type":37,"tag":210,"props":571,"children":572},{"style":391},[573],{"type":43,"value":413},{"type":37,"tag":210,"props":575,"children":576},{"style":391},[577],{"type":43,"value":487},{"type":37,"tag":210,"props":579,"children":580},{"class":212,"line":20},[581,585,590],{"type":37,"tag":210,"props":582,"children":583},{"style":391},[584],{"type":43,"value":522},{"type":37,"tag":210,"props":586,"children":587},{"style":223},[588],{"type":43,"value":589},"server.py",{"type":37,"tag":210,"props":591,"children":592},{"style":391},[593],{"type":43,"value":594},"\"\n",{"type":37,"tag":210,"props":596,"children":598},{"class":212,"line":597},10,[599],{"type":37,"tag":210,"props":600,"children":601},{"style":391},[602],{"type":43,"value":603},"      ],\n",{"type":37,"tag":210,"props":605,"children":607},{"class":212,"line":606},11,[608,612,617,621,625,629,634],{"type":37,"tag":210,"props":609,"children":610},{"style":391},[611],{"type":43,"value":455},{"type":37,"tag":210,"props":613,"children":614},{"style":458},[615],{"type":43,"value":616},"envFile",{"type":37,"tag":210,"props":618,"children":619},{"style":391},[620],{"type":43,"value":413},{"type":37,"tag":210,"props":622,"children":623},{"style":391},[624],{"type":43,"value":418},{"type":37,"tag":210,"props":626,"children":627},{"style":391},[628],{"type":43,"value":474},{"type":37,"tag":210,"props":630,"children":631},{"style":223},[632],{"type":43,"value":633},"\u002Fabsolute\u002Fpath\u002Fto\u002Fmcp\u002F.env",{"type":37,"tag":210,"props":635,"children":636},{"style":391},[637],{"type":43,"value":594},{"type":37,"tag":210,"props":639,"children":641},{"class":212,"line":640},12,[642],{"type":37,"tag":210,"props":643,"children":644},{"style":391},[645],{"type":43,"value":646},"    }\n",{"type":37,"tag":210,"props":648,"children":650},{"class":212,"line":649},13,[651],{"type":37,"tag":210,"props":652,"children":653},{"style":391},[654],{"type":43,"value":655},"  }\n",{"type":37,"tag":210,"props":657,"children":659},{"class":212,"line":658},14,[660],{"type":37,"tag":210,"props":661,"children":662},{"style":391},[663],{"type":43,"value":664},"}\n",{"type":37,"tag":46,"props":666,"children":667},{},[668],{"type":43,"value":669},"Or add via CLI (replace paths):",{"type":37,"tag":199,"props":671,"children":673},{"className":201,"code":672,"language":203,"meta":204,"style":204},"claude mcp add mariadb -- uv --directory \u002Fabsolute\u002Fpath\u002Fto\u002Fmcp run server.py\n",[674],{"type":37,"tag":92,"props":675,"children":676},{"__ignoreMap":204},[677],{"type":37,"tag":210,"props":678,"children":679},{"class":212,"line":213},[680,685,690,695,700,705,710,715,720,724],{"type":37,"tag":210,"props":681,"children":682},{"style":217},[683],{"type":43,"value":684},"claude",{"type":37,"tag":210,"props":686,"children":687},{"style":223},[688],{"type":43,"value":689}," mcp",{"type":37,"tag":210,"props":691,"children":692},{"style":223},[693],{"type":43,"value":694}," add",{"type":37,"tag":210,"props":696,"children":697},{"style":223},[698],{"type":43,"value":699}," mariadb",{"type":37,"tag":210,"props":701,"children":702},{"style":223},[703],{"type":43,"value":704}," --",{"type":37,"tag":210,"props":706,"children":707},{"style":223},[708],{"type":43,"value":709}," uv",{"type":37,"tag":210,"props":711,"children":712},{"style":223},[713],{"type":43,"value":714}," --directory",{"type":37,"tag":210,"props":716,"children":717},{"style":223},[718],{"type":43,"value":719}," \u002Fabsolute\u002Fpath\u002Fto\u002Fmcp",{"type":37,"tag":210,"props":721,"children":722},{"style":223},[723],{"type":43,"value":327},{"type":37,"tag":210,"props":725,"children":726},{"style":223},[727],{"type":43,"value":332},{"type":37,"tag":46,"props":729,"children":730},{},[731,736,738,743],{"type":37,"tag":84,"props":732,"children":733},{},[734],{"type":43,"value":735},"Cursor \u002F VS Code",{"type":43,"value":737}," — same ",{"type":37,"tag":92,"props":739,"children":741},{"className":740},[],[742],{"type":43,"value":408},{"type":43,"value":744}," block in MCP settings; use absolute paths.",{"type":37,"tag":46,"props":746,"children":747},{},[748,753,755,761,763,769,771,778],{"type":37,"tag":84,"props":749,"children":750},{},[751],{"type":43,"value":752},"SSE or HTTP",{"type":43,"value":754}," — run ",{"type":37,"tag":92,"props":756,"children":758},{"className":757},[],[759],{"type":43,"value":760},"uv run server.py --transport sse",{"type":43,"value":762}," (or ",{"type":37,"tag":92,"props":764,"children":766},{"className":765},[],[767],{"type":43,"value":768},"http",{"type":43,"value":770},") and connect to the URL; see ",{"type":37,"tag":66,"props":772,"children":775},{"href":773,"rel":774},"https:\u002F\u002Fgithub.com\u002FMariaDB\u002Fmcp#integration---claude-desktopcursorwindsurfvscode",[70],[776],{"type":43,"value":777},"MariaDB\u002Fmcp README — Integration",{"type":43,"value":75},{"type":37,"tag":77,"props":780,"children":781},{},[782],{"type":37,"tag":46,"props":783,"children":784},{},[785,790,792,798,800,806,808,813],{"type":37,"tag":84,"props":786,"children":787},{},[788],{"type":43,"value":789},"Not official:",{"type":43,"value":791}," PyPI package ",{"type":37,"tag":92,"props":793,"children":795},{"className":794},[],[796],{"type":43,"value":797},"mcp-server-mariadb",{"type":43,"value":799}," (",{"type":37,"tag":92,"props":801,"children":803},{"className":802},[],[804],{"type":43,"value":805},"uvx mcp-server-mariadb",{"type":43,"value":807},") is a third-party project, not maintained by the MariaDB Foundation. Prefer ",{"type":37,"tag":92,"props":809,"children":811},{"className":810},[],[812],{"type":43,"value":73},{"type":43,"value":814}," unless you have a specific reason to use the PyPI package.",{"type":37,"tag":101,"props":816,"children":818},{"id":817},"available-tools",[819],{"type":43,"value":820},"Available Tools",{"type":37,"tag":822,"props":823,"children":824},"table",{},[825,844],{"type":37,"tag":826,"props":827,"children":828},"thead",{},[829],{"type":37,"tag":830,"props":831,"children":832},"tr",{},[833,839],{"type":37,"tag":834,"props":835,"children":836},"th",{},[837],{"type":43,"value":838},"Tool",{"type":37,"tag":834,"props":840,"children":841},{},[842],{"type":43,"value":843},"What it does",{"type":37,"tag":845,"props":846,"children":847},"tbody",{},[848,866,883,900,917,934],{"type":37,"tag":830,"props":849,"children":850},{},[851,861],{"type":37,"tag":852,"props":853,"children":854},"td",{},[855],{"type":37,"tag":92,"props":856,"children":858},{"className":857},[],[859],{"type":43,"value":860},"list_databases",{"type":37,"tag":852,"props":862,"children":863},{},[864],{"type":43,"value":865},"Lists all databases the user can access",{"type":37,"tag":830,"props":867,"children":868},{},[869,878],{"type":37,"tag":852,"props":870,"children":871},{},[872],{"type":37,"tag":92,"props":873,"children":875},{"className":874},[],[876],{"type":43,"value":877},"list_tables",{"type":37,"tag":852,"props":879,"children":880},{},[881],{"type":43,"value":882},"Lists tables in a database",{"type":37,"tag":830,"props":884,"children":885},{},[886,895],{"type":37,"tag":852,"props":887,"children":888},{},[889],{"type":37,"tag":92,"props":890,"children":892},{"className":891},[],[893],{"type":43,"value":894},"get_table_schema",{"type":37,"tag":852,"props":896,"children":897},{},[898],{"type":43,"value":899},"Returns column definitions and types",{"type":37,"tag":830,"props":901,"children":902},{},[903,912],{"type":37,"tag":852,"props":904,"children":905},{},[906],{"type":37,"tag":92,"props":907,"children":909},{"className":908},[],[910],{"type":43,"value":911},"get_table_schema_with_relations",{"type":37,"tag":852,"props":913,"children":914},{},[915],{"type":43,"value":916},"Includes foreign key relationships",{"type":37,"tag":830,"props":918,"children":919},{},[920,929],{"type":37,"tag":852,"props":921,"children":922},{},[923],{"type":37,"tag":92,"props":924,"children":926},{"className":925},[],[927],{"type":43,"value":928},"execute_sql",{"type":37,"tag":852,"props":930,"children":931},{},[932],{"type":43,"value":933},"Runs a read-only SQL query",{"type":37,"tag":830,"props":935,"children":936},{},[937,946],{"type":37,"tag":852,"props":938,"children":939},{},[940],{"type":37,"tag":92,"props":941,"children":943},{"className":942},[],[944],{"type":43,"value":945},"create_database",{"type":37,"tag":852,"props":947,"children":948},{},[949],{"type":43,"value":950},"Creates a new database",{"type":37,"tag":101,"props":952,"children":954},{"id":953},"vector-semantic-search-optional",[955],{"type":43,"value":956},"Vector & Semantic Search (Optional)",{"type":37,"tag":46,"props":958,"children":959},{},[960],{"type":43,"value":961},"When an embedding provider is configured, additional tools are available for building RAG pipelines directly through the MCP interface:",{"type":37,"tag":822,"props":963,"children":964},{},[965,979],{"type":37,"tag":826,"props":966,"children":967},{},[968],{"type":37,"tag":830,"props":969,"children":970},{},[971,975],{"type":37,"tag":834,"props":972,"children":973},{},[974],{"type":43,"value":838},{"type":37,"tag":834,"props":976,"children":977},{},[978],{"type":43,"value":843},{"type":37,"tag":845,"props":980,"children":981},{},[982,999,1016,1033,1050],{"type":37,"tag":830,"props":983,"children":984},{},[985,994],{"type":37,"tag":852,"props":986,"children":987},{},[988],{"type":37,"tag":92,"props":989,"children":991},{"className":990},[],[992],{"type":43,"value":993},"create_vector_store",{"type":37,"tag":852,"props":995,"children":996},{},[997],{"type":43,"value":998},"Creates a vector store table",{"type":37,"tag":830,"props":1000,"children":1001},{},[1002,1011],{"type":37,"tag":852,"props":1003,"children":1004},{},[1005],{"type":37,"tag":92,"props":1006,"children":1008},{"className":1007},[],[1009],{"type":43,"value":1010},"insert_docs_vector_store",{"type":37,"tag":852,"props":1012,"children":1013},{},[1014],{"type":43,"value":1015},"Embeds and stores documents",{"type":37,"tag":830,"props":1017,"children":1018},{},[1019,1028],{"type":37,"tag":852,"props":1020,"children":1021},{},[1022],{"type":37,"tag":92,"props":1023,"children":1025},{"className":1024},[],[1026],{"type":43,"value":1027},"search_vector_store",{"type":37,"tag":852,"props":1029,"children":1030},{},[1031],{"type":43,"value":1032},"Semantic similarity search",{"type":37,"tag":830,"props":1034,"children":1035},{},[1036,1045],{"type":37,"tag":852,"props":1037,"children":1038},{},[1039],{"type":37,"tag":92,"props":1040,"children":1042},{"className":1041},[],[1043],{"type":43,"value":1044},"list_vector_stores",{"type":37,"tag":852,"props":1046,"children":1047},{},[1048],{"type":43,"value":1049},"Lists available vector stores",{"type":37,"tag":830,"props":1051,"children":1052},{},[1053,1062],{"type":37,"tag":852,"props":1054,"children":1055},{},[1056],{"type":37,"tag":92,"props":1057,"children":1059},{"className":1058},[],[1060],{"type":43,"value":1061},"delete_vector_store",{"type":37,"tag":852,"props":1063,"children":1064},{},[1065],{"type":43,"value":1066},"Removes a vector store",{"type":37,"tag":46,"props":1068,"children":1069},{},[1070],{"type":37,"tag":84,"props":1071,"children":1072},{},[1073,1075,1080],{"type":43,"value":1074},"Configure an embedding provider in ",{"type":37,"tag":92,"props":1076,"children":1078},{"className":1077},[],[1079],{"type":43,"value":288},{"type":43,"value":418},{"type":37,"tag":199,"props":1082,"children":1085},{"className":1083,"code":1084,"language":43},[294],"EMBEDDING_PROVIDER=openai   # or gemini or huggingface\nOPENAI_API_KEY=sk-...\n",[1086],{"type":37,"tag":92,"props":1087,"children":1088},{"__ignoreMap":204},[1089],{"type":43,"value":1084},{"type":37,"tag":46,"props":1091,"children":1092},{},[1093,1095,1101,1103,1109,1111,1117],{"type":43,"value":1094},"For building pure vector search applications, using MariaDB's native ",{"type":37,"tag":92,"props":1096,"children":1098},{"className":1097},[],[1099],{"type":43,"value":1100},"VECTOR",{"type":43,"value":1102}," type and ",{"type":37,"tag":92,"props":1104,"children":1106},{"className":1105},[],[1107],{"type":43,"value":1108},"VEC_DISTANCE_*",{"type":43,"value":1110}," functions directly is more efficient. The MCP vector tools are useful for quick prototyping and when AI agents need to manage the vector store themselves. See the ",{"type":37,"tag":92,"props":1112,"children":1114},{"className":1113},[],[1115],{"type":43,"value":1116},"mariadb-vector",{"type":43,"value":1118}," skill for native vector SQL.",{"type":37,"tag":101,"props":1120,"children":1122},{"id":1121},"security-read-only-access",[1123],{"type":43,"value":1124},"Security: Read-Only Access",{"type":37,"tag":46,"props":1126,"children":1127},{},[1128,1130,1136],{"type":43,"value":1129},"The ",{"type":37,"tag":92,"props":1131,"children":1133},{"className":1132},[],[1134],{"type":43,"value":1135},"MCP_READ_ONLY=true",{"type":43,"value":1137}," setting enforces read-only at the application level by filtering queries. For production or shared environments, also restrict at the database level:",{"type":37,"tag":199,"props":1139,"children":1143},{"className":1140,"code":1141,"language":1142,"meta":204,"style":204},"language-sql shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","CREATE USER 'mcp_agent'@'localhost' IDENTIFIED BY 'password';\nGRANT SELECT, SHOW DATABASES ON *.* TO 'mcp_agent'@'localhost';\n-- Do NOT grant INSERT, UPDATE, DELETE, DROP\n","sql",[1144],{"type":37,"tag":92,"props":1145,"children":1146},{"__ignoreMap":204},[1147,1155,1163],{"type":37,"tag":210,"props":1148,"children":1149},{"class":212,"line":213},[1150],{"type":37,"tag":210,"props":1151,"children":1152},{},[1153],{"type":43,"value":1154},"CREATE USER 'mcp_agent'@'localhost' IDENTIFIED BY 'password';\n",{"type":37,"tag":210,"props":1156,"children":1157},{"class":212,"line":24},[1158],{"type":37,"tag":210,"props":1159,"children":1160},{},[1161],{"type":43,"value":1162},"GRANT SELECT, SHOW DATABASES ON *.* TO 'mcp_agent'@'localhost';\n",{"type":37,"tag":210,"props":1164,"children":1165},{"class":212,"line":248},[1166],{"type":37,"tag":210,"props":1167,"children":1168},{},[1169],{"type":43,"value":1170},"-- Do NOT grant INSERT, UPDATE, DELETE, DROP\n",{"type":37,"tag":46,"props":1172,"children":1173},{},[1174],{"type":43,"value":1175},"Application-level read-only alone is not sufficient — database-level privileges are the reliable guarantee.",{"type":37,"tag":101,"props":1177,"children":1179},{"id":1178},"key-gotchas",[1180],{"type":43,"value":1181},"Key Gotchas",{"type":37,"tag":113,"props":1183,"children":1184},{},[1185,1230,1246,1270,1288,1327],{"type":37,"tag":117,"props":1186,"children":1187},{},[1188,1198,1200,1205,1207,1213,1215,1221,1223,1229],{"type":37,"tag":84,"props":1189,"children":1190},{},[1191,1196],{"type":37,"tag":92,"props":1192,"children":1194},{"className":1193},[],[1195],{"type":43,"value":97},{"type":43,"value":1197}," is required",{"type":43,"value":1199},": the MCP server uses ",{"type":37,"tag":92,"props":1201,"children":1203},{"className":1202},[],[1204],{"type":43,"value":97},{"type":43,"value":1206}," for dependency management, not ",{"type":37,"tag":92,"props":1208,"children":1210},{"className":1209},[],[1211],{"type":43,"value":1212},"pip",{"type":43,"value":1214}," directly. Install: ",{"type":37,"tag":92,"props":1216,"children":1218},{"className":1217},[],[1219],{"type":43,"value":1220},"pip install uv",{"type":43,"value":1222}," or ",{"type":37,"tag":92,"props":1224,"children":1226},{"className":1225},[],[1227],{"type":43,"value":1228},"brew install uv",{"type":43,"value":75},{"type":37,"tag":117,"props":1231,"children":1232},{},[1233,1238,1240,1245],{"type":37,"tag":84,"props":1234,"children":1235},{},[1236],{"type":43,"value":1237},"Read-only is not fully enforced in software",{"type":43,"value":1239},": rely on database-level privileges, not just ",{"type":37,"tag":92,"props":1241,"children":1243},{"className":1242},[],[1244],{"type":43,"value":1135},{"type":43,"value":75},{"type":37,"tag":117,"props":1247,"children":1248},{},[1249,1254,1256,1262,1264,1269],{"type":37,"tag":84,"props":1250,"children":1251},{},[1252],{"type":43,"value":1253},"Vector tools are disabled",{"type":43,"value":1255}," until ",{"type":37,"tag":92,"props":1257,"children":1259},{"className":1258},[],[1260],{"type":43,"value":1261},"EMBEDDING_PROVIDER",{"type":43,"value":1263}," is set in ",{"type":37,"tag":92,"props":1265,"children":1267},{"className":1266},[],[1268],{"type":43,"value":288},{"type":43,"value":75},{"type":37,"tag":117,"props":1271,"children":1272},{},[1273,1278,1280,1286],{"type":37,"tag":84,"props":1274,"children":1275},{},[1276],{"type":43,"value":1277},"Connection pooling",{"type":43,"value":1279}," defaults to 10 connections — tune ",{"type":37,"tag":92,"props":1281,"children":1283},{"className":1282},[],[1284],{"type":43,"value":1285},"MCP_MAX_POOL_SIZE",{"type":43,"value":1287}," for concurrent agent use.",{"type":37,"tag":117,"props":1289,"children":1290},{},[1291,1296,1298,1304,1305,1311,1312,1318,1320,1325],{"type":37,"tag":84,"props":1292,"children":1293},{},[1294],{"type":43,"value":1295},"SSL\u002FTLS",{"type":43,"value":1297},": configure ",{"type":37,"tag":92,"props":1299,"children":1301},{"className":1300},[],[1302],{"type":43,"value":1303},"DB_SSL_CA",{"type":43,"value":139},{"type":37,"tag":92,"props":1306,"children":1308},{"className":1307},[],[1309],{"type":43,"value":1310},"DB_SSL_CERT",{"type":43,"value":139},{"type":37,"tag":92,"props":1313,"children":1315},{"className":1314},[],[1316],{"type":43,"value":1317},"DB_SSL_KEY",{"type":43,"value":1319}," in ",{"type":37,"tag":92,"props":1321,"children":1323},{"className":1322},[],[1324],{"type":43,"value":288},{"type":43,"value":1326}," for remote or production databases.",{"type":37,"tag":117,"props":1328,"children":1329},{},[1330,1335,1337,1344],{"type":37,"tag":84,"props":1331,"children":1332},{},[1333],{"type":43,"value":1334},"Enterprise version",{"type":43,"value":1336},": MariaDB also offers a MariaDB Enterprise MCP Server with additional access control and multi-agent features. See ",{"type":37,"tag":66,"props":1338,"children":1341},{"href":1339,"rel":1340},"https:\u002F\u002Fmariadb.com\u002Fproducts\u002Fmcp-server\u002F",[70],[1342],{"type":43,"value":1343},"mariadb.com\u002Fproducts\u002Fmcp-server",{"type":43,"value":75},{"type":37,"tag":101,"props":1346,"children":1348},{"id":1347},"sources",[1349],{"type":43,"value":1350},"Sources",{"type":37,"tag":113,"props":1352,"children":1353},{},[1354,1363,1372],{"type":37,"tag":117,"props":1355,"children":1356},{},[1357],{"type":37,"tag":66,"props":1358,"children":1360},{"href":68,"rel":1359},[70],[1361],{"type":43,"value":1362},"MariaDB MCP Server — GitHub",{"type":37,"tag":117,"props":1364,"children":1365},{},[1366],{"type":37,"tag":66,"props":1367,"children":1369},{"href":1339,"rel":1368},[70],[1370],{"type":43,"value":1371},"MariaDB MCP Server product page — mariadb.com",{"type":37,"tag":117,"props":1373,"children":1374},{},[1375],{"type":37,"tag":66,"props":1376,"children":1379},{"href":1377,"rel":1378},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fmcp",[70],[1380],{"type":43,"value":1381},"Connect Claude Code to tools via MCP — Claude Code Docs",{"type":37,"tag":46,"props":1383,"children":1384},{},[1385],{"type":37,"tag":50,"props":1386,"children":1387},{},[1388,1390,1397],{"type":43,"value":1389},"For topics not covered here, see the official MariaDB documentation at ",{"type":37,"tag":66,"props":1391,"children":1394},{"href":1392,"rel":1393},"https:\u002F\u002Fmariadb.com\u002Fdocs",[70],[1395],{"type":43,"value":1396},"mariadb.com\u002Fdocs",{"type":43,"value":75},{"type":37,"tag":1399,"props":1400,"children":1401},"style",{},[1402],{"type":43,"value":1403},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1405,"total":559},[1406,1420,1426,1437,1449,1467,1478,1491],{"slug":1407,"name":1407,"fn":1408,"description":1409,"org":1410,"tags":1411,"stars":20,"repoUrl":21,"updatedAt":1419},"mariadb-features","optimize and manage MariaDB databases","MariaDB-specific features and capabilities that go beyond standard MySQL. Use when evaluating MariaDB, optimizing an existing MariaDB application, reviewing code or schema for MariaDB improvements, asking what MariaDB can do that other databases cannot, or migrating from Oracle to MariaDB. Also use when the user asks what could be improved in how a codebase uses MariaDB, or asks about MariaDB advantages over MySQL or PostgreSQL.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1412,1413,1414,1417],{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":1415,"slug":1416,"type":13},"Performance","performance",{"name":1418,"slug":1142,"type":13},"SQL","2026-07-16T06:01:55.988338",{"slug":4,"name":4,"fn":5,"description":6,"org":1421,"tags":1422,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1423,1424,1425],{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":18,"slug":19,"type":13},{"slug":1427,"name":1427,"fn":1428,"description":1429,"org":1430,"tags":1431,"stars":20,"repoUrl":21,"updatedAt":1436},"mariadb-query-optimization","optimize MariaDB database queries","Best practices for query optimization in MariaDB — indexing strategies, EXPLAIN analysis, pagination, histogram statistics, and MariaDB-specific optimizer settings. Use when diagnosing slow queries, designing indexes, reviewing schema or query performance, or when queries involve large tables, pagination, GROUP BY, or ORDER BY. Also use when the user asks about MariaDB query performance, EXPLAIN output, or optimizer behavior.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1432,1433,1434,1435],{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":1415,"slug":1416,"type":13},{"name":1418,"slug":1142,"type":13},"2026-07-13T06:14:12.656074",{"slug":1438,"name":1438,"fn":1439,"description":1440,"org":1441,"tags":1442,"stars":20,"repoUrl":21,"updatedAt":1448},"mariadb-replication-and-ha","configure MariaDB replication and high availability","Best practices for MariaDB replication and high availability — Galera Cluster, GTID replication, semi-synchronous replication, parallel replication, and application patterns for HA environments. Use when setting up replication, designing applications for HA, working with Galera Cluster, asking about MariaDB GTID, handling replication lag in application code, or choosing between replication topologies. IMPORTANT — MariaDB GTID format is incompatible with MySQL GTID, and Galera Cluster needs no server plugin to load but does require the separate galera wsrep provider library (galera-4).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1443,1446,1447],{"name":1444,"slug":1445,"type":13},"Architecture","architecture",{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},"2026-07-13T06:14:13.989369",{"slug":1450,"name":1450,"fn":1451,"description":1452,"org":1453,"tags":1454,"stars":20,"repoUrl":21,"updatedAt":1466},"mariadb-system-versioned-tables","implement MariaDB system-versioned tables","Best practices for MariaDB system-versioned (temporal) tables — automatic row history built into the database. Use when tracking data changes over time, implementing audit trails, meeting GDPR or compliance requirements, doing point-in-time queries, or when the user asks about row history, data versioning, temporal tables, or querying past data states in MariaDB. This feature is unique to MariaDB among MySQL-compatible databases.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1455,1458,1461,1462,1465],{"name":1456,"slug":1457,"type":13},"Audit","audit",{"name":1459,"slug":1460,"type":13},"Compliance","compliance",{"name":15,"slug":16,"type":13},{"name":1463,"slug":1464,"type":13},"GDPR","gdpr",{"name":9,"slug":8,"type":13},"2026-07-13T06:14:16.779878",{"slug":1116,"name":1116,"fn":1468,"description":1469,"org":1470,"tags":1471,"stars":20,"repoUrl":21,"updatedAt":1477},"build semantic search with MariaDB vectors","Best practices for using vectors and AI with MariaDB. Use when writing SQL involving VECTOR columns, building RAG or semantic search with MariaDB, choosing embedding models, designing vector indexes, or integrating MariaDB with AI frameworks like LangChain, LlamaIndex, or Spring AI. Also use when the user mentions MariaDB and any of: vectors, embeddings, similarity search, nearest neighbor, AI, RAG, or LLM. IMPORTANT — MariaDB has native built-in vector support since version 11.7; it is NOT a plugin or extension (unlike pgvector for PostgreSQL). Do not recommend installing any extension.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1472,1473,1474],{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":1475,"slug":1476,"type":13},"Migration","migration","2026-07-13T06:14:01.939479",{"slug":1479,"name":1479,"fn":1480,"description":1481,"org":1482,"tags":1483,"stars":20,"repoUrl":21,"updatedAt":1490},"mysql-to-mariadb","migrate applications from MySQL to MariaDB","Compatibility guide for developers moving from MySQL to MariaDB, and for developers with MySQL experience working with MariaDB. Use when migrating a MySQL application to MariaDB, when MySQL syntax or habits cause unexpected behavior in MariaDB, when asking about MySQL\u002FMariaDB compatibility, or when adapting code written for MySQL to run on MariaDB. IMPORTANT — MariaDB diverges significantly from MySQL 8.0 and is not a simple drop-in replacement for modern MySQL. Authentication plugins, JSON handling, GTID replication, and several SQL features differ in important ways.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1484,1485,1486,1487],{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":1475,"slug":1476,"type":13},{"name":1488,"slug":1489,"type":13},"MySQL","mysql","2026-07-13T06:14:08.675338",{"slug":1492,"name":1492,"fn":1493,"description":1494,"org":1495,"tags":1496,"stars":20,"repoUrl":21,"updatedAt":1500},"oracle-to-mariadb","migrate Oracle databases to MariaDB","Compatibility guide for developers migrating from Oracle Database to MariaDB. Use when migrating Oracle schemas, PL\u002FSQL procedures, or applications to MariaDB, when Oracle syntax causes unexpected behavior in MariaDB, or when evaluating MariaDB as an Oracle replacement. MariaDB is the only open source database with native PL\u002FSQL compatibility — MariaDB's sql_mode=ORACLE enables migration of approximately 80% of Oracle code without rewrites.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1497,1498,1499],{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":1475,"slug":1476,"type":13},"2026-07-13T06:14:11.069809",{"items":1502,"total":559},[1503,1510,1516,1523,1529,1537,1543],{"slug":1407,"name":1407,"fn":1408,"description":1409,"org":1504,"tags":1505,"stars":20,"repoUrl":21,"updatedAt":1419},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1506,1507,1508,1509],{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":1415,"slug":1416,"type":13},{"name":1418,"slug":1142,"type":13},{"slug":4,"name":4,"fn":5,"description":6,"org":1511,"tags":1512,"stars":20,"repoUrl":21,"updatedAt":22},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1513,1514,1515],{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":18,"slug":19,"type":13},{"slug":1427,"name":1427,"fn":1428,"description":1429,"org":1517,"tags":1518,"stars":20,"repoUrl":21,"updatedAt":1436},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1519,1520,1521,1522],{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":1415,"slug":1416,"type":13},{"name":1418,"slug":1142,"type":13},{"slug":1438,"name":1438,"fn":1439,"description":1440,"org":1524,"tags":1525,"stars":20,"repoUrl":21,"updatedAt":1448},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1526,1527,1528],{"name":1444,"slug":1445,"type":13},{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"slug":1450,"name":1450,"fn":1451,"description":1452,"org":1530,"tags":1531,"stars":20,"repoUrl":21,"updatedAt":1466},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1532,1533,1534,1535,1536],{"name":1456,"slug":1457,"type":13},{"name":1459,"slug":1460,"type":13},{"name":15,"slug":16,"type":13},{"name":1463,"slug":1464,"type":13},{"name":9,"slug":8,"type":13},{"slug":1116,"name":1116,"fn":1468,"description":1469,"org":1538,"tags":1539,"stars":20,"repoUrl":21,"updatedAt":1477},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1540,1541,1542],{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":1475,"slug":1476,"type":13},{"slug":1479,"name":1479,"fn":1480,"description":1481,"org":1544,"tags":1545,"stars":20,"repoUrl":21,"updatedAt":1490},{"slug":8,"name":9,"logoUrl":10,"githubOrg":9},[1546,1547,1548,1549],{"name":15,"slug":16,"type":13},{"name":9,"slug":8,"type":13},{"name":1475,"slug":1476,"type":13},{"name":1488,"slug":1489,"type":13}]