{
"event": "PreToolUse",
"tool_name": "mcp__mcp-docs__docs_get",
"tool_input": {
"path": "\/mcp\/mcp-db\/mcp-db-installation"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"doc\": {\n \"id\": 38,\n \"parent_id\": 36,\n \"slug\": \"mcp-db-installation\",\n \"path\": \"\/mcp\/mcp-db\/mcp-db-installation\",\n \"title\": \"Installation\",\n \"description\": \"Setup, Registrierung und Test des MCP-DB Servers.\",\n \"content\": \"<nav class=\\\"breadcrumb\\\">\\n <a href=\\\"\/docs\\\">Dokumentation<\/a> » <a href=\\\"\/docs\/mcp\/mcp-db\\\">MCP-DB<\/a> » Installation\\n<\/nav>\\n\\n<h1>MCP-DB Installation<\/h1>\\n<p class=\\\"doc-meta\\\"><strong>Erstellt:<\/strong> 2025-12-20 | <strong>Aktualisiert:<\/strong> 2025-12-20<\/p>\\n\\n<p>Setup, Registrierung und Test des MCP-DB Servers.<\/p>\\n\\n<h2>Voraussetzungen<\/h2>\\n<ul>\\n <li>Python 3.10+<\/li>\\n <li>MariaDB\/MySQL<\/li>\\n <li>Claude Code CLI<\/li>\\n<\/ul>\\n\\n<h2>1. Verzeichnis erstellen<\/h2>\\n<pre><code>mkdir -p \/opt\/mcp-servers\/mcp-db\\ncd \/opt\/mcp-servers\/mcp-db<\/code><\/pre>\\n\\n<h2>2. Virtual Environment<\/h2>\\n<pre><code>python3 -m venv venv\\nsource venv\/bin\/activate\\npip install mcp[cli] mysql-connector-python python-dotenv<\/code><\/pre>\\n\\n<h2>3. Dateien erstellen<\/h2>\\n<p>Siehe <a href=\\\"\/docs\/mcp\/mcp-db-architektur\\\">Architektur<\/a> für vollständige Verzeichnisstruktur.<\/p>\\n\\n<pre><code># Struktur\\n\/opt\/mcp-servers\/mcp-db\/\\n├── server.py\\n├── config.py\\n├── .env\\n├── .env.example\\n├── requirements.txt\\n├── domain\/\\n├── validators\/\\n├── infrastructure\/\\n└── tools\/<\/code><\/pre>\\n\\n<h2>4. .env konfigurieren<\/h2>\\n<pre><code># .env erstellen\\ncp .env.example .env\\n\\n# Bearbeiten\\nnano .env\\n\\n# Berechtigungen setzen\\nchmod 600 .env<\/code><\/pre>\\n\\n<h3>.env Inhalt<\/h3>\\n<pre><code># Datenbank für Queries (mcp_readonly)\\nDB_HOST=localhost\\nDB_USER=mcp_readonly\\nDB_PASSWORD=SECURE_PASSWORD_HERE\\n\\n# Datenbank für Logging (mcp_logger)\\nLOG_DB_HOST=localhost\\nLOG_DB_NAME=ki_protokoll\\nLOG_DB_USER=mcp_logger\\nLOG_DB_PASSWORD=DIFFERENT_SECURE_PASSWORD_HERE<\/code><\/pre>\\n\\n<h2>5. Datenbank vorbereiten<\/h2>\\n\\n<h3>mcp_log Tabelle<\/h3>\\n<pre><code>CREATE TABLE IF NOT EXISTS mcp_log (\\n id INT AUTO_INCREMENT PRIMARY KEY,\\n timestamp DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,\\n client_name VARCHAR(50) NOT NULL DEFAULT 'mcp-db',\\n request TEXT,\\n status ENUM('success', 'error', 'denied') NOT NULL,\\n duration_ms INT DEFAULT 0,\\n error_message TEXT,\\n INDEX idx_timestamp (timestamp),\\n INDEX idx_status (status)\\n) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;<\/code><\/pre>\\n\\n<h3>DB-User erstellen<\/h3>\\n<pre><code>-- mcp_readonly\\nCREATE USER IF NOT EXISTS 'mcp_readonly'@'localhost'\\nIDENTIFIED BY 'SECURE_PASSWORD_HERE';\\n\\nGRANT SELECT ON ki_protokoll.mcp_log TO 'mcp_readonly'@'localhost';\\nGRANT SELECT ON ki_protokoll.ki_eintraege TO 'mcp_readonly'@'localhost';\\nGRANT SELECT ON ki_protokoll.ki_kategorien TO 'mcp_readonly'@'localhost';\\nGRANT SELECT ON ki_protokoll.ki_tags TO 'mcp_readonly'@'localhost';\\nGRANT SELECT ON ki_protokoll.ki_settings TO 'mcp_readonly'@'localhost';\\nGRANT SELECT ON information_schema.TABLES TO 'mcp_readonly'@'localhost';\\nGRANT SELECT ON ki_system.* TO 'mcp_readonly'@'localhost';\\n\\n-- mcp_logger\\nCREATE USER IF NOT EXISTS 'mcp_logger'@'localhost'\\nIDENTIFIED BY 'DIFFERENT_SECURE_PASSWORD_HERE';\\n\\nGRANT INSERT ON ki_protokoll.mcp_log TO 'mcp_logger'@'localhost';\\n\\nFLUSH PRIVILEGES;<\/code><\/pre>\\n\\n<h2>6. Server testen<\/h2>\\n<pre><code># Manuell starten\\ncd \/opt\/mcp-servers\/mcp-db\\nsource venv\/bin\/activate\\npython server.py\\n\\n# Bei Erfolg: Server wartet auf stdio Input\\n# Strg+C zum Beenden<\/code><\/pre>\\n\\n<h2>7. In Claude Code registrieren<\/h2>\\n\\n<h3>User-Scope (Global)<\/h3>\\n<p>Registrierung für alle Projekte des Benutzers:<\/p>\\n<pre><code>claude mcp add mcp-db \\\\\\n --transport stdio \\\\\\n -- \/opt\/mcp-servers\/mcp-db\/venv\/bin\/python \\\\\\n \/opt\/mcp-servers\/mcp-db\/server.py<\/code><\/pre>\\n\\n<h3>Projekt-Scope (Lokal)<\/h3>\\n<p>Registrierung nur für ein bestimmtes Projekt (z.B. \/var\/www):<\/p>\\n<pre><code>cd \/var\/www\\nclaude mcp add mcp-db --transport stdio \\\\\\n -- \/opt\/mcp-servers\/mcp-db\/venv\/bin\/python \\\\\\n \/opt\/mcp-servers\/mcp-db\/server.py<\/code><\/pre>\\n\\n<p><strong>Hinweis:<\/strong> Im Projekt-Scope wird die Konfiguration in <code>\/root\/.claude.json<\/code> unter dem entsprechenden Projekt gespeichert, nicht in <code>.claude\/settings.json<\/code> im Projektverzeichnis.<\/p>\\n\\n<h2>8. Registrierung prüfen<\/h2>\\n<pre><code># Liste aller MCP Server\\nclaude mcp list\\n\\n# Details zu mcp-db\\nclaude mcp get mcp-db\\n\\n# In Claude Code Session\\n\/mcp<\/code><\/pre>\\n\\n<h2>9. Tools testen<\/h2>\\n<pre><code># In Claude Code:\\n> db_select(\\\"SELECT * FROM mcp_log LIMIT 5\\\")\\n> db_schema()\\n> db_stats(limit=10)<\/code><\/pre>\\n\\n<h2>Troubleshooting<\/h2>\\n\\n<h3>Server startet nicht<\/h3>\\n<pre><code># Log prüfen\\ntail -f \/tmp\/mcp_db_server.log\\n\\n# Dependencies prüfen\\npip list | grep mcp\\n\\n# Python Version\\npython --version # Muss 3.10+ sein<\/code><\/pre>\\n\\n<h3>Verbindungsfehler<\/h3>\\n<pre><code># DB-Verbindung mit MCP-DB testen (empfohlen)\\ndb_select(\\\"SELECT 1\\\")\\n\\n# Alternativ: Direkter Test (nur für Debugging)\\nmysql -u mcp_readonly -p -e \\\"SELECT 1\\\"\\n\\n# .env prüfen\\ncat .env | grep -v PASSWORD<\/code><\/pre>\\n\\n<h3>Permission Denied<\/h3>\\n<pre><code># Berechtigungen prüfen\\nls -la .env # Muss 600 sein\\n\\n# User prüfen\\nmysql -u mcp_readonly -p -e \\\"SHOW GRANTS\\\"<\/code><\/pre>\\n\\n<h2>Systemd Service (Optional)<\/h2>\\n<p>MCP-DB läuft normalerweise <strong>on-demand<\/strong> (von Claude Code gestartet). Für Monitoring oder Debugging kann ein Systemd Service verwendet werden.<\/p>\\n\\n<h3>Service installiert<\/h3>\\n<p>Der Service ist bereits unter <code>\/etc\/systemd\/system\/mcp-db.service<\/code> installiert und aktiviert.<\/p>\\n\\n<h3>Verwendung<\/h3>\\n<pre><code># Status prüfen (zeigt on-demand oder systemd)\\n\/opt\/scripts\/mcp-db-status.sh\\n\\n# Service manuell starten (nicht empfohlen)\\nsystemctl start mcp-db\\n\\n# Service stoppen\\nsystemctl stop mcp-db\\n\\n# Logs ansehen\\njournalctl -u mcp-db -f<\/code><\/pre>\\n\\n<h3>Wichtig<\/h3>\\n<ul>\\n <li><strong>Empfohlen:<\/strong> On-demand Betrieb (Claude startet MCP automatisch)<\/li>\\n <li><strong>Service nur für:<\/strong> Debugging, permanente Logs, externe Monitoring<\/li>\\n <li>Service läuft nicht standardmäßig, nur nach <code>systemctl start mcp-db<\/code><\/li>\\n<\/ul>\\n\\n<h2>Updates<\/h2>\\n<pre><code># Dependencies aktualisieren\\ncd \/opt\/mcp-servers\/mcp-db\\nsource venv\/bin\/activate\\npip install --upgrade mcp[cli] mysql-connector-python\\n\\n# Nach Updates: Service neu laden (falls aktiv)\\nsystemctl daemon-reload\\nsystemctl restart mcp-db # nur falls Service läuft<\/code><\/pre>\\n\\n<h2>Deinstallation<\/h2>\\n<pre><code># Aus Claude Code entfernen\\nclaude mcp remove mcp-db\\n\\n# Verzeichnis löschen (optional)\\nrm -rf \/opt\/mcp-servers\/mcp-db\\n\\n# DB-User löschen (optional)\\nDROP USER 'mcp_readonly'@'localhost';\\nDROP USER 'mcp_logger'@'localhost';<\/code><\/pre>\\n\\n<h2>Verwandte Kapitel<\/h2>\\n<ul>\\n <li><a href=\\\"\/docs\/mcp\/mcp-db\\\">Übersicht<\/a> - Hauptseite<\/li>\\n <li><a href=\\\"\/docs\/mcp\/mcp-db-security\\\">Sicherheit<\/a> - DB-User Details<\/li>\\n <li><a href=\\\"\/docs\/mcp\/mcp-db-config\\\">Konfiguration<\/a> - .env Details<\/li>\\n<\/ul>\",\n \"status\": \"published\",\n \"sort_order\": 2,\n \"depth\": 2,\n \"created_at\": \"2025-12-20T11:13:58\",\n \"updated_at\": \"2025-12-27T15:58:19\"\n }\n}"
}
]
}