Skip to main content
Glama
gistrec

mcp-mysql-client

MySQL MCP

npm CI ![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg

MySQL MCP verbindet eine AI-Anwendung mit einer einzelnen MySQL- oder MariaDB-Datenbank: Struktur ansehen, Daten in natürlicher Sprache abfragen, langsame Abfragen analysieren – und, wenn Sie es selbst erlaubt haben, Daten ändern.

Der Server ist an eine einzelne Datenbank gebunden: Sie wird über die Konfiguration festgelegt, und kein Tool kann auf eine andere zugreifen. Standardmäßig ist nur Lesen möglich.

  • 6 Tools. Verbindung und Berechtigungen, Tabellenliste, Tabellenstruktur, Leseabfrage, Abfrageplan, Schreibabfrage.

  • Der Server bestimmt den Abfragetyp. SQL wird vor der Verbindung geparst: DELETE in einem Lesetool wird abgelehnt, selbst wenn Schreibrechte aktiviert sind.

  • Lesen kann nicht schreiben. Leseabfragen laufen in einer START TRANSACTION READ ONLY-Transaktion – Schreibversuche lehnt MySQL selbst ab, selbst wenn jemand das SQL-Parsing austrickst.

  • Die Antwort überlastet den Kontext nicht. Zeilen werden gestreamt und an der Grenze abgeschnitten, statt vollständig geladen zu werden; die Antwort enthält ein ehrliches truncated-Flag.

  • Rechte nur von außen. INSERT, UPDATE und DELETE werden über Umgebungsvariablen aktiviert und erfordern einen Neustart – aus dem Dialog heraus sind sie nicht erhältlich. DDL ist immer deaktiviert.

Beginnen Sie mit einer Abfrage, die nur Daten liest:

Zeig mir die Datenbankstruktur und zähle, wie viele Datensätze in der letzten Woche hinzugekommen sind.


Schnellstart

Claude Code:

claude mcp add mysql-myapp \
  -e MYSQL_HOST=db.example.com \
  -e MYSQL_USER=myapp_ro \
  -e MYSQL_PASS='пароль' \
  -e MYSQL_DB=myapp \
  -e MYSQL_SSL=true \
  -- npx -y mcp-mysql-client

Oder in .mcp.json / claude_desktop_config.json:

{
  "mcpServers": {
    "mysql-myapp": {
      "command": "npx",
      "args": ["-y", "mcp-mysql-client"],
      "env": {
        "MYSQL_HOST": "db.example.com",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "myapp_ro",
        "MYSQL_PASS": "пароль",
        "MYSQL_DB": "myapp",
        "MYSQL_SSL": "true"
      }
    }
  }
}

Ein Server – eine Datenbank. Sie benötigen mehrere Datenbanken: Fügen Sie mehrere Einträge mit eigenen Anmeldedaten hinzu; so bleiben die Rechte isoliert und der mit der Testdatenbank verbundene Server sieht die Produktionsdatenbank physisch nicht.

Related MCP server: MySQL MCP Server

Was Sie erledigen lassen können

Abfrage

Was der Server tut

„Was gibt es in dieser Datenbank?"

list_tables – Tabellen, Größen, Zeilenschätzungen

„Wie ist die Tabelle orders aufgebaut?"

describe_table – Spalten, Indizes, Fremdschlüssel in beide Richtungen

„Wie viele Bestellungen gab es im Juli und in welcher Höhe?"

query – SELECT mit Aggregation

„Warum ist diese Abfrage langsam?"

explain – Plan, Indizes, Zeilenschätzung

„Als welcher Benutzer bin ich verbunden und was darf ich?"

server_info – Datenbank, Benutzer, GRANT, Serverlimits

„Setze den Status für stornierte Bestellungen"

execute – nur mit ALLOW_UPDATE_OPERATION=true

Was geändert werden kann

Standardmäßig nichts: Der Server startet im Nur-Lese-Modus. Das Schreiben wird pro Operation aktiviert:

"ALLOW_INSERT_OPERATION": "true",
"ALLOW_UPDATE_OPERATION": "true",
"ALLOW_DELETE_OPERATION": "false"

Was dabei weiterhin unmöglich bleibt:

  • DDLCREATE, ALTER, DROP, TRUNCATE, RENAME – unter keinen Umständen.

  • Datenbankwechsel, SET, CALL, PREPARE, LOAD DATA, Sperren, GRANT und anderes, das die Bedeutung der nächsten Abfrage ändert oder ungeprüften Text ausführt.

  • SELECT ... INTO OUTFILE – Schreiben einer Datei auf den Datenbankserver.

  • UPDATE und DELETE ohne WHERE – erfordern eine explizite Bestätigung allow_full_table=true im Aufruf.

  • Mehrere Anweisungen in einem Aufruf – es wird genau eine ausgeführt.

MySQL-Berechtigungen sind eine zusätzliche Einschränkung darüber hinaus. Die Berechtigung ALLOW_UPDATE_OPERATION fügt einem Benutzer ohne GRANT UPDATE nichts hinzu. Bewährte Praxis: ein separater Benutzer mit minimalen Rechten statt root.

Umgebungsvariablen

Variable

Standard

Zweck

MYSQL_HOST

127.0.0.1

Server-Host

MYSQL_PORT

3306

Port

MYSQL_SOCKET_PATH

Unix-Socket statt Host/Port

MYSQL_USER

Benutzer (erforderlich)

MYSQL_PASS

Passwort (Synonym für MYSQL_PASSWORD)

MYSQL_PASS_FILE

Passwort aus Datei statt Variable lesen

MYSQL_DB

Datenbank (erforderlich, Synonym für MYSQL_DATABASE)

MYSQL_SSL

false

TLS erzwingen

MYSQL_SSL_CA

Pfad zum Root-Zertifikat; aktiviert TLS selbst

MYSQL_SSL_REJECT_UNAUTHORIZED

true

Serverzertifikat prüfen

ALLOW_INSERT_OPERATION

false

INSERT erlauben

ALLOW_UPDATE_OPERATION

false

UPDATE erlauben

ALLOW_DELETE_OPERATION

false

DELETE erlauben

MYSQL_MAX_ROWS

1000

Zeilengrenze pro Antwort

MYSQL_TIMEOUT_MS

30000

Abfragetimeout

MYSQL_CONNECT_TIMEOUT_MS

10000

Verbindungstimeout

MYSQL_POOL_SIZE

3

Verbindungen im Pool

MYSQL_MAX_RETRIES

2

Wiederholungen bei Verbindungsabbrüchen und Deadlocks

MYSQL_READ_ONLY_TX

true

Lesen in Read-only-Transaktion ausführen

ASKADS_TELEMETRY

0 deaktiviert anonyme Startstatistiken

Das Passwort liegt in der MCP-Client-Konfiguration im Klartext vor. MYSQL_PASS_FILE ermöglicht es, es in einer Datei mit den entsprechenden Berechtigungen aufzubewahren.

Migration von @benbor29la/mcp-server-mysql

Die Variablennamen stimmen überein, daher reicht es, das Paket im Startbefehl zu ersetzen:

-  "args": ["-y", "@benborla29/mcp-server-mysql"]
+  "args": ["-y", "mcp-mysql-client"]

Was sich im Verhalten ändert:

  • MYSQL_DB ist erforderlich – der Server ist immer an eine Datenbank gebunden;

  • Antworten sind auf MYSQL_MAX_ROWS begrenzt und werden mit truncated markiert;

  • DDL ist selbst bei aktivierten Schreibrechten nicht verfügbar;

  • UPDATE/DELETE ohne WHERE erfordern eine Bestätigung im Aufruf;

  • Der Tool-Satz ist anders: query, execute, explain, list_tables, describe_table, server_info.

Diagnose

Zunächst einmal server_info: Es zeigt, womit der Server verbunden ist, welche Rechte der MySQL-Benutzer hat und welche Einschränkungen aktiv sind.

Symptom

Ursache

errno 1045

Falsche MYSQL_USER / MYSQL_PASS

errno 1044

Benutzer existiert, aber keine Rechte auf die Datenbank

errno 1142

Fehlendes GRANT für Operation oder Tabelle – ALLOW_* hilft hier nicht

errno 3159

Server erfordert TLS: MYSQL_SSL=true

ECONNREFUSED / ETIMEDOUT

Host, Port, Firewall oder kein aktives VPN

ER_NOT_SUPPORTED_AUTH_MODE

TLS für caching_sha2_password erforderlich

Server verbindet sich nicht

Konfigurationsfehler ist direkt im Dialog sichtbar: Der Server startet auch ohne Anmeldedaten und erklärt, was fehlt

Technische Dokumentation

Lizenz

MIT

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that enables AI agents to safely explore and interact with MySQL databases through dynamic tool generation from stored procedures. It provides database discovery capabilities and intelligent procedure categorization while enforcing security restrictions to prevent data modification.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI agents to safely interact with MySQL/MariaDB databases, supporting read-only queries by default with optional write operations and access control.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to query and manage MySQL databases through a structured MCP interface, supporting SQL execution, table inspection, and database operations.
    9
    14
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A robust MCP server for interacting with MySQL databases through AI agents, providing tools for schema analysis, query execution, and dynamic connection management with read-only security.
    61
    MIT

View all related MCP servers

Related MCP Connectors

  • Analytical memory for AI agents: a real Postgres queried in plain English over MCP. One command.

  • Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.

  • Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/gistrec/mcp-mysql-client'

If you have feedback or need assistance with the MCP directory API, please join our Discord server