mysql-mcp
mysql-mcp
MCP server for MySQL and MariaDB: schema inspection, SELECT, and separate confirmation-gated write/DDL/transaction tools.
Works over the MySQL wire protocol (MySQL 5.7+/8+ and MariaDB). For Aurora IAM or RDS Data API, use AWS Labs’ MySQL MCP instead.
Secrets belong in agent mcp.json env (mcpServers.*.env) — not project .env. Do not create a project .env for runtime credentials.
Tools
Tool | Notes |
| Schema inspect |
| Schema inspect |
| SELECT only; locks/ |
| INSERT/UPDATE/DELETE/REPLACE/TRUNCATE — strong confirm |
| CREATE/ALTER/DROP/RENAME — strong confirm |
| Multi-statement txn — per-stmt preview + strong confirm |
| EXPLAIN |
Writes are separate tools from reads. Agents must not use read_query for DML/DDL.
Strong confirmation
MCP has no native UI modal. Mutating tools return an impact preview and do not execute until called again with the same sql and confirmed: true.
Client operators should require approval on write_query, schema_query, and transaction_query (destructiveHint / non-readOnly).
Auth / env
Variable | Required | Purpose |
| no* |
|
| * | Discrete connection |
| no | TLS |
| no | Caps |
Privilege scope: prefer least privilege. Use a write-capable role only when write tools are needed.
mcp.json example
{
"mcpServers": {
"mysql": {
"command": "node",
"args": ["/Volumes/ADATA/Projects/mcp-mysql/dist/index.js"],
"env": {
"MYSQL_HOST": "127.0.0.1",
"MYSQL_USER": "mcp_rw",
"MYSQL_PASSWORD": "your-password",
"MYSQL_DATABASE": "your_database"
}
}
}
}Develop
npm test && npm run build
# Smoke (pass env inline — never create a repo .env):
# MYSQL_HOST=… MYSQL_USER=… MYSQL_PASSWORD=… MYSQL_DATABASE=… npm run test:connectionsRisks
Row content is untrusted (prompt injection)
Confirmed writes are permanent without DB-level undo
Shared bot identity;
transaction_queryhas large blast radius after confirm
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/RexySaragih/mcp-mysql'
If you have feedback or need assistance with the MCP directory API, please join our Discord server