{
"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\": \"<h2>MCP-Code<\/h2>\\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<h3>Tools<\/h3>\\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<h3>Anwendungsfälle<\/h3>\\n\\n<h4>1. Klasse finden<\/h4>\\n<pre><code>code_search(\\\"Controller\\\")\\n→ Findet alle Controller-Klassen<\/code><\/pre>\\n\\n<h4>2. Klassen-Details abrufen<\/h4>\\n<pre><code>code_class(\\\"Controller\\\\\\\\ChatController\\\")\\n→ Zeigt Methoden, Namespace, File-Path, Dependencies<\/code><\/pre>\\n\\n<h4>3. Impact vor Refactoring prüfen<\/h4>\\n<pre><code>code_impact(\\\"Infrastructure\\\\\\\\Persistence\\\\\\\\ChatRepository\\\")\\n→ Zeigt alle Klassen die betroffen wären<\/code><\/pre>\\n\\n<h4>4. Dependency-Graph verstehen<\/h4>\\n<pre><code>code_dependencies(\\\"UseCases\\\\\\\\Chat\\\\\\\\SendMessageUseCase\\\")\\n→ Zeigt: extends, implements, constructor-injection, use-statements<\/code><\/pre>\\n\\n<h3>Dependency-Typen<\/h3>\\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<h3>Best Practices<\/h3>\\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<h3>Datenbank-Tabellen<\/h3>\\n\\n<pre><code>ki_dev.code_files\\n├── id, file_path, file_hash\\n├── last_scanned, is_valid\\n└── created_at, updated_at\\n\\nki_dev.code_classes\\n├── id, file_id, fqcn\\n├── class_name, namespace\\n├── class_type (class, interface, trait)\\n└── created_at\\n\\nki_dev.code_dependencies\\n├── id, source_class_id, target_fqcn\\n├── dependency_type\\n└── created_at<\/code><\/pre>\",\n \"status\": \"published\",\n \"sort_order\": 5,\n \"depth\": 1,\n \"created_at\": \"2025-12-27T10:30:06\",\n \"updated_at\": \"2025-12-27T15:18:42\"\n }\n}"
}
]
}