mcp-mysql-server
The MySQL MCP Server for Smithery is a Python-based connector that enables direct connection to MySQL databases from Smithery. It supports essential database operations like listing databases and tables and executing read-only SQL queries with built-in security validation.
MySQL MCP Server for Smithery (Python)
A MySQL connector for Smithery that allows you to connect to your MySQL database directly from Smithery, built with Python.
Features
- Connect to MySQL Databases: Configure and connect to MySQL databases
- List Databases: View all accessible databases
- List Tables: View all tables in a specified database
- Describe Tables: Get detailed schema information for tables
- Execute Queries: Run read-only SQL queries (SELECT, SHOW, DESCRIBE, EXPLAIN)
- Security: Built-in query validation ensures only read-only operations are allowed
Installation in Smithery
After adding the MCP server in Smithery, you'll be able to enter your MySQL database credentials:
- Host: Database server hostname (default: localhost)
- Port: Database server port (default: 3306)
- User: Your MySQL username
- Password: Your MySQL password
- Database: (Optional) The specific database to connect to
Manual Installation
- Clone this repository:
git clone https://github.com/aqaralife/mysql-mcp-python-server.git
- Install dependencies:
cd mysql-mcp-python-server
npm install
pip install -r requirements.txt
- Make the scripts executable (Unix/Linux/Mac):
chmod +x mcp_server.py run.js
Manual Usage
To start the server:
node run.js
Or, directly run the Python script:
python mcp_server.py
Available Tools
connect_db
Establishes a connection to a MySQL database.
Parameters:
- host: Database server hostname
- port: Database server port
- user: Database username
- password: Database password
- database: (Optional) Database name
list_databases
Lists all accessible databases.
Parameters: None
list_tables
Lists all tables in a database.
Parameters:
- database: (Optional) Database name, uses default if connected
describe_table
Shows the schema for a table.
Parameters:
- table: Table name
- database: (Optional) Database name, uses default if connected
execute_query
Executes a read-only SQL query.
Parameters:
- query: SQL query (only SELECT, SHOW, DESCRIBE, and EXPLAIN allowed)
- database: (Optional) Database name, uses default if connected
Security
The server includes built-in validation to ensure only read-only operations are permitted:
- Only SELECT, SHOW, DESCRIBE, and EXPLAIN queries are allowed
- Queries containing SQL commands like INSERT, UPDATE, DELETE, DROP, etc. are automatically rejected
- Multiple statements in a single query (separated by semicolons) are not allowed
Troubleshooting
If you encounter issues:
-
Python Not Found: The server will automatically detect
python3
orpython
. If neither works, ensure Python is installed and in your PATH. -
Missing Modules: The server will attempt to install required packages automatically. If this fails, manually run:
pip install mysql-connector-python>=8.0.0
-
Connection Issues: Verify your database credentials and ensure the MySQL server is running and accessible.
-
Smithery Connection Issues: Make sure the settings in Smithery are correctly configured with your database credentials.
-
Server Unresponsive: Check the log output in Smithery's console for errors.
License
MIT
Contact
If you have any questions, please create an issue.