mysql-mcp
A lightweight MCP server that provides safe, read-only access to MySQL databases.
Features
- Multi-database — connect to multiple MySQL instances, switch between them on the fly
- Read-only — write operations (
INSERT,UPDATE,DELETE,DROP, etc.) are blocked - Lazy connections — pools are created on first use, not at startup
- MCP native — built on
@modelcontextprotocol/sdk, works with any MCP client
Setup
- Create a JSON config file with your database connections:
{
"my-db": {
"host": "db.example.com",
"port": 3306,
"user": "readonly",
"password": "secret",
"database": "mydb",
"environment": "production",
"ssl": false
}
}
-
Set the
MYSQL_DATABASES_CONFIGenvironment variable pointing to that file. -
Run the server:
npx tsx index.ts
Tools
| Tool | Description |
|---|---|
list_connections | List all configured databases and the active one |
use_connection | Switch the active database connection |
query | Execute a read-only SQL query |
MCP Client Configuration
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["tsx", "/path/to/mysql-mcp/index.ts"],
"env": {
"MYSQL_DATABASES_CONFIG": "/path/to/databases.json"
}
}
}
}
License
MIT