Read-only MySQL access, with the database and server switchable mid-conversation.
Connect Runs on your machine
claude mcp add mcp-mysql-read-only -e MYSQL_HOST=<MYSQL_HOST> -e MYSQL_PORT=<MYSQL_PORT> -e MYSQL_USER=<MYSQL_USER> -e MYSQL_PASSWORD=<MYSQL_PASSWORD> -e MYSQL_DATABASE=<MYSQL_DATABASE> -e MYSQL_PROFILES=<MYSQL_PROFILES> -e MYSQL_DEFAULT_PROFILE=<MYSQL_DEFAULT_PROFILE> -e MYSQL_CONNECT_TIMEOUT_MS=<MYSQL_CONNECT_TIMEOUT_MS> -e MYSQL_QUERY_TIMEOUT_MS=<MYSQL_QUERY_TIMEOUT_MS> -- npx -y @shibbirweb/[email protected]
{
"mcpServers": {
"mcp-mysql-read-only": {
"command": "npx",
"args": [
"-y",
"@shibbirweb/[email protected]"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASSWORD": "<MYSQL_PASSWORD>",
"MYSQL_DATABASE": "<MYSQL_DATABASE>",
"MYSQL_PROFILES": "<MYSQL_PROFILES>",
"MYSQL_DEFAULT_PROFILE": "<MYSQL_DEFAULT_PROFILE>",
"MYSQL_CONNECT_TIMEOUT_MS": "<MYSQL_CONNECT_TIMEOUT_MS>",
"MYSQL_QUERY_TIMEOUT_MS": "<MYSQL_QUERY_TIMEOUT_MS>"
}
}
}
}
{
"mcpServers": {
"mcp-mysql-read-only": {
"command": "npx",
"args": [
"-y",
"@shibbirweb/[email protected]"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASSWORD": "<MYSQL_PASSWORD>",
"MYSQL_DATABASE": "<MYSQL_DATABASE>",
"MYSQL_PROFILES": "<MYSQL_PROFILES>",
"MYSQL_DEFAULT_PROFILE": "<MYSQL_DEFAULT_PROFILE>",
"MYSQL_CONNECT_TIMEOUT_MS": "<MYSQL_CONNECT_TIMEOUT_MS>",
"MYSQL_QUERY_TIMEOUT_MS": "<MYSQL_QUERY_TIMEOUT_MS>"
}
}
}
}
{
"servers": {
"mcp-mysql-read-only": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@shibbirweb/[email protected]"
],
"env": {
"MYSQL_HOST": "<MYSQL_HOST>",
"MYSQL_PORT": "<MYSQL_PORT>",
"MYSQL_USER": "<MYSQL_USER>",
"MYSQL_PASSWORD": "<MYSQL_PASSWORD>",
"MYSQL_DATABASE": "<MYSQL_DATABASE>",
"MYSQL_PROFILES": "<MYSQL_PROFILES>",
"MYSQL_DEFAULT_PROFILE": "<MYSQL_DEFAULT_PROFILE>",
"MYSQL_CONNECT_TIMEOUT_MS": "<MYSQL_CONNECT_TIMEOUT_MS>",
"MYSQL_QUERY_TIMEOUT_MS": "<MYSQL_QUERY_TIMEOUT_MS>"
}
}
}
}
Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.
Tools
This server runs locally, so its tools are listed by your MCP client once it starts.
Environment variables
| Name | Description |
|---|---|
MYSQL_HOSTOptional | Hostname of the MySQL server. Defaults to 127.0.0.1 |
MYSQL_PORTOptional | Port of the MySQL server. Defaults to 3306 |
MYSQL_USEROptional | MySQL user. Prefer an account holding only SELECT grants |
MYSQL_PASSWORDOptional, secret | Password for MYSQL_USER. Empty when the account has none |
MYSQL_DATABASEOptional | Database to open at startup. Can be changed later without restarting |
MYSQL_PROFILESOptional, secret | JSON object of named connections to switch between, keyed by profile name |
MYSQL_DEFAULT_PROFILEOptional | Which MYSQL_PROFILES entry to start on |
MYSQL_CONNECT_TIMEOUT_MSOptional | Connection timeout in milliseconds. Defaults to 10000 |
MYSQL_QUERY_TIMEOUT_MSOptional | Server-side query timeout in milliseconds. Defaults to 30000 |
Details
| Package | @shibbirweb/[email protected] (NPM, stdio) |
| Package | docker.io/shibbirweb/mcp-mysql-read-only:1.1.6 (OCI, stdio) |
| First published | 24 Sep 2026 |
| Last updated | 24 Sep 2026 |
| Registry name | io.github.shibbirweb/mcp-mysql-read-only |
More databases servers See all
Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.
