🐍 🏠 - MySQL database integration with configurable access controls, schema inspection and security guidelines
MySQL MCP Server
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
A Model Context Protocol (MCP) implementation that enables secure interaction with MySQL databases. This server component facilitates communication between AI applications (hosts/clients) and MySQL databases, making database exploration and analysis safer and more structured through a controlled interface.
> **Note**: MySQL MCP Server supports both standard input/output (STDIO) and Streamable HTTP (SSE) transport modes. The SSE mode is recommended for remote/self-hosted deployments.
Deployment options
- **Hosted** — Fronteir AI runs the server for you; no local setup required.
- **Local** — Smithery installs and runs the server on your own machine.
Features
- List available MySQL tables as resources
- Read table contents
- Execute SQL queries with proper error handling
- **Multi-database mode** (Optional MYSQL_DATABASE)
- **SSE/HTTP transport support** (MCP_TRANSPORT=sse)
- **SSH Tunneling support**
- **Comprehensive schema information**
- **Table data sampling**
- Secure database access through environment variables
- Comprehensive logging
Installation
Manual Installation
Installing via Smithery
To install MySQL MCP Server for Claude Desktop automatically via Smithery:
Installing via Claude Code CLI
Installing via Autohand Code CLI
Add --scope project after mcp add to keep the registration in the current workspace. See Autohand Code for current CLI details.
Configuration
Set the following environment variables:
.env file loading
On startup the server automatically loads a .env file via python-dotenv, so for local use you can simply:
The file is read from the **process working directory** (and parent directories), which works when you run the server yourself from the project folder.
> ⚠️ **Claude Code / Claude Desktop:** these hosts launch the server from their own working directory, so the project's .env will **not** be found and you'll see Missing required database configuration. Put your MYSQL_* values in the env block of the MCP config (shown in the Usage section below) rather than relying on .env.
Multi-Database Mode
When MYSQL_DATABASE is not set, the server operates in multi-database mode:
- list_resources returns all user databases (system databases are filtered out)
- Use fully qualified table names like mydb.mytable in SQL queries
- **Note:** Only single SQL statements are supported. Multi-statement queries (e.g., USE db; SELECT ...) are not supported.
Available Tools
execute_sql
Executes any standard SQL query.
- **Arguments:** query (string)
- **Features:** Supports SELECT, SHOW, DESCRIBE, and DML (INSERT, UPDATE, DELETE). DML operations are marked with a destructive hint.
- **Limitation:** Single statements only. Multi-statement queries are not supported.
- **Cross-database:** Use database.table notation to query any database regardless of the MYSQL_DATABASE setting.
get_schema_info
Provides detailed metadata about database structures.
- **Arguments:** table_name (optional string)
- **Output:** Column names, types, nullability, default values, and comments.
- **Cross-database:** Pass database.table to query a table outside MYSQL_DATABASE; bare names use the configured database.
- **Identifier rules:** Names must contain only alphanumeric characters, underscores, and $ (dots are allowed as a separator between database and table names).
get_table_sample
Fetches a representative sample of data.
- **Arguments:** table_name (string), limit (optional integer, max 20)