mcp-mysql-server
About
MySQL Database Integration using Python script with configurable access controls and schema inspection, using stdio mode to suitable local deployment.
Details
- Author
- tonycai
- GitHub stars
- 3
- Downloads
- 252
- Categories
- Database
Jump to
- Execute SQL SELECT statements and view results
- Insert data into tables with write_table tool
- List all tables with list_tables tool
- Display table schema with get_table_schema tool
- Test database connectivity and get server info
- Configurable access via connection parameters file
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
mcp-mysql-serverCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Install Python 3.x and a local MySQL server. Install dependencies with pip install -r requirements.txt. Create a config.ini file with MySQL connection parameters (host, user, password, database; port optional). Run the script using python mcp-mysql-server.py --config config.ini. The script exposes tools such as test_connection, list_tables, read_table, write_table, get_table_schema, and execute_sql. Docker Compose support is also available.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"mcp-mysql-server": {
"mcp-mysql-server-tonycai": {
"command": "python",
"args": [
"mcp-mysql-server.py",
"--config",
"config.ini"
]
}
}
}
}
McpServers
{
"mcp-mysql-server-tonycai": {
"command": "python",
"args": [
"mcp-mysql-server.py",
"--config",
"config.ini"
]
}
}
mcp-mysql-server
A simple Python script for interacting with a local MySQL database via standard input/output (stdio), based on FastMCP.
Overview
mcp-mysql-server provides a command-line interface for querying and inspecting the schema of a local MySQL database. It is designed for ease of use in local development environments where a lightweight, script-based interaction is preferred. The script utilizes standard input and output for commands and results, making it easy to integrate with other command-line tools and workflows.
Features
Query Execution: Execute SQL SELECT statements and view the results in a simple, readable format.
Data Manipulation: Insert data into tables with the write_table tool.
Schema Inspection: Retrieve information about the database schema, including:
Listing all tables with the list_tables tool.
Displaying the columns and their data types for a specific table with get_table_schema.
Connection Testing: Test database connectivity and get server information.
Configurable Access Controls: Define connection parameters (host, user, password, database) through configuration, allowing secure access to the database.
stdio Interface: Interact with the script using standard input for commands and receive output via standard output, facilitating scripting and automation.
Local Deployment Focus: Optimized for use within local development environments.
Getting Started
Prerequisites
Python 3.x installed on your system.
A local MySQL server instance running.
Required Python libraries (install using the requirements.txt file):
pip install -r requirements.txt
Installation
1. Download or clone the repository to your local machine.
Configuration
1. Create a configuration file (e.g., config.ini) in the same directory as the script or specify the path when running the script. The configuration file should have the following format:
[mysql]
host = localhost
port = 3306 # Optional, defaults to 3306
user = your_mysql_user
password = your_mysql_password
database = your_database_name
Note: Ensure the MySQL user specified has the necessary privileges to perform the actions you intend to execute.
Usage
Run the script with the following command, specifying the path to your configuration file:
python mcp-mysql-server.py --config config.ini
The script exposes the following tools that you can use to interact with your MySQL database:
- test_connection: Tests the connection to the database and returns server information.
- list_tables: Lists all tables in the current database.
- read_table: Reads and returns all data from a specified table.
- write_table: Inserts a new row of data into a specified table.
- get_table_schema: Returns the schema (column definitions) for a specified table.
- execute_sql: Executes a custom SQL query and returns the results.
Project Structure
- mcp-mysql-server.py: Main script containing the MySQL MCP server implementation
- config.ini: Configuration file for MySQL connection parameters
- requirements.txt: List of Python dependencies
- changes.log: Log of changes made to the project
Docker Support
This project can be run in Docker containers using Docker Compose. The setup includes:
1. A MySQL container with sample data
2. The MCP MySQL Server container
Running with Docker
1. Make sure you have Docker and Docker Compose installed on your system.
2. Clone this repository.
3. From the repository root, run:
docker-compose up -d
This will:
- Start a MySQL server with sample data (users and posts tables)
- Start the MCP MySQL Server connected to the MySQL database
Configuration for Docker
A special configuration file (config.docker.ini) is used when running in Docker, which points to the MySQL container.
Testing
Unit tests are provided to ensure the functionality works correctly. The tests use mocking to avoid requiring an actual database connection.
Running Tests Locally
```bash
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



