Python MCP server for MySQL database inspection and querying
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
A Python Model Context Protocol (MCP) server for inspecting and querying MySQL databases from MCP-compatible clients. It provides table discovery, schema inspection, read query execution, DDL lookup, query explanation, and optional write/DDL tools for controlled database administration workflows.
SHOW CREATE TABLE outputmysql_execute_read_query only accepts a single statement beginning with SELECT, rejects common modifying SQL keywords and risky file-read/write forms, and caps returned rows by MYSQL_READ_QUERY_LIMIT. This is a guardrail, not a substitute for database permissions. Use a dedicated read-only MySQL user for safe exploration. The write and DDL tools can modify or destroy data if the configured database user is allowed to do so; keep them on manual approval in your MCP client.
When published to PyPI, install or run the server like a standard Python MCP package:
For local development from source:
Copy the example environment file and update it with your database connection details.
| Variable | Description | Required | Default |
|---|---|---|---|
MYSQL_HOST | MySQL host | No | localhost |
MYSQL_PORT | MySQL port | No | 3306 |
MYSQL_USER | MySQL username | No | root |
MYSQL_PASSWORD | MySQL password | No | Empty |
MYSQL_DATABASE | MySQL database name | Yes | Empty |
MYSQL_POOL_SIZE | Connection pool size | No | 5 |
LOG_LEVEL | Python logging level | No | INFO |
MYSQL_READ_QUERY_LIMIT | Maximum rows returned by read queries | No | 1000 |
Example read-only user:
From a local checkout before PyPI publication, run:
For published installs, prefer uvx. MCP servers using stdio must write protocol messages only to stdout; this server writes logs to stderr through Python logging.
Most MCP clients accept this mcpServers JSON shape:
For local development from this repository, use the installed console script path instead:
VS Code uses the same command/args/env model in its MCP configuration:
| Tool | Purpose | Safety |
|---|---|---|
mysql_list_tables | List tables in the configured database | Read-only |
mysql_describe_table | Show schema for a table | Read-only |
mysql_execute_read_query | Execute a single bounded SELECT query | Read-only guardrail |
mysql_execute_write_query | Execute a single INSERT, UPDATE, or DELETE | Destructive |
mysql_execute_ddl | Execute a single CREATE, DROP, ALTER, or TRUNCATE | Destructive |
mysql_get_table_ddl | Return SHOW CREATE TABLE output | Read-only |
mysql_explain_query | Run EXPLAIN for a single query | Read-only |
mysql_get_database_summary | Return table list and row counts | Read-only |
Without a database, verify syntax with:
With a configured database, start the server and use your MCP client to call list_tables.
This server is published through the standard Python MCP distribution path:
mdev-mysql-mcp-serverio.github.musaddiq-dev/mysql-mcp-serveruvxstdioThe mcp-name marker at the top of this README is required for MCP Registry ownership verification. Users should prefer uvx mdev-mysql-mcp-server in local MCP client configurations.
.env or MCP client configs containing credentials.execute_write_query and execute_ddl on explicit manual approval.MIT
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mysql-mcp-server)<a href="https://allmcps.com/mcp/mysql-mcp-server"><img src="https://allmcps.com/api/badge/mysql-mcp-server?style=directory" alt="MySQL MCP Server on AllMCPs" /></a>