The MariaDB MCP Server provides read-only access to MariaDB databases through the Model Context Protocol, enabling safe database exploration and querying.
Core Operations:
List Databases - Retrieve all accessible databases on the MariaDB server
List Tables - View tables within a specific or current database
Get Table Schema - Obtain detailed structure, columns, data types, constraints, and statistics for tables
Execute SQL Queries - Run read-only queries (SELECT, SHOW, DESCRIBE, EXPLAIN) with optional database specification
Reload Configuration - Update connection settings from environment variables and .env files without restarting
Security Features:
Strictly enforces read-only access, blocking INSERT, UPDATE, DELETE, and DDL statements
Supports secure configuration via environment variables or .env files
Connection pooling for efficient resource management
Comprehensive logging with configurable verbosity levels (DEBUG, INFO, WARNING, ERROR, CRITICAL) and automatic log rotation
Use Cases:
Database exploration and documentation
Schema analysis and data modeling
Query testing and development
Integration with MCP clients like Claude Code for AI-assisted database operations
Provides tools for database operations including listing databases and tables, retrieving table schemas, and executing read-only SQL queries (SELECT, SHOW, DESCRIBE, EXPLAIN) against MariaDB databases.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MariaDB MCP Servershow me the schema for the customers table"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MariaDB MCP Server
A Model Context Protocol (MCP) server for MariaDB database operations, compatible with Claude Code and other MCP clients.
Features
This MCP server provides these standard database tools:
list_databases: List all accessible databases
list_tables: List tables in a database
get_table_schema: Get detailed table schema and statistics
execute_sql: Execute read-only SQL queries (SELECT, SHOW, DESCRIBE, EXPLAIN)
reload_config: Reload configuration without restarting
Related MCP server: MariaDB Reader MCP Server
Installation
Prerequisites
Python 3.10 or higher
MariaDB server running
uvpackage manager
Quick Setup
Configuration
Environment Variables
Configure your MariaDB connection using these environment variables:
Local Development
For local testing, create a .env file in the project root with your database credentials.
Usage
Command Line
Run the server directly:
Connect with Claude Code in another terminal:
Adding to Claude Code Permanently
To add this server to your Claude Code MCP server list:
Manual Configuration
Add to your Claude Code configuration file:
Option A: Using environment file (recommended)
Option B: Direct environment variables
Note: When both env and envFile are specified, env variables take precedence.
After configuration:
Restart Claude Code
Verify "MariaDB_Server" appears in your MCP server list
Test with: "List all databases"
Available Tools
reload_config()
Reload database configuration without restarting the server.
Example: "Reload the database configuration"
list_databases()
List all databases you have access to.
Example: "List all available databases"
list_tables(database: Optional[str])
List tables in a database.
Parameters:
database(optional): Database name
Examples:
"List tables in the current database"
"List tables in the 'myapp' database"
get_table_schema(table_name: str, database: Optional[str])
Get detailed schema information for a table.
Parameters:
table_name: Table namedatabase(optional): Database name
Examples:
"Show schema for the 'users' table"
"Get table structure for 'orders' in the 'ecommerce' database"
execute_sql(query: str, database: Optional[str])
Execute read-only SQL queries.
Parameters:
query: SQL query to executedatabase(optional): Database to use
Examples:
"Execute: SELECT * FROM users LIMIT 10"
"Run query: SHOW CREATE TABLE products"
"Execute in 'analytics' database: SELECT COUNT(*) FROM events"
Security
Read-only operations: Only SELECT, SHOW, DESCRIBE, EXPLAIN allowed
No data modification: INSERT, UPDATE, DELETE, DDL statements blocked
Connection pooling: Efficient resource management
Comprehensive logging: Full error reporting
Troubleshooting
Connection Issues
Verify MariaDB is running:
sudo systemctl status mariadb # or on macOS with Homebrew: brew services list | grep mariadbTest connection manually:
mysql -h localhost -u root -pCheck firewall settings for remote connections
Permission Issues
Ensure your MariaDB user has SELECT permissions:
Debug Mode
For development debugging:
Logging
The MariaDB MCP server includes comprehensive logging for monitoring and debugging:
Log Locations
Console: Real-time logs displayed in the terminal
Log Files: Stored in
logs/mariadb_mcp.logwith automatic rotationMaximum file size: 10MB
Backup files: 5 (mariadb_mcp.log.1, mariadb_mcp.log.2, etc.)
Log Levels
Set the LOG_LEVEL environment variable to control log verbosity:
DEBUG: Detailed information for diagnosing problems (shows SQL queries)
INFO: General information about server operations (default)
WARNING: Something unexpected happened but the server continues
ERROR: An error occurred but the server continues
CRITICAL: A serious error occurred
Example Logging Configuration
Or in Claude Code configuration:
Log Contents
Logs include:
Server startup/shutdown events
Database connection status
Tool function calls and results
SQL query execution (DEBUG level)
Error messages with stack traces
Configuration changes
License
MIT License