mysql.com
mysql.com logo

MySQL

Connects to MySQL databases to enable querying, analyzing, and manipulating data directly within conversation interfaces...

Created byApr 22, 2025

mysql-mcp-server

0. Execution

Running with Docker

Change the database connection information as needed.

Running with Docker Compose

This will proceed with a pre-configured setup.

Running directly with Python

Cursor Configuration

MCP functionality is available from Cursor version 0.46 and above.Additionally, the MCP feature is only accessible to Cursor Pro account users.
Cursor Setting

Tool Addition Tips

  • Adding a Tool
  • Explanation

Development Roadmap

  • Parameter Options
  • Enable/Disable Switch for Each Tool: Provide a function to reduce Input Context costs
  • Query Security Level Setting: Offer optional control over functions that could damage asset value, such as DROP, DELETE, UPDATE
  • Features
  • Data Analysis Report Generation: Provide a report generation function optimized for the model to appropriately select various charts based on user requests
  • Extended Text2SQL Support
  • SSH Connection Support: Enable secure remote access via SSH for advanced operations
  • File Extraction Function

1. Overview

MCP MySQL Server is a server application for MySQL database operations based on MCP (Model Context Protocol). This server provides tools that allow AI models to interact with the MySQL database.

2. System Configuration

2.1 Key Components

  • MCP Server: A FastMCP server that communicates with AI models
  • MySQL Database: Manages and stores data
  • Tools: Executors that perform database operations

2.2 Tech Stack

  • Language: Python
  • Database: MySQL 8.0
  • Key Libraries:

2.3 Deployment Environment

  • Containerized deployment via Docker and Docker Compose
  • Ports: 8081 (MCP Server), 3306 (MySQL)

3. Directory Structure

4. Architecture Design

4.1 Layered Structure

  1. Interface Layer: MCP Server (FastMCP)
  1. Business Logic Layer: Handlers and Executors
  1. Data Access Layer: Database connection and query execution

4.2 Key Classes and Modules

  • MySQLMCPServer: Main server class that initializes and runs the MCP server
  • DatabaseManager: Singleton pattern-based database connection manager
  • Executors: Collection of tools for database operations

4.3 Communication Flow

  1. AI model requests a list of available tools from the MCP server.
  1. The server returns the available tools list.
  1. The AI model requests the execution of a specific tool.
  1. The server calls the corresponding executor to perform the database operation.
  1. The execution results are returned to the AI model.

5. Scalability and Maintenance

  • Adding Tools: Implement new tools in the executors directory and register them in __init__.py.
  • Environment Configuration: Manage environment variables via the .env file.
  • Logging: Ensure consistent logging using logger_helper.

6. Deployment and Execution

6.1 Local Execution

6.2 Docker Deployment

7. Security Considerations

  • Manage database credentials via environment variables.
  • Use strong passwords in production environments.
  • Consider implementing SSL/TLS encryption for database connections when necessary.

mysql-mcp-server

0. Execution

Running with Docker

Change the database connection information as needed.

Running with Docker Compose

This will proceed with a pre-configured setup.

Running directly with Python

Cursor Configuration

MCP functionality is available from Cursor version 0.46 and above.Additionally, the MCP feature is only accessible to Cursor Pro account users.
Cursor Setting

Tool Addition Tips

  • Adding a Tool
  • Explanation

Development Roadmap

  • Parameter Options
  • Enable/Disable Switch for Each Tool: Provide a function to reduce Input Context costs
  • Query Security Level Setting: Offer optional control over functions that could damage asset value, such as DROP, DELETE, UPDATE
  • Features
  • Data Analysis Report Generation: Provide a report generation function optimized for the model to appropriately select various charts based on user requests
  • Extended Text2SQL Support
  • SSH Connection Support: Enable secure remote access via SSH for advanced operations
  • File Extraction Function

1. Overview

MCP MySQL Server is a server application for MySQL database operations based on MCP (Model Context Protocol). This server provides tools that allow AI models to interact with the MySQL database.

2. System Configuration

2.1 Key Components

  • MCP Server: A FastMCP server that communicates with AI models
  • MySQL Database: Manages and stores data
  • Tools: Executors that perform database operations

2.2 Tech Stack

  • Language: Python
  • Database: MySQL 8.0
  • Key Libraries:

2.3 Deployment Environment

  • Containerized deployment via Docker and Docker Compose
  • Ports: 8081 (MCP Server), 3306 (MySQL)

3. Directory Structure

4. Architecture Design

4.1 Layered Structure

  1. Interface Layer: MCP Server (FastMCP)
  1. Business Logic Layer: Handlers and Executors
  1. Data Access Layer: Database connection and query execution

4.2 Key Classes and Modules

  • MySQLMCPServer: Main server class that initializes and runs the MCP server
  • DatabaseManager: Singleton pattern-based database connection manager
  • Executors: Collection of tools for database operations

4.3 Communication Flow

  1. AI model requests a list of available tools from the MCP server.
  1. The server returns the available tools list.
  1. The AI model requests the execution of a specific tool.
  1. The server calls the corresponding executor to perform the database operation.
  1. The execution results are returned to the AI model.

5. Scalability and Maintenance

  • Adding Tools: Implement new tools in the executors directory and register them in __init__.py.
  • Environment Configuration: Manage environment variables via the .env file.
  • Logging: Ensure consistent logging using logger_helper.

6. Deployment and Execution

6.1 Local Execution

6.2 Docker Deployment

7. Security Considerations

  • Manage database credentials via environment variables.
  • Use strong passwords in production environments.
  • Consider implementing SSL/TLS encryption for database connections when necessary.