MySQL MCP Server
Provides tools for managing multiple MySQL connections and performing database operations such as executing SQL queries, listing databases and tables, and retrieving detailed table schema information.
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., "@MySQL MCP Servershow the schema for the users table in production"
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.
MySQL MCP Server
A lightweight Model Context Protocol (MCP) server for MySQL database operations. Supports multiple named connections and runs in a minimal Docker container.
Features
Multiple Connections: Manage multiple MySQL connections with unique names
Persistent Storage: Connection configs saved to SQLite (survives restarts)
Query Execution: Execute arbitrary SQL queries with parameterized support
Schema Inspection: List databases, tables, and describe table structures
Minimal Footprint: Alpine-based Docker image (~92MB)
Pre-configured Connections: Optionally load connections from environment variables
Tools
Tool | Description |
| Add a new MySQL connection with a unique name |
| Remove an existing connection |
| List all active connections |
| Execute SQL queries on a named connection |
| List all databases on a connection |
| List tables in a database |
| Get table schema/structure |
Quick Start
Build the Docker Image
docker build -t mysql-mcp .Run with Docker
# Run interactively (for MCP stdio communication)
# Mount ./config to persist connection data
docker run -i --rm -v $(pwd)/config:/app/config mysql-mcpPre-configure Connections
Set the MYSQL_CONNECTIONS environment variable with a JSON array:
docker run -i --rm \
-v $(pwd)/config:/app/config \
-e MYSQL_CONNECTIONS='[{"name": "prod", "host": "mysql.example.com", "port": 3306, "user": "admin", "password": "secret", "database": "myapp"}]' \
mysql-mcpDocker Compose
docker-compose up -dMCP Configuration
Add to your MCP client configuration (e.g., Claude Desktop):
{
"mcpServers": {
"mysql": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "/path/to/config:/app/config", "mysql-mcp"],
"env": {
"MYSQL_CONNECTIONS": "[{\"name\": \"dev\", \"host\": \"host.docker.internal\", \"port\": 3306, \"user\": \"root\", \"password\": \"secret\"}]"
}
}
}
}Note: Use host.docker.internal to connect to MySQL running on your host machine.
Usage Examples
Add a Connection
{
"name": "add_connection",
"arguments": {
"name": "production",
"host": "db.example.com",
"port": 3306,
"user": "app_user",
"password": "secure_password",
"database": "myapp"
}
}Execute a Query
{
"name": "execute_query",
"arguments": {
"connection": "production",
"query": "SELECT * FROM users WHERE status = %s LIMIT 10",
"params": ["active"]
}
}List Tables
{
"name": "list_tables",
"arguments": {
"connection": "production",
"database": "myapp"
}
}Development
Run Locally (without Docker)
# Install dependencies
pip install -r requirements.txt
# Run the server
python src/server.pyTest with a Local MySQL
Uncomment the MySQL service in docker-compose.yml:
docker-compose up -dPersistence
Connection configurations are stored in a SQLite database at /app/config/connections.db. Mount a volume to ./config to persist connections across container restarts:
docker run -i --rm -v $(pwd)/config:/app/config mysql-mcpThe database stores:
Connection name, host, port, user, password, and default database
Security Notes
Passwords are stored in the SQLite database - ensure the config directory has appropriate permissions
Use environment variables for initial seeding; they will be saved to the store
The container runs as a non-root user (uid 1000)
Consider using Docker secrets or a vault for sensitive credentials
Set
MCP_CONFIG_PATHenvironment variable to customize the config directory
License
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/araxiaonline/mysql-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server