Skip to main content
Glama
chenkumi

easy-mysql-mcp

by chenkumi

easy-mysql-mcp

Ein leichtgewichtiger Model Context Protocol (MCP)-Server, der es KI-Assistenten ermöglicht, eine MySQL-Datenbank über eine sichere, strukturierte Tool-Schnittstelle zu untersuchen und abzufragen.

Dieses Projekt verwendet Node.js, TypeScript, das offizielle MCP SDK und mysql2/promise. Es läuft über stdio und kann daher direkt von MCP-Clients wie Claude Desktop verwendet werden.

Funktionen

  • MySQL-Verbindungspooling basierend auf mysql2/promise

  • Schreibgeschütztes Abfrage-Tool für den Datenabruf

  • Ausführungs-Tool für Datenänderungsanweisungen

  • Schema-Erkennungs-Tools für Tabellen, Views, Indizes und Trigger

  • Abfrageplan-Inspektion mit EXPLAIN

  • Überprüfung des aktuellen Benutzers und der Berechtigungen

  • stdout-Schutz, um zu verhindern, dass Nicht-MCP-Protokolle das stdio-Protokoll verunreinigen

Anforderungen

  • Node.js 18 oder neuer

  • npm

  • Eine erreichbare MySQL-kompatible Datenbank

Installation

Starten Sie den Server direkt mit npx:

npx -y easy-mysql-mcp

Für die lokale Entwicklung nach dem Klonen des Repositorys:

cd easy-mysql-mcp
npm install
npm run build

Konfiguration

Konfigurieren Sie den Server mit Umgebungsvariablen. Sie können diese über Ihre MCP-Client-Konfiguration oder durch Erstellen einer lokalen .env-Datei bereitstellen.

Variable

Erforderlich

Standard

Beschreibung

MYSQL_HOST

Ja

-

MySQL-Hostname oder IP-Adresse

MYSQL_PORT

Nein

3306

MySQL-Port

MYSQL_USER

Ja

-

MySQL-Benutzername

MYSQL_PASSWORD

Ja

-

MySQL-Passwort

MYSQL_DATABASE

Ja

-

Standard-Datenbank/Schema

MYSQL_CONNECTION_LIMIT

Nein

10

Maximale Anzahl aktiver Pool-Verbindungen

MYSQL_MAX_IDLE

Nein

10

Maximale Anzahl inaktiver Pool-Verbindungen

MYSQL_IDLE_TIMEOUT

Nein

60000

Timeout für inaktive Verbindungen in Millisekunden

MYSQL_QUEUE_LIMIT

Nein

0

Maximale Anzahl an Verbindungsanfragen in der Warteschlange, wobei 0 unbegrenzt bedeutet

MYSQL_WAIT_FOR_CONNECTIONS

Nein

true

Ob der Pool wartet, wenn alle Verbindungen belegt sind

MYSQL_ENABLE_KEEP_ALIVE

Nein

true

Ob TCP-Keep-Alive aktiviert ist

MYSQL_KEEP_ALIVE_INITIAL_DELAY

Nein

0

Anfängliche TCP-Keep-Alive-Verzögerung in Millisekunden

Beispiel .env:

MYSQL_HOST=localhost
MYSQL_PORT=3306
MYSQL_USER=root
MYSQL_PASSWORD=your_password
MYSQL_DATABASE=your_database

Verwendung

Konfigurieren Sie Ihren MCP-Client so, dass das Paket über npx gestartet wird.

Für die lokale Entwicklung erstellen Sie zuerst den TypeScript-Quellcode:

npm run build

Starten Sie den MCP-Server:

npm start

Der Server kommuniziert über stdio und wird normalerweise von einem MCP-Client gestartet, anstatt manuell ausgeführt zu werden.

Claude Desktop Beispiel

Fügen Sie den Server zu Ihrer claude_desktop_config.json hinzu:

{
  "mcpServers": {
    "easy-mysql-mcp": {
      "command": "npx",
      "args": ["-y", "easy-mysql-mcp"],
      "env": {
        "MYSQL_HOST": "localhost",
        "MYSQL_PORT": "3306",
        "MYSQL_USER": "root",
        "MYSQL_PASSWORD": "your_password",
        "MYSQL_DATABASE": "your_database"
      }
    }
  }
}

Starten Sie Claude Desktop nach dem Aktualisieren der Konfiguration neu.

Verfügbare Tools

Tool

Beschreibung

mysql_query

Führt eine SQL-Abfrage zum Datenabruf aus, wie z. B. SELECT

mysql_execute

Führt eine Datenänderungsanweisung aus, wie z. B. INSERT, UPDATE oder DELETE

explain_query

Führt EXPLAIN für eine SQL-Abfrage aus und gibt den Ausführungsplan zurück

list_tables

Listet Basistabellen in der aktuellen Datenbank auf, einschließlich ungefährer Zeilenanzahl und Kommentare

list_views

Listet Views in der aktuellen Datenbank auf

describe_table

Zeigt Spalteninformationen für eine oder mehrere Tabellen an

describe_index

Zeigt Indizes für eine Tabelle an

list_triggers

Listet Trigger in der aktuellen Datenbank auf

get_current_privileges

Zeigt den aktuellen MySQL-Benutzer und dessen Berechtigungen an

Sicherheitshinweise

  • Verwenden Sie einen dedizierten MySQL-Benutzer mit den minimalen Berechtigungen, die Ihr Assistent benötigt.

  • Bevorzugen Sie schreibgeschützte Datenbankanmeldeinformationen, wenn Sie nur Inspektionen und Berichte benötigen.

  • Seien Sie vorsichtig mit mysql_execute, da dies Daten ändern kann.

  • Committen Sie keine .env-Dateien oder echte Datenbankanmeldeinformationen auf GitHub.

  • Überprüfen Sie generiertes SQL, bevor Sie es auf Produktionsdaten ausführen.

Entwicklung

npm run dev

Dies führt TypeScript im Watch-Modus aus.

Um einen Produktions-Build zu erstellen:

npm run build

Projektstruktur

src/
  db.ts       MySQL pool and query helpers
  index.ts    MCP server and tool registration
  proxy.ts    stdout protection for stdio-based MCP transport

Lizenz

ISC

Install Server
F
license - not found
A
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/chenkumi/easy-mysql-mcp'

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