mysql-mcp
Full support for MariaDB databases with the same capabilities as MySQL, including multi-connection, querying, schema exploration, stored procedures, scripts, and sandbox testing.
Feature-rich MCP server for MySQL with multi-connection support, allowing querying, schema management, stored procedures, scripts, and administrative tools across multiple MySQL instances.
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-mcplist tables in the sales database"
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 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.
Related MCP server: mcp-server-sqlite
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.
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/raviraj-ntp/mysql-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server