mcp-mysql-server
Provides a lightweight MySQL database interface via stdio, enabling query execution, data manipulation, schema inspection, and connection testing using FastMCP tools.
README
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
- Download or clone the repository to your local machine.
Configuration
-
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_nameNote: 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 implementationconfig.ini: Configuration file for MySQL connection parametersrequirements.txt: List of Python dependencieschanges.log: Log of changes made to the project
Docker Support
This project can be run in Docker containers using Docker Compose. The setup includes:
- A MySQL container with sample data
- The MCP MySQL Server container
Running with Docker
- Make sure you have Docker and Docker Compose installed on your system.
- Clone this repository.
- 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
# Make a copy of the main script with underscore naming
cp mcp-mysql-server.py mcp_mysql_server.py
# Run the tests
python -m unittest tests.py
Running Tests with Docker
docker-compose -f docker-compose.test.yml up --build
This will build a test container and run the unit tests within it.
Development
For developers who want to extend this tool, you can add new functionalities by creating additional MCP tools. Each tool is a Python function decorated with @mcp.tool() that handles a specific database operation.
Example of adding a new tool:
@mcp.tool()
def my_new_tool(param1: str, param2: int) -> dict:
"""
Documentation for the new tool.
"""
connection = create_mysql_connection()
cursor = connection.cursor()
try:
# Your tool implementation here
return {"result": "success"}
finally:
cursor.close()
connection.close()
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。