{
"event": "PreToolUse",
"tool_name": "mcp__mcp-docs__docs_update",
"tool_input": {
"id": 142,
"content": "<![CDATA[<nav class=\"breadcrumb\">\n <a href=\"\/docs\">Dokumentation<\/a> » <a href=\"\/docs\/mcp\">MCP<\/a> » MCP-Code\n<\/nav>\n\n<h1>MCP-Code<\/h1>\n<p class=\"doc-meta\"><strong>Erstellt:<\/strong> 2025-12-27 | <strong>Aktualisiert:<\/strong> 2025-12-31<\/p>\n\n<p>MCP-Server für statische Code-Analyse. Analysiert PHP-Klassen, Dependencies und ermöglicht Impact-Analysen vor Refactorings.<\/p>\n\n<table>\n <tr><th>Pfad<\/th><td><code>\/var\/www\/mcp-servers\/mcp-code\/<\/code><\/td><\/tr>\n <tr><th>Datenbank<\/th><td>ki_dev (code_files, code_classes, code_dependencies)<\/td><\/tr>\n <tr><th>Projekt<\/th><td>\/var\/www\/dev.campus.systemische-tools.de\/<\/td><\/tr>\n<\/table>\n\n<h2>Tools<\/h2>\n\n<table>\n <thead>\n <tr><th>Tool<\/th><th>Beschreibung<\/th><\/tr>\n <\/thead>\n <tbody>\n <tr>\n <td><code>code_search(query)<\/code><\/td>\n <td>Sucht Klassen\/Interfaces\/Traits nach Name<\/td>\n <\/tr>\n <tr>\n <td><code>code_class(fqcn)<\/code><\/td>\n <td>Holt Klassen-Details per FQCN inkl. Methoden und Dependencies<\/td>\n <\/tr>\n <tr>\n <td><code>code_dependencies(fqcn)<\/code><\/td>\n <td>Zeigt was diese Klasse nutzt (outgoing)<\/td>\n <\/tr>\n <tr>\n <td><code>code_dependents(fqcn)<\/code><\/td>\n <td>Zeigt wer diese Klasse nutzt (incoming) - Impact-Analyse<\/td>\n <\/tr>\n <tr>\n <td><code>code_impact(fqcn)<\/code><\/td>\n <td>Vollständige Impact-Analyse vor Änderungen<\/td>\n <\/tr>\n <tr>\n <td><code>code_stats()<\/code><\/td>\n <td>Projekt-Statistiken<\/td>\n <\/tr>\n <\/tbody>\n<\/table>\n\n<h2>Anwendungsfälle<\/h2>\n\n<h3>1. Klasse finden<\/h3>\n<pre><code>code_search(\"Controller\")\n→ Findet alle Controller-Klassen<\/code><\/pre>\n\n<h3>2. Klassen-Details abrufen<\/h3>\n<pre><code>code_class(\"Controller\\\\ChatController\")\n→ Zeigt Methoden, Namespace, File-Path, Dependencies<\/code><\/pre>\n\n<h3>3. Impact vor Refactoring prüfen<\/h3>\n<pre><code>code_impact(\"Infrastructure\\\\Persistence\\\\ChatRepository\")\n→ Zeigt alle Klassen die betroffen wären<\/code><\/pre>\n\n<h3>4. Dependency-Graph verstehen<\/h3>\n<pre><code>code_dependencies(\"UseCases\\\\Chat\\\\SendMessageUseCase\")\n→ Zeigt: extends, implements, constructor-injection, use-statements<\/code><\/pre>\n\n<h2>Dependency-Typen<\/h2>\n\n<table>\n <tr><th>Typ<\/th><th>Bedeutung<\/th><\/tr>\n <tr><td>extends<\/td><td>Klasse erbt von...<\/td><\/tr>\n <tr><td>implements<\/td><td>Klasse implementiert Interface...<\/td><\/tr>\n <tr><td>constructor<\/td><td>Constructor-Injection<\/td><\/tr>\n <tr><td>use<\/td><td>Use-Statement (Import)<\/td><\/tr>\n <tr><td>trait<\/td><td>Trait wird verwendet<\/td><\/tr>\n<\/table>\n\n<h2>Best Practices<\/h2>\n\n<ul>\n <li><strong>Vor Refactoring:<\/strong> Immer <code>code_impact()<\/code> ausführen<\/li>\n <li><strong>Interface ändern:<\/strong> <code>code_dependents()<\/code> für alle Implementierungen<\/li>\n <li><strong>Neue Klasse:<\/strong> <code>code_search()<\/code> um Namenskonflikte zu vermeiden<\/li>\n<\/ul>\n\n<h2>Datenbank-Tabellen<\/h2>\n\n<h3>ki_dev.code_files<\/h3>\n<table>\n <tr><th>Feld<\/th><th>Typ<\/th><th>Null<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>id<\/td><td>int<\/td><td>NO<\/td><td>Primärschlüssel<\/td><\/tr>\n <tr><td>file_path<\/td><td>varchar<\/td><td>NO<\/td><td>Dateipfad<\/td><\/tr>\n <tr><td>file_hash<\/td><td>varchar<\/td><td>YES<\/td><td>Hash für Change-Detection<\/td><\/tr>\n <tr><td>last_scanned<\/td><td>datetime<\/td><td>YES<\/td><td>Letzter Scan<\/td><\/tr>\n <tr><td>is_valid<\/td><td>tinyint(1)<\/td><td>YES<\/td><td>Gültige PHP-Datei<\/td><\/tr>\n <tr><td>created_at<\/td><td>datetime<\/td><td>YES<\/td><td>Erstellungsdatum<\/td><\/tr>\n <tr><td>updated_at<\/td><td>datetime<\/td><td>YES<\/td><td>Aktualisiert<\/td><\/tr>\n<\/table>\n\n<h3>ki_dev.code_classes<\/h3>\n<table>\n <tr><th>Feld<\/th><th>Typ<\/th><th>Null<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>id<\/td><td>int<\/td><td>NO<\/td><td>Primärschlüssel<\/td><\/tr>\n <tr><td>file_id<\/td><td>int<\/td><td>NO<\/td><td>FK zu code_files<\/td><\/tr>\n <tr><td>fqcn<\/td><td>varchar<\/td><td>NO<\/td><td>Fully Qualified Class Name<\/td><\/tr>\n <tr><td>class_name<\/td><td>varchar<\/td><td>NO<\/td><td>Klassenname<\/td><\/tr>\n <tr><td>namespace<\/td><td>varchar<\/td><td>YES<\/td><td>Namespace<\/td><\/tr>\n <tr><td>class_type<\/td><td>enum<\/td><td>NO<\/td><td>class, interface, trait<\/td><\/tr>\n <tr><td>created_at<\/td><td>datetime<\/td><td>NO<\/td><td>Erstellungsdatum<\/td><\/tr>\n<\/table>\n\n<h3>ki_dev.code_dependencies<\/h3>\n<table>\n <tr><th>Feld<\/th><th>Typ<\/th><th>Null<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>id<\/td><td>int<\/td><td>NO<\/td><td>Primärschlüssel<\/td><\/tr>\n <tr><td>analysis_id<\/td><td>int<\/td><td>NO<\/td><td>FK zu code_classes<\/td><\/tr>\n <tr><td>dependency_type<\/td><td>enum<\/td><td>NO<\/td><td>use, extends, implements, trait, constructor<\/td><\/tr>\n <tr><td>target_fqcn<\/td><td>varchar<\/td><td>NO<\/td><td>Ziel-FQCN<\/td><\/tr>\n <tr><td>target_short<\/td><td>varchar<\/td><td>YES<\/td><td>Kurzname<\/td><\/tr>\n <tr><td>line_number<\/td><td>int<\/td><td>YES<\/td><td>Zeilennummer im Code<\/td><\/tr>\n <tr><td>created_at<\/td><td>datetime<\/td><td>YES<\/td><td>Erstellungsdatum<\/td><\/tr>\n<\/table>]]>"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"doc\": {\n \"id\": 142,\n \"parent_id\": 35,\n \"slug\": \"mcp-code\",\n \"path\": \"\/mcp\/mcp-code\",\n \"title\": \"MCP-Code\",\n \"description\": \"MCP-Server für Code-Analyse: Klassen, Dependencies, Impact-Analyse\",\n \"content\": \"<![CDATA[<nav class=\\\"breadcrumb\\\">\\n <a href=\\\"\/docs\\\">Dokumentation<\/a> » <a href=\\\"\/docs\/mcp\\\">MCP<\/a> » MCP-Code\\n<\/nav>\\n\\n<h1>MCP-Code<\/h1>\\n<p class=\\\"doc-meta\\\"><strong>Erstellt:<\/strong> 2025-12-27 | <strong>Aktualisiert:<\/strong> 2025-12-31<\/p>\\n\\n<p>MCP-Server für statische Code-Analyse. Analysiert PHP-Klassen, Dependencies und ermöglicht Impact-Analysen vor Refactorings.<\/p>\\n\\n<table>\\n <tr><th>Pfad<\/th><td><code>\/var\/www\/mcp-servers\/mcp-code\/<\/code><\/td><\/tr>\\n <tr><th>Datenbank<\/th><td>ki_dev (code_files, code_classes, code_dependencies)<\/td><\/tr>\\n <tr><th>Projekt<\/th><td>\/var\/www\/dev.campus.systemische-tools.de\/<\/td><\/tr>\\n<\/table>\\n\\n<h2>Tools<\/h2>\\n\\n<table>\\n <thead>\\n <tr><th>Tool<\/th><th>Beschreibung<\/th><\/tr>\\n <\/thead>\\n <tbody>\\n <tr>\\n <td><code>code_search(query)<\/code><\/td>\\n <td>Sucht Klassen\/Interfaces\/Traits nach Name<\/td>\\n <\/tr>\\n <tr>\\n <td><code>code_class(fqcn)<\/code><\/td>\\n <td>Holt Klassen-Details per FQCN inkl. Methoden und Dependencies<\/td>\\n <\/tr>\\n <tr>\\n <td><code>code_dependencies(fqcn)<\/code><\/td>\\n <td>Zeigt was diese Klasse nutzt (outgoing)<\/td>\\n <\/tr>\\n <tr>\\n <td><code>code_dependents(fqcn)<\/code><\/td>\\n <td>Zeigt wer diese Klasse nutzt (incoming) - Impact-Analyse<\/td>\\n <\/tr>\\n <tr>\\n <td><code>code_impact(fqcn)<\/code><\/td>\\n <td>Vollständige Impact-Analyse vor Änderungen<\/td>\\n <\/tr>\\n <tr>\\n <td><code>code_stats()<\/code><\/td>\\n <td>Projekt-Statistiken<\/td>\\n <\/tr>\\n <\/tbody>\\n<\/table>\\n\\n<h2>Anwendungsfälle<\/h2>\\n\\n<h3>1. Klasse finden<\/h3>\\n<pre><code>code_search(\\\"Controller\\\")\\n→ Findet alle Controller-Klassen<\/code><\/pre>\\n\\n<h3>2. Klassen-Details abrufen<\/h3>\\n<pre><code>code_class(\\\"Controller\\\\\\\\ChatController\\\")\\n→ Zeigt Methoden, Namespace, File-Path, Dependencies<\/code><\/pre>\\n\\n<h3>3. Impact vor Refactoring prüfen<\/h3>\\n<pre><code>code_impact(\\\"Infrastructure\\\\\\\\Persistence\\\\\\\\ChatRepository\\\")\\n→ Zeigt alle Klassen die betroffen wären<\/code><\/pre>\\n\\n<h3>4. Dependency-Graph verstehen<\/h3>\\n<pre><code>code_dependencies(\\\"UseCases\\\\\\\\Chat\\\\\\\\SendMessageUseCase\\\")\\n→ Zeigt: extends, implements, constructor-injection, use-statements<\/code><\/pre>\\n\\n<h2>Dependency-Typen<\/h2>\\n\\n<table>\\n <tr><th>Typ<\/th><th>Bedeutung<\/th><\/tr>\\n <tr><td>extends<\/td><td>Klasse erbt von...<\/td><\/tr>\\n <tr><td>implements<\/td><td>Klasse implementiert Interface...<\/td><\/tr>\\n <tr><td>constructor<\/td><td>Constructor-Injection<\/td><\/tr>\\n <tr><td>use<\/td><td>Use-Statement (Import)<\/td><\/tr>\\n <tr><td>trait<\/td><td>Trait wird verwendet<\/td><\/tr>\\n<\/table>\\n\\n<h2>Best Practices<\/h2>\\n\\n<ul>\\n <li><strong>Vor Refactoring:<\/strong> Immer <code>code_impact()<\/code> ausführen<\/li>\\n <li><strong>Interface ändern:<\/strong> <code>code_dependents()<\/code> für alle Implementierungen<\/li>\\n <li><strong>Neue Klasse:<\/strong> <code>code_search()<\/code> um Namenskonflikte zu vermeiden<\/li>\\n<\/ul>\\n\\n<h2>Datenbank-Tabellen<\/h2>\\n\\n<h3>ki_dev.code_files<\/h3>\\n<table>\\n <tr><th>Feld<\/th><th>Typ<\/th><th>Null<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>id<\/td><td>int<\/td><td>NO<\/td><td>Primärschlüssel<\/td><\/tr>\\n <tr><td>file_path<\/td><td>varchar<\/td><td>NO<\/td><td>Dateipfad<\/td><\/tr>\\n <tr><td>file_hash<\/td><td>varchar<\/td><td>YES<\/td><td>Hash für Change-Detection<\/td><\/tr>\\n <tr><td>last_scanned<\/td><td>datetime<\/td><td>YES<\/td><td>Letzter Scan<\/td><\/tr>\\n <tr><td>is_valid<\/td><td>tinyint(1)<\/td><td>YES<\/td><td>Gültige PHP-Datei<\/td><\/tr>\\n <tr><td>created_at<\/td><td>datetime<\/td><td>YES<\/td><td>Erstellungsdatum<\/td><\/tr>\\n <tr><td>updated_at<\/td><td>datetime<\/td><td>YES<\/td><td>Aktualisiert<\/td><\/tr>\\n<\/table>\\n\\n<h3>ki_dev.code_classes<\/h3>\\n<table>\\n <tr><th>Feld<\/th><th>Typ<\/th><th>Null<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>id<\/td><td>int<\/td><td>NO<\/td><td>Primärschlüssel<\/td><\/tr>\\n <tr><td>file_id<\/td><td>int<\/td><td>NO<\/td><td>FK zu code_files<\/td><\/tr>\\n <tr><td>fqcn<\/td><td>varchar<\/td><td>NO<\/td><td>Fully Qualified Class Name<\/td><\/tr>\\n <tr><td>class_name<\/td><td>varchar<\/td><td>NO<\/td><td>Klassenname<\/td><\/tr>\\n <tr><td>namespace<\/td><td>varchar<\/td><td>YES<\/td><td>Namespace<\/td><\/tr>\\n <tr><td>class_type<\/td><td>enum<\/td><td>NO<\/td><td>class, interface, trait<\/td><\/tr>\\n <tr><td>created_at<\/td><td>datetime<\/td><td>NO<\/td><td>Erstellungsdatum<\/td><\/tr>\\n<\/table>\\n\\n<h3>ki_dev.code_dependencies<\/h3>\\n<table>\\n <tr><th>Feld<\/th><th>Typ<\/th><th>Null<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>id<\/td><td>int<\/td><td>NO<\/td><td>Primärschlüssel<\/td><\/tr>\\n <tr><td>analysis_id<\/td><td>int<\/td><td>NO<\/td><td>FK zu code_classes<\/td><\/tr>\\n <tr><td>dependency_type<\/td><td>enum<\/td><td>NO<\/td><td>use, extends, implements, trait, constructor<\/td><\/tr>\\n <tr><td>target_fqcn<\/td><td>varchar<\/td><td>NO<\/td><td>Ziel-FQCN<\/td><\/tr>\\n <tr><td>target_short<\/td><td>varchar<\/td><td>YES<\/td><td>Kurzname<\/td><\/tr>\\n <tr><td>line_number<\/td><td>int<\/td><td>YES<\/td><td>Zeilennummer im Code<\/td><\/tr>\\n <tr><td>created_at<\/td><td>datetime<\/td><td>YES<\/td><td>Erstellungsdatum<\/td><\/tr>\\n<\/table>]]>\",\n \"status\": \"published\",\n \"sort_order\": 5,\n \"depth\": 1,\n \"created_at\": \"2025-12-27T10:30:06\",\n \"updated_at\": \"2025-12-31T04:21:43\"\n },\n \"message\": \"Document #142 updated\"\n}"
}
]
}