mcp_mysql_server
Einführung
mcp_mysql_server_pro befasst sich nicht nur mit MySQL-CRUD-Operationen, sondern umfasst auch Funktionen zur Datenbankanomalieanalyse und erleichtert Entwicklern die Erweiterung mit benutzerdefinierten Tools.
Unterstützt sowohl STDIO- als auch SSE-Modi
Unterstützt die Ausführung mehrerer SQL-Befehle, getrennt durch ";"
Unterstützt die Abfrage von Datenbanktabellennamen und -feldern basierend auf Tabellenkommentaren
Unterstützt die SQL-Ausführungsplananalyse
Unterstützt die Konvertierung chinesischer Felder in Pinyin
Unterstützt die Tabellensperranalyse
Unterstützt die Analyse des Datenbankzustands
Unterstützt die Berechtigungskontrolle mit drei Rollen: Nur Lesen, Schreiben und Administrator
"readonly": ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN"], # Read-only permissions "writer": ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN", "INSERT", "UPDATE", "DELETE"], # Read-write permissions "admin": ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN", "INSERT", "UPDATE", "DELETE", "CREATE", "ALTER", "DROP", "TRUNCATE"] # Administrator permissionsUnterstützt den Aufruf von Eingabeaufforderungsvorlagen
Related MCP server: SQL Server Express MCP Server
Werkzeugliste
Werkzeugname | Beschreibung |
sql_ausführen | SQL-Ausführungstool, das basierend auf der Berechtigungskonfiguration ["SELECT", "SHOW", "DESCRIBE", "EXPLAIN", "INSERT", "UPDATE", "DELETE", "CREATE", "ALTER", "DROP", "TRUNCATE"]-Befehle ausführen kann |
get_chinese_initials | Konvertieren Sie chinesische Feldnamen in Pinyin-Initialen |
get_db_health_running | Analysieren Sie den MySQL-Gesundheitsstatus (Verbindungsstatus, Transaktionsstatus, Ausführungsstatus, Erkennung des Sperrstatus). |
get_table_desc | Suche nach Tabellenstrukturen in der Datenbank basierend auf Tabellennamen, unterstützt Abfragen mehrerer Tabellen |
get_table_index | Suche nach Tabellenindizes in der Datenbank basierend auf Tabellennamen, unterstützt Abfragen mehrerer Tabellen |
get_table_lock | Überprüfen Sie, ob im aktuellen MySQL-Server Sperren auf Zeilen- oder Tabellenebene vorhanden sind |
Tabellenname abrufen | Suche nach Tabellennamen in der Datenbank basierend auf Tabellenkommentaren und -beschreibungen |
get_db_health_index_usage | Ermitteln Sie die Indexnutzung der aktuell verbundenen MySQL-Datenbank, einschließlich redundanter Indexsituationen, Indexsituationen mit schlechter Leistung und der fünf am häufigsten ungenutzten Indexsituationen mit Abfragezeiten von mehr als 30 Sekunden. |
Eingabeaufforderungsliste
Eingabeaufforderungsname | Beschreibung |
Analysieren der MySQL-Eingabeaufforderung | Dies ist eine Eingabeaufforderung zur Analyse MySQL-bezogener Probleme |
Abfragetabellen-Dateneingabeaufforderung | Dies ist eine Eingabeaufforderung zum Abfragen von Tabellendaten mithilfe von Tools. Wenn die Beschreibung leer ist, wird sie als MySQL-Datenbankabfrageassistent initialisiert. |
Gebrauchsanweisung
SSE-Modus
Verwenden Sie uv, um den Dienst zu starten
Fügen Sie Ihren MCP-Client-Tools den folgenden Inhalt hinzu, z. B. Cursor, Cline usw.
mcp json wie folgt:
{
"mcpServers": {
"operateMysql": {
"name": "operateMysql",
"description": "",
"isActive": true,
"baseUrl": "http://localhost:9000/sse"
}
}
}Ändern Sie den Inhalt der .env-Datei, um die Datenbankverbindungsinformationen mit Ihren Datenbankdetails zu aktualisieren:
# MySQL Database Configuration
MYSQL_HOST=192.168.xxx.xxx
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=root
MYSQL_DATABASE=a_llm
MYSQL_ROLE=readonly # Optional, default is 'readonly'. Available values: readonly, writer, adminStartbefehle:
# Download dependencies
uv sync
# Start
uv run server.pySTDIO-Modus
Fügen Sie Ihren MCP-Client-Tools den folgenden Inhalt hinzu, z. B. Cursor, Cline usw.
mcp json wie folgt:
{
"mcpServers": {
"operateMysql": {
"isActive": true,
"name": "operateMysql",
"command": "uv",
"args": [
"--directory",
"G:\\python\\mysql_mcp\\src", # Replace this with your project path
"run",
"server.py",
"--stdio"
],
"env": {
"MYSQL_HOST": "192.168.xxx.xxx",
"MYSQL_PORT": "3306",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "root",
"MYSQL_DATABASE": "a_llm",
"MYSQL_ROLE": "readonly" # Optional, default is 'readonly'. Available values: readonly, writer, admin
}
}
}
} Benutzerdefinierte Tool-Erweiterungen
Fügen Sie eine neue Tool-Klasse im Handles-Paket hinzu, erben Sie von BaseHandler und implementieren Sie die Methoden get_tool_description und run_tool
Importieren Sie das neue Tool in init .py, um es auf dem Server verfügbar zu machen
Beispiele
Erstellen Sie eine neue Tabelle und fügen Sie Daten ein. Geben Sie das Eingabeformat wie folgt ein:
# Task
Create an organizational structure table with the following structure: department name, department number, parent department, is valid.
# Requirements
- Table name: department
- Common fields need indexes
- Each field needs comments, table needs comment
- Generate 5 real data records after creationFragen Sie Daten basierend auf Tabellenkommentaren ab. Die Eingabeaufforderung lautet wie folgt:
Search for data with Department name 'Executive Office' in Department organizational structure tableAnalysieren Sie langsames SQL und geben Sie die folgende Eingabeaufforderung ein:
select * from t_jcsjzx_hjkq_cd_xsz_sk xsz
left join t_jcsjzx_hjkq_jcd jcd on jcd.cddm = xsz.cddm
Based on current index situation, review execution plan and provide optimization suggestions in markdown format, including table index status, execution details, and optimization recommendationsAnalysieren Sie SQL-Deadlock-Probleme und geben Sie die folgende Eingabeaufforderung ein:
update t_admin_rms_zzjg set sfyx = '0' where xh = '1' is stuck, please analyze the causeAnalysieren Sie die Eingabeaufforderung zum Gesundheitsstatus wie folgt
Check the current health status of MySQLAppeared in Searches
- Developing and redeveloping web frontend and Python backend projects, including frontend-backend integration and debugging
- Using Laravel Helper Functions and Resolving MySQL Table Query Errors
- A platform for managing code repositories and DevOps workflows
- Frontend Development Tool for Detecting Errors
- Searching for Reddit discussions about server-sent events (SSE)