mysql-mcp
MySQL MCP
Feature-rich MCP server for MySQL and MariaDB with multi-connection support. Connect many instances at once — query schemas, run scripts, test stored procedures with sandbox rollback.
npm:
@raviraj87/mysql-mcpRuns locally via stdio (any MCP-compatible client)
Supports MySQL 5.7+, 8.x, MariaDB 10.x–11.x, InnoDB/Aria/MyISAM
Quick start
Connect to the MySQL server — no database required in the URI. Use list_databases, then pass database on each tool call (or set default_database in config).
{
"mcpServers": {
"mysql": {
"command": "npx",
"args": ["-y", "@raviraj87/mysql-mcp"],
"env": {
"MYSQL_URI": "mysql://user:pass@localhost:3306"
}
}
}
}Typical workflow
list_databases— discover databases on the serverPick a database (agent asks, or you pass it explicitly)
list_tables,query, etc. with"database": "myapp"
Optional: set default_database in YAML so tools skip the database param for that connection.
Multiple connections — copy config.example.yaml → ~/.mysql-mcp.yaml:
default_connection: local
connections:
local:
uri_env: MYSQL_URI
default_database: myapp # optional — omit to choose per tool call
staging:
uri_env: MYSQL_URI_STAGING
prod:
uri_env: MYSQL_URI_PROD
read_only: trueSet URIs in MCP env. Every tool accepts optional connection: "staging".
Extra connections via env:
MYSQL_EXTRA_CONNECTIONS=staging:MYSQL_URI_STAGING,prod:MYSQL_URI_PRODServer vs database
Level | Config | Example |
Server |
|
|
Default DB |
|
|
Per tool |
|
|
Tools like ping, list_databases, and server_info work without a database. Schema/query tools require database or default_database.
Tools (~55)
Connection: list_connections, ping, server_info, connect
Metadata: list_databases, list_tables, describe_table, show_create_table, list_indexes, list_foreign_keys, table_stats, list_views, list_triggers, list_events
Read: query, query_one, explain, count, sample_rows, distinct_values, export_query
Write: execute, execute_batch, insert_rows, delete_rows, truncate_table
Routines: list_procedures, list_functions, describe_procedure, show_create_procedure, show_create_function, call_procedure, call_function, test_procedure, create_procedure, drop_procedure, routine_overview
Scripts: split_script, validate_script, run_script, test_script, load_script_file, run_script_with_vars
Admin: execute_ddl, create_database, drop_database, create_index, drop_index, show_grants
Diagnostics: processlist, status, variables, innodb_status, replication_status, kill_query, health_check
Composite: explore_table, database_overview, analyze_query, compare_tables, index_health
Stored procedures & scripts
Test a procedure (rollback by default):
{
"tool": "test_procedure",
"arguments": {
"database": "myapp",
"procedure": "sp_create_order",
"params": { "p_customer_id": 42, "p_amount": 99.99 },
"setup_sql": ["INSERT INTO customers (id) VALUES (42)"]
}
}Test a SQL script:
{
"tool": "test_script",
"arguments": {
"database": "myapp",
"script": "DELIMITER $$\nCREATE PROCEDURE ...\nEND$$\nDELIMITER ;\nCALL my_proc(1);"
}
}split_script handles DELIMITER changes. Sandbox rollback requires InnoDB/Aria unless compatibility.allow_myisam_sandbox: true.
Safety
Global or per-connection
read_onlymax_rowsauto-LIMIT on SELECTquery_timeout_msvia sessionmax_execution_time/max_statement_timeexplain_check— reject full table scansconfirmation_required_tools— destructive ops needconfirmed: truetest_sandbox_default: true— scripts/SP tests roll back unless committedallowed_databasesper connectionBlocks
INTO OUTFILE,LOAD DATA,SHUTDOWN
Install from source
cd mysql-mcp
npm install
npm run build{
"command": "node",
"args": ["/path/to/mysql-mcp/dist/index.js"]
}License
Copyright © 2026 Ravi Raj. Licensed under the MIT License.
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/raviraj-ntp/mysql-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server