mcp-mysql-read-only MCP
A community-built Model Context Protocol server providing read-only access to MySQL databases. Unlike static configurations, this server maintains connection state, allowing AI assistants to switch between different databases, servers, and credentials dynamically during a conversation session without requiring a client restart. It supports execution via npm or Docker containers.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Grant AI assistants read-only query capabilities on MySQL databases
- Switch database connections dynamically during an active AI session
- Run isolated database access within a Docker container
Source and maintenance
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
docker.io/shibbirweb/mcp-mysql-read-only:1.1.6
{
"transport": "stdio",
"identifier": "docker.io/shibbirweb/mcp-mysql-read-only:1.1.6",
"registryType": "oci",
"environmentVariables": [
{
"name": "MYSQL_HOST",
"format": "string",
"description": "Hostname of the MySQL server. Use host.docker.internal to reach the host"
},
{
"name": "MYSQL_PORT",
"format": "number",
"description": "Port of the MySQL server. Defaults to 3306"
},
{
"name": "MYSQL_USER",
"format": "string",
"description": "MySQL user. Prefer an account holding only SELECT grants"
},
{
"name": "MYSQL_PASSWORD",
"format": "string",
"description": "Password for MYSQL_USER. Empty when the account has none"
},
{
"name": "MYSQL_DATABASE",
"format": "string",
"description": "Database to open at startup. Can be changed later without restarting"
},
{
"name": "MYSQL_PROFILES",
"format": "string",
"description": "JSON object of named connections to switch between, keyed by profile name"
},
{
"name": "MYSQL_DEFAULT_PROFILE",
"format": "string",
"description": "Which MYSQL_PROFILES entry to start on"
},
{
"name": "MYSQL_CONNECT_TIMEOUT_MS",
"format": "number",
"description": "Connection timeout in milliseconds. Defaults to 10000"
},
{
"name": "MYSQL_QUERY_TIMEOUT_MS",
"format": "number",
"description": "Server-side query timeout in milliseconds. Defaults to 30000"
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"mcp-mysql-read-only-mcp-1-1-6": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MYSQL_HOST=<YOUR_MYSQL_HOST>",
"-e",
"MYSQL_PORT=<YOUR_MYSQL_PORT>",
"-e",
"MYSQL_USER=<YOUR_MYSQL_USER>",
"-e",
"MYSQL_PASSWORD=<YOUR_MYSQL_PASSWORD>",
"-e",
"MYSQL_DATABASE=<YOUR_MYSQL_DATABASE>",
"-e",
"MYSQL_PROFILES=<YOUR_MYSQL_PROFILES>",
"-e",
"MYSQL_DEFAULT_PROFILE=<YOUR_MYSQL_DEFAULT_PROFILE>",
"-e",
"MYSQL_CONNECT_TIMEOUT_MS=<YOUR_MYSQL_CONNECT_TIMEOUT_MS>",
"-e",
"MYSQL_QUERY_TIMEOUT_MS=<YOUR_MYSQL_QUERY_TIMEOUT_MS>",
"docker.io/shibbirweb/mcp-mysql-read-only:1.1.6"
],
"env": {
"MYSQL_HOST": "<YOUR_MYSQL_HOST>",
"MYSQL_PORT": "<YOUR_MYSQL_PORT>",
"MYSQL_USER": "<YOUR_MYSQL_USER>",
"MYSQL_PASSWORD": "<YOUR_MYSQL_PASSWORD>",
"MYSQL_DATABASE": "<YOUR_MYSQL_DATABASE>",
"MYSQL_PROFILES": "<YOUR_MYSQL_PROFILES>",
"MYSQL_DEFAULT_PROFILE": "<YOUR_MYSQL_DEFAULT_PROFILE>",
"MYSQL_CONNECT_TIMEOUT_MS": "<YOUR_MYSQL_CONNECT_TIMEOUT_MS>",
"MYSQL_QUERY_TIMEOUT_MS": "<YOUR_MYSQL_QUERY_TIMEOUT_MS>"
}
}
}
}Cline
{
"mcpServers": {
"mcp-mysql-read-only-mcp-1-1-6": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MYSQL_HOST=<YOUR_MYSQL_HOST>",
"-e",
"MYSQL_PORT=<YOUR_MYSQL_PORT>",
"-e",
"MYSQL_USER=<YOUR_MYSQL_USER>",
"-e",
"MYSQL_PASSWORD=<YOUR_MYSQL_PASSWORD>",
"-e",
"MYSQL_DATABASE=<YOUR_MYSQL_DATABASE>",
"-e",
"MYSQL_PROFILES=<YOUR_MYSQL_PROFILES>",
"-e",
"MYSQL_DEFAULT_PROFILE=<YOUR_MYSQL_DEFAULT_PROFILE>",
"-e",
"MYSQL_CONNECT_TIMEOUT_MS=<YOUR_MYSQL_CONNECT_TIMEOUT_MS>",
"-e",
"MYSQL_QUERY_TIMEOUT_MS=<YOUR_MYSQL_QUERY_TIMEOUT_MS>",
"docker.io/shibbirweb/mcp-mysql-read-only:1.1.6"
],
"env": {
"MYSQL_HOST": "<YOUR_MYSQL_HOST>",
"MYSQL_PORT": "<YOUR_MYSQL_PORT>",
"MYSQL_USER": "<YOUR_MYSQL_USER>",
"MYSQL_PASSWORD": "<YOUR_MYSQL_PASSWORD>",
"MYSQL_DATABASE": "<YOUR_MYSQL_DATABASE>",
"MYSQL_PROFILES": "<YOUR_MYSQL_PROFILES>",
"MYSQL_DEFAULT_PROFILE": "<YOUR_MYSQL_DEFAULT_PROFILE>",
"MYSQL_CONNECT_TIMEOUT_MS": "<YOUR_MYSQL_CONNECT_TIMEOUT_MS>",
"MYSQL_QUERY_TIMEOUT_MS": "<YOUR_MYSQL_QUERY_TIMEOUT_MS>"
}
}
}
}VS Code
{
"servers": {
"mcp-mysql-read-only-mcp-1-1-6": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MYSQL_HOST=<YOUR_MYSQL_HOST>",
"-e",
"MYSQL_PORT=<YOUR_MYSQL_PORT>",
"-e",
"MYSQL_USER=<YOUR_MYSQL_USER>",
"-e",
"MYSQL_PASSWORD=<YOUR_MYSQL_PASSWORD>",
"-e",
"MYSQL_DATABASE=<YOUR_MYSQL_DATABASE>",
"-e",
"MYSQL_PROFILES=<YOUR_MYSQL_PROFILES>",
"-e",
"MYSQL_DEFAULT_PROFILE=<YOUR_MYSQL_DEFAULT_PROFILE>",
"-e",
"MYSQL_CONNECT_TIMEOUT_MS=<YOUR_MYSQL_CONNECT_TIMEOUT_MS>",
"-e",
"MYSQL_QUERY_TIMEOUT_MS=<YOUR_MYSQL_QUERY_TIMEOUT_MS>",
"docker.io/shibbirweb/mcp-mysql-read-only:1.1.6"
],
"env": {
"MYSQL_HOST": "<YOUR_MYSQL_HOST>",
"MYSQL_PORT": "<YOUR_MYSQL_PORT>",
"MYSQL_USER": "<YOUR_MYSQL_USER>",
"MYSQL_PASSWORD": "<YOUR_MYSQL_PASSWORD>",
"MYSQL_DATABASE": "<YOUR_MYSQL_DATABASE>",
"MYSQL_PROFILES": "<YOUR_MYSQL_PROFILES>",
"MYSQL_DEFAULT_PROFILE": "<YOUR_MYSQL_DEFAULT_PROFILE>",
"MYSQL_CONNECT_TIMEOUT_MS": "<YOUR_MYSQL_CONNECT_TIMEOUT_MS>",
"MYSQL_QUERY_TIMEOUT_MS": "<YOUR_MYSQL_QUERY_TIMEOUT_MS>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"mcp-mysql-read-only-mcp-1-1-6": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"MYSQL_HOST=<YOUR_MYSQL_HOST>",
"-e",
"MYSQL_PORT=<YOUR_MYSQL_PORT>",
"-e",
"MYSQL_USER=<YOUR_MYSQL_USER>",
"-e",
"MYSQL_PASSWORD=<YOUR_MYSQL_PASSWORD>",
"-e",
"MYSQL_DATABASE=<YOUR_MYSQL_DATABASE>",
"-e",
"MYSQL_PROFILES=<YOUR_MYSQL_PROFILES>",
"-e",
"MYSQL_DEFAULT_PROFILE=<YOUR_MYSQL_DEFAULT_PROFILE>",
"-e",
"MYSQL_CONNECT_TIMEOUT_MS=<YOUR_MYSQL_CONNECT_TIMEOUT_MS>",
"-e",
"MYSQL_QUERY_TIMEOUT_MS=<YOUR_MYSQL_QUERY_TIMEOUT_MS>",
"docker.io/shibbirweb/mcp-mysql-read-only:1.1.6"
],
"env": {
"MYSQL_HOST": "<YOUR_MYSQL_HOST>",
"MYSQL_PORT": "<YOUR_MYSQL_PORT>",
"MYSQL_USER": "<YOUR_MYSQL_USER>",
"MYSQL_PASSWORD": "<YOUR_MYSQL_PASSWORD>",
"MYSQL_DATABASE": "<YOUR_MYSQL_DATABASE>",
"MYSQL_PROFILES": "<YOUR_MYSQL_PROFILES>",
"MYSQL_DEFAULT_PROFILE": "<YOUR_MYSQL_DEFAULT_PROFILE>",
"MYSQL_CONNECT_TIMEOUT_MS": "<YOUR_MYSQL_CONNECT_TIMEOUT_MS>",
"MYSQL_QUERY_TIMEOUT_MS": "<YOUR_MYSQL_QUERY_TIMEOUT_MS>"
}
}
}
}Let your agent find its tools
Find servers like mcp-mysql-read-only MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.