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.
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
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
Related MCP Servers
- -securityFlicense-qualityEnables secure interaction with MySQL databases, allowing AI assistants to list tables, read data, and execute SQL queries through a controlled interface.Last updated -
- AsecurityFlicenseAqualityProvides tools for AI assistants to explore and interact with MariaDB databases, allowing them to list databases, view tables, inspect schema definitions, and query data.Last updated -42
- AsecurityAlicenseAqualityProvides secure, read-only access to MariaDB/MySQL databases, allowing users to list databases, explore table schemas, and execute SQL queries with built-in security measures.Last updated -4333MIT License
yooztech_mcp_mysqlofficial
-securityAlicense-qualityEnables secure read-only access to MySQL databases with automatic database inference from project context. Provides safe querying capabilities with built-in security features like parameterized queries, whitelisting, and rate limiting.Last updated -1MIT License