# MariaDB MCP Server - Configuration Examples
## Development Configuration
# For local development and testing
# .env.development
MARIADB_HOST=localhost
MARIADB_PORT=3306
MARIADB_USER=dev_user
MARIADB_PASSWORD=dev_password
MARIADB_DATABASE=dev_database
MARIADB_READ_ONLY=false
MARIADB_POOL_SIZE=3
---
## Production Configuration
# For production deployments with enhanced security
# .env.production
MARIADB_HOST=prod-db.example.com
MARIADB_PORT=3306
MARIADB_USER=mcp_readonly_user
MARIADB_PASSWORD=${SECRET_DB_PASSWORD} # Use secret management
MARIADB_DATABASE=production_db
MARIADB_READ_ONLY=true
MARIADB_POOL_SIZE=10
---
## Docker Deployment
# docker-compose.yml
version: '3.8'
services:
mariadb:
image: mariadb:latest
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: mcp_database
MYSQL_USER: mcp_user
MYSQL_PASSWORD: mcp_password
ports:
- "3306:3306"
volumes:
- mariadb_data:/var/lib/mysql
mcp-server:
build: .
environment:
MARIADB_HOST: mariadb
MARIADB_PORT: 3306
MARIADB_USER: mcp_user
MARIADB_PASSWORD: mcp_password
MARIADB_DATABASE: mcp_database
MARIADB_READ_ONLY: false
depends_on:
- mariadb
stdin_open: true
tty: true
volumes:
mariadb_data:
---
## Dockerfile for MCP Server
FROM python:3.11-slim
# Install MariaDB Connector/C
RUN apt-get update && apt-get install -y \
gcc \
libmariadb-dev \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY mariadb_mcp_server.py .
CMD ["python", "mariadb_mcp_server.py"]
---
## Multiple Database Configuration
# For Claude Desktop with multiple databases
{
"mcpServers": {
"mariadb-dev": {
"command": "python",
"args": ["/path/to/mariadb_mcp_server.py"],
"env": {
"MARIADB_HOST": "localhost",
"MARIADB_PORT": "3306",
"MARIADB_USER": "dev_user",
"MARIADB_PASSWORD": "dev_pass",
"MARIADB_DATABASE": "development",
"MARIADB_READ_ONLY": "false"
}
},
"mariadb-prod": {
"command": "python",
"args": ["/path/to/mariadb_mcp_server.py"],
"env": {
"MARIADB_HOST": "prod.example.com",
"MARIADB_PORT": "3306",
"MARIADB_USER": "readonly_user",
"MARIADB_PASSWORD": "prod_pass",
"MARIADB_DATABASE": "production",
"MARIADB_READ_ONLY": "true"
}
}
}
}
---
## Secure Production Setup
# Using environment variables from system
#!/bin/bash
# run_mcp_server.sh
# Load credentials from secure location
source /etc/mcp/mariadb.env
# Or use a secrets manager
export MARIADB_PASSWORD=$(aws secretsmanager get-secret-value \
--secret-id prod/mariadb/password \
--query SecretString --output text)
# Run the server
python /opt/mcp/mariadb_mcp_server.py
---
## High Availability Configuration
# For clustered MariaDB with MaxScale
MARIADB_HOST=maxscale.example.com # MaxScale load balancer
MARIADB_PORT=3306
MARIADB_USER=mcp_user
MARIADB_PASSWORD=secure_password
MARIADB_DATABASE=
MARIADB_READ_ONLY=true
MARIADB_POOL_SIZE=20 # Higher pool size for load balancing
---
## SSL/TLS Configuration
# For encrypted connections (requires server modification)
MARIADB_HOST=secure-db.example.com
MARIADB_PORT=3306
MARIADB_USER=mcp_user
MARIADB_PASSWORD=secure_password
MARIADB_SSL_CA=/path/to/ca-cert.pem
MARIADB_SSL_CERT=/path/to/client-cert.pem
MARIADB_SSL_KEY=/path/to/client-key.pem
---
## Testing Configuration
# For automated testing with temporary database
MARIADB_HOST=localhost
MARIADB_PORT=3307 # Different port for test instance
MARIADB_USER=test_user
MARIADB_PASSWORD=test_pass
MARIADB_DATABASE=test_db
MARIADB_READ_ONLY=false
MARIADB_POOL_SIZE=2