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)
| Tool | Verwendung | Parameter |
| Lese-Operationen |
| db_select | SELECT Queries ausführen | query, database, max_rows, params |
| db_schema | Tabellen-Metadaten | database |
| db_stats | MCP-Log Einträge | limit |
| db_databases | Erlaubte DBs auflisten | - |
| db_tables | Tabellen auflisten | database, include_row_count |
| db_describe | Tabellenstruktur | table, database, show_create |
| Schreib-Operationen |
| db_insert | Datensatz einfügen | table, data, database |
| db_update | Datensätze ändern | table, data, where, database |
| db_delete | Datensätze löschen | table, where, database, limit |
| DDL-Operationen |
| db_execute | ALTER/CREATE/DROP/TRUNCATE | statement, 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
| Datenbank | Zweck | Wichtige Tabellen |
| ki_dev | Development | tasks, contracts, dokumentation, mcp_log |
| ki_content | Content | chat_sessions, chat_messages, content, personas |
Sicherheitsregeln
| Regel | Tool | Verhalten |
| WHERE Pflicht | db_update, db_delete | Abgelehnt ohne WHERE |
| Default LIMIT 100 | db_delete | Max 100 Zeilen pro Aufruf |
| Identifier-Validierung | db_insert, db_update, db_delete | Regex: ^[a-zA-Z0-9_]+$ |
| DDL-Whitelist | db_execute | Nur ALTER/CREATE/DROP/TRUNCATE |
| DB-Whitelist | Alle | Nur ki_dev, ki_content |
Fehlerbehandlung
| Status | Bedeutung | Aktion |
| success | Operation erfolgreich | - |
| denied | Validierung fehlgeschlagen | Parameter prüfen |
| error | Technischer Fehler | SQL-Syntax, Connection prüfen |
Verwandte Kapitel