mysql-db-reader
Provides read-only MySQL tools for listing databases, tables, schemas, previewing sample rows, executing SELECT/SHOW/DESC/EXPLAIN queries, and explaining queries, with enforced read-only access.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mysql-db-readershow schema for the users table"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MySQL Reader (read-only)
Read-only MySQL tools for xmcp. Connect via a connection-string env var; all operations are read-only.
Prerequisites
Node 20+
pnpm
Install & build
pnpm i
pnpm buildConfigure database connection
Set one of (first found wins): MYSQL_URL, MYSQL_CONNECTION_STRING, or DATABASE_URL.
export MYSQL_URL="mysql://user:password@localhost:3306/mydb"SSL is controlled by MYSQL_SSL (default: "true"):
Value | Behavior |
| Encrypted, skips cert hostname validation — use when connecting through a tunnel or proxy |
| Encrypted, validates server certificate — use for direct connections with a valid cert |
| No SSL — local dev only |
export MYSQL_SSL=true # tunnel / hosted DB (default)
export MYSQL_SSL=strict # direct connection, valid cert
export MYSQL_SSL=false # local dev, no SSLUse in Cursor (STDIO)
Via npx (after publishing to npm — no local clone needed):
{
"mcpServers": {
"mysql-reader": {
"command": "npx",
"args": ["-y", "mysql-db-reader"],
"env": { "MYSQL_URL": "mysql://user:password@host:3306/db" }
}
}
}Local build (after pnpm build):
{
"mcpServers": {
"mysql-reader": {
"command": "node",
"args": ["/ABSOLUTE/PATH/TO/mysql-db-reader/dist/stdio.js"],
"env": { "MYSQL_URL": "mysql://user:password@host:3306/db" }
}
}
}Use via HTTP (optional)
pnpm devThen point your MCP client to http://localhost:3002/mcp.
To use a different port (e.g., 3001):
export MYSQL_URL="mysql://user:password@localhost:3306/mydb"
PORT=3001 pnpm devExample HTTP client config (TOML):
[mcp_servers.mysql-reader]
transport = "http"
url = "http://127.0.0.1:3001/mcp"
project = "/ABSOLUTE/PATH/TO/your/project"Tools
mysql_list_databases(includeSystem=false)— list databasesmysql_list_tables(database, includeViews=true)— list tables/viewsmysql_get_table_schema(database, table)— columns/constraints/indexesmysql_preview_table(database, table, limit=50, orderBy?)— sample rowsmysql_query(sql, params?)— read-only SQL (SELECT/SHOW/DESC/EXPLAIN/WITH), max 10k rowsmysql_explain_query(sql)— EXPLAIN a SELECT
Codex compatibility
Tool names use lowercase snake_case (underscores, no dots) to comply with Codex's tool name pattern ^[a-zA-Z0-9_-]+$ (Codex models prefer lower_snake). See: MCP in Codex docs
Read-only is enforced via session settings and SQL guards.
Docs: xmcp docs
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/riefer02/mysql-db-reader'
If you have feedback or need assistance with the MCP directory API, please join our Discord server