MySQL access for LLMs: inspect schemas and run queries, read-only by default with configurable write access.
Setup
Choose your client, copy the config, then fill in any required environment variables.
claude mcp add mysql --env MYSQL_HOST='<MYSQL_HOST>' --env MYSQL_PORT='<MYSQL_PORT>' --env MYSQL_USER='<MYSQL_USER>' --env MYSQL_PASS='<MYSQL_PASS>' --env MYSQL_DB='<MYSQL_DB>' --env ALLOW_INSERT_OPERATION='<ALLOW_INSERT_OPERATION>' --env ALLOW_UPDATE_OPERATION='<ALLOW_UPDATE_OPERATION>' --env ALLOW_DELETE_OPERATION='<ALLOW_DELETE_OPERATION>' -- npx -y @benborla29/mcp-server-mysql~/.codex/config.toml
[mcp_servers.mysql]
command = "npx"
args = ["-y", "@benborla29/mcp-server-mysql"]
env = { MYSQL_HOST = "<MYSQL_HOST>", MYSQL_PORT = "<MYSQL_PORT>", MYSQL_USER = "<MYSQL_USER>", MYSQL_PASS = "<MYSQL_PASS>", MYSQL_DB = "<MYSQL_DB>", ALLOW_INSERT_OPERATION = "<ALLOW_INSERT_OPERATION>", ALLOW_UPDATE_OPERATION = "<ALLOW_UPDATE_OPERATION>", ALLOW_DELETE_OPERATION = "<ALLOW_DELETE_OPERATION>" }
# codex mcp add mysql --env MYSQL_HOST='<MYSQL_HOST>' --env MYSQL_PORT='<MYSQL_PORT>' --env MYSQL_USER='<MYSQL_USER>' --env MYSQL_PASS='<MYSQL_PASS>' --env MYSQL_DB='<MYSQL_DB>' --env ALLOW_INSERT_OPERATION='<ALLOW_INSERT_OPERATION>' --env ALLOW_UPDATE_OPERATION='<ALLOW_UPDATE_OPERATION>' --env ALLOW_DELETE_OPERATION='<ALLOW_DELETE_OPERATION>' -- npx -y @benborla29/mcp-server-mysql~/.cursor/mcp.json
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": [
"-y",
"@benborla29/mcp-server-mysql"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASS": "<MYSQL_PASS>",
"MYSQL_DB": "<MYSQL_DB>",
"ALLOW_INSERT_OPERATION": "<ALLOW_INSERT_OPERATION>",
"ALLOW_UPDATE_OPERATION": "<ALLOW_UPDATE_OPERATION>",
"ALLOW_DELETE_OPERATION": "<ALLOW_DELETE_OPERATION>"
}
}
}
}.vscode/mcp.json
{
"servers": {
"mysql": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@benborla29/mcp-server-mysql"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASS": "<MYSQL_PASS>",
"MYSQL_DB": "<MYSQL_DB>",
"ALLOW_INSERT_OPERATION": "<ALLOW_INSERT_OPERATION>",
"ALLOW_UPDATE_OPERATION": "<ALLOW_UPDATE_OPERATION>",
"ALLOW_DELETE_OPERATION": "<ALLOW_DELETE_OPERATION>"
}
}
}
}~/.gemini/settings.json
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": [
"-y",
"@benborla29/mcp-server-mysql"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASS": "<MYSQL_PASS>",
"MYSQL_DB": "<MYSQL_DB>",
"ALLOW_INSERT_OPERATION": "<ALLOW_INSERT_OPERATION>",
"ALLOW_UPDATE_OPERATION": "<ALLOW_UPDATE_OPERATION>",
"ALLOW_DELETE_OPERATION": "<ALLOW_DELETE_OPERATION>"
}
}
}
}claude_desktop_config.json
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": [
"-y",
"@benborla29/mcp-server-mysql"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASS": "<MYSQL_PASS>",
"MYSQL_DB": "<MYSQL_DB>",
"ALLOW_INSERT_OPERATION": "<ALLOW_INSERT_OPERATION>",
"ALLOW_UPDATE_OPERATION": "<ALLOW_UPDATE_OPERATION>",
"ALLOW_DELETE_OPERATION": "<ALLOW_DELETE_OPERATION>"
}
}
}
}.trae/mcp.json
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": [
"-y",
"@benborla29/mcp-server-mysql"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASS": "<MYSQL_PASS>",
"MYSQL_DB": "<MYSQL_DB>",
"ALLOW_INSERT_OPERATION": "<ALLOW_INSERT_OPERATION>",
"ALLOW_UPDATE_OPERATION": "<ALLOW_UPDATE_OPERATION>",
"ALLOW_DELETE_OPERATION": "<ALLOW_DELETE_OPERATION>"
}
}
}
}Environment variables
MYSQL_HOSTMYSQL_PORTMYSQL_USERMYSQL_PASSMYSQL_DBALLOW_INSERT_OPERATIONALLOW_UPDATE_OPERATIONALLOW_DELETE_OPERATION
Replace the placeholders with your own credentials and keep them out of version control.