MySQL (read-only, switchable) MCP server
io.github.shibbirweb/mcp-mysql-read-only·v1.1.6Read-only MySQL access, with the database and server switchable mid-conversation.
0 stars79 downloads/wk
Reviews
Write oneNobody has reviewed MySQL (read-only, switchable) yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
MySQL (read-only, switchable) tools
No tool declarations could be read from the package source. They show once the server is installed.
Public scan report
scanner v0.1.10 · 2026-11-01 · same rubric, same numbers if you re-run it
- Code scan49 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 24 days ago15/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How MySQL (read-only, switchable) compares
Against every graded Databases MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 83/100
- higher than 60% of 802 Databases servers
- Downloads a week
- 79
- more than 53% of 324 Databases servers with a package
Release history: 3 versions in the registry since 2026-09-22, latest 2026-09-24, typically one every 2 days.
Install MySQL (read-only, switchable) in Claude Code, Cursor or VS Code
Runs npx -y @shibbirweb/mcp-mysql-read-only on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add mcp-mysql-read-only -- npx -y @shibbirweb/mcp-mysql-read-only
What the publisher says
From the MySQL (read-only, switchable) repository's README, as published. We do not edit it. Read it on GitHub
mcp-mysql-read-only
An MCP server that gives an AI assistant read-only access to MySQL, and lets it change database, server and credentials mid-conversation without restarting the client.
Most MySQL MCP servers read their connection from environment variables once at startup. Pointing one at a different database means editing a config file and restarting the assistant, which loses your conversation. This server keeps the connection as runtime state, so switching is just another tool call.
Runs from npm with npx, or entirely in Docker with nothing installed on your machine.
flowchart LR
A["AI assistant<br/>Claude Desktop / Claude Code"]
B["mcp-mysql-read-only<br/>one process, whole session"]
C[("app_dev")]
D[("staging")]
E[("analytics")]
F[("any server<br/>reached with connect")]
A <-->|"MCP over stdio"| B
B -.->|"pooled per target"| C
B -.->|"pooled per target"| D
B -.->|"pooled per target"| E
B -.->|"opened at runtime"| FThe server lives for the whole session, so the active connection is just state inside it. Switching selects a different pool rather than reconnecting, and switching back reuses a warm one.
Quick start
Two ways to run it. npm is the shorter setup; Docker keeps the server inside a container.
npm
MYSQL_HOST=127.0.0.1 \
MYSQL_USER=readonly \
MYSQL_PASSWORD=secret \
MYSQL_DATABASE=my_database \
npx -y @shibbirweb/mcp-mysql-read-onlyRequires Node 22 or newer. There is no container in the way, so 127.0.0.1 means what you expect.
Docker
docker run -i --rm \
--add-host host.docker.internal:host-gateway \
-e MYSQL_HOST=host.docker.internal \
-e MYSQL_USER=readonly \
-e MYSQL_PASSWORD=secret \
-e MYSQL_DATABASE=my_database \
shibbirweb/mcp-mysql-read-onlyUse host.docker.internal to reach a MySQL running on the same machine as Docker. Inside the container, localhost means the container itself.
The container is the more isolated of the two: the server runs with only what the image and the environment give it. Over npm it runs directly on your machine with your user's access. Both enforce the same read-only guarantee.
Claude Desktop
Add to claudedesktopconfig.json:
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@shibbirweb/mcp-mysql-read-only"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_USER": "readonly",
"MYSQL_PASSWORD": "secret",
"MYSQL_DATABASE": "my_database"
}
}
}
}Or the same server in Docker:
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
MySQL (read-only, switchable): common questions
- Is MySQL (read-only, switchable) MCP server safe?
- Mostly: it is graded B (83/100). Read the MySQL (read-only, switchable) safety report
- How do I install MySQL (read-only, switchable)?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does MySQL (read-only, switchable) need an API key?
- Yes. The registry entry asks for
MYSQL_PASSWORD,MYSQL_PROFILES. - Is MySQL (read-only, switchable) maintained?
- The last commit was 24 days ago (2026-10-09). The latest release is v1.1.6.
- What can I use instead of MySQL (read-only, switchable)?
- Servers from other publishers that do the same job: DBHub MCP server, Appwrite MCP server and Faucet MCP server. Compare all MySQL (read-only, switchable) alternatives.
- How does MySQL (read-only, switchable) compare with other Databases MCP servers?
- safety score 83/100 (higher than 60% of 802 Databases servers); downloads a week 79 (more than 53% of 324 Databases servers with a package). Full comparison.
Alternatives to MySQL (read-only, switchable)
Same job from other publishers: the closest match first, then the best rated.
- DBHubToken-efficient database MCP server for PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, SQLitenot reviewedWidely usedA
- AppwriteBuild and deploy backends: auth, Postgres/MySQL/vector databases, storage, functions, hosting, CDNnot reviewedEstablishedA
- FaucetSQL database to MCP tools and REST API: PostgreSQL, MySQL, SQL Server, Oracle, SQLite, Snowflake.not reviewedEstablishedA
- QuarrySafety-railed database access: Postgres, MySQL, SQLite, Redis. Read-only by default.not reviewedGrowingA
- Read Only Local MysqlMCP server for read-only MySQL database queries in Claude Desktopnot reviewedGrowingA