MCP-DB Cheat-Sheet

Schnellreferenz für den Umstieg von direkten mysql-Befehlen auf MCP-DB Tools.

WICHTIG: mysql/mariadb-Befehle sind blockiert!

Direkte Datenbankzugriffe mit mysql oder mariadb werden durch einen PreToolUse Hook automatisch blockiert.

# Diese Befehle werden BLOCKIERT:
mysql -u root -pPassword -e "SELECT 1"
mariadb -u user -pSecret
mysqldump ki_protokoll > backup.sql

# Stattdessen MCP-DB verwenden (10 Tools verfügbar)

MCP-DB Tools Übersicht (10 Tools)

ToolVerwendungParameter
Lese-Operationen
db_selectSELECT Queries ausführenquery, database, max_rows, params
db_schemaTabellen-Metadatendatabase
db_statsMCP-Log Einträgelimit
db_databasesErlaubte DBs auflisten-
db_tablesTabellen auflistendatabase, include_row_count
db_describeTabellenstrukturtable, database, show_create
Schreib-Operationen
db_insertDatensatz einfügentable, data, database
db_updateDatensätze änderntable, data, where, database
db_deleteDatensätze löschentable, where, database, limit
DDL-Operationen
db_executeALTER/CREATE/DROP/TRUNCATEstatement, database, params

SELECT Queries

Alt (BLOCKIERT)Neu (MCP-DB)
mysql -u root -p ki_dev \
  -e "SELECT * FROM tasks LIMIT 5"
db_select(
    "SELECT * FROM tasks LIMIT 5",
    database="ki_dev"
)

Schema-Inspektion

Datenbanken auflisten

Alt (BLOCKIERT)Neu (MCP-DB)
mysql -e "SHOW DATABASES"
db_databases()

Tabellen auflisten

Alt (BLOCKIERT)Neu (MCP-DB)
mysql -e "SHOW TABLES FROM ki_dev"
db_tables(database="ki_dev")

Tabellenstruktur anzeigen

Alt (BLOCKIERT)Neu (MCP-DB)
mysql -e "DESCRIBE ki_dev.tasks"
db_describe(
    table="tasks",
    database="ki_dev"
)
mysql -e "SHOW CREATE TABLE tasks"
db_describe(
    table="tasks",
    database="ki_dev",
    show_create=True
)

INSERT

Alt (BLOCKIERT)Neu (MCP-DB)
mysql -e "INSERT INTO tasks 
  (title, status) 
  VALUES ('Test', 'pending')"
db_insert(
    table="tasks",
    data={
        "title": "Test",
        "status": "pending"
    },
    database="ki_dev"
)

UPDATE

WHERE ist Pflicht! UPDATE ohne WHERE wird abgelehnt.
Alt (BLOCKIERT)Neu (MCP-DB)
mysql -e "UPDATE tasks 
  SET status='completed' 
  WHERE id=42"
db_update(
    table="tasks",
    data={"status": "completed"},
    where={"id": 42},
    database="ki_dev"
)

DELETE

WHERE ist Pflicht! Default LIMIT: 100 als Sicherheit.
Alt (BLOCKIERT)Neu (MCP-DB)
mysql -e "DELETE FROM mcp_log 
  WHERE status='error' 
  LIMIT 10"
db_delete(
    table="mcp_log",
    where={"status": "error"},
    database="ki_protokoll",
    limit=10
)

DDL (ALTER/CREATE/DROP)

Alt (BLOCKIERT)Neu (MCP-DB)
mysql -e "ALTER TABLE tasks 
  ADD COLUMN priority INT"
db_execute(
    statement="ALTER TABLE tasks ADD COLUMN priority INT",
    database="ki_dev"
)
mysql -e "CREATE INDEX idx_status 
  ON tasks(status)"
db_execute(
    statement="CREATE INDEX idx_status ON tasks(status)",
    database="ki_dev"
)
mysql -e "DROP TABLE temp_data"
db_execute(
    statement="DROP TABLE temp_data",
    database="ki_dev"
)

Häufige Anwendungsfälle

Task erstellen und Status ändern

# Task erstellen
result = db_insert(
    table="tasks",
    data={
        "title": "Neue Aufgabe",
        "description": "Beschreibung",
        "status": "pending",
        "type": "ai_task"
    },
    database="ki_dev"
)
task_id = result["inserted_id"]

# Status ändern
db_update(
    table="tasks",
    data={"status": "in_progress"},
    where={"id": task_id},
    database="ki_dev"
)

Spalte zu Tabelle hinzufügen

# Aktuelle Struktur prüfen
db_describe(table="chat_sessions", database="ki_content")

# Spalte hinzufügen
db_execute(
    statement="ALTER TABLE chat_sessions ADD COLUMN temperature FLOAT DEFAULT 0.7",
    database="ki_content"
)

# Verifizieren
db_describe(table="chat_sessions", database="ki_content")

Alte Logs aufräumen

# Anzahl prüfen
db_select(
    "SELECT COUNT(*) as cnt FROM mcp_log WHERE status='error'",
    database="ki_protokoll"
)

# Löschen (max 100 pro Aufruf)
db_delete(
    table="mcp_log",
    where={"status": "error"},
    database="ki_protokoll",
    limit=100
)

Datenbank-Übersicht

DatenbankZweckWichtige Tabellen
ki_devDevelopmenttasks, contracts, dokumentation, mcp_log
ki_contentContentchat_sessions, chat_messages, content, personas

Sicherheitsregeln

RegelToolVerhalten
WHERE Pflichtdb_update, db_deleteAbgelehnt ohne WHERE
Default LIMIT 100db_deleteMax 100 Zeilen pro Aufruf
Identifier-Validierungdb_insert, db_update, db_deleteRegex: ^[a-zA-Z0-9_]+$
DDL-Whitelistdb_executeNur ALTER/CREATE/DROP/TRUNCATE
DB-WhitelistAlleNur ki_dev, ki_content

Fehlerbehandlung

StatusBedeutungAktion
successOperation erfolgreich-
deniedValidierung fehlgeschlagenParameter prüfen
errorTechnischer FehlerSQL-Syntax, Connection prüfen

Verwandte Kapitel