Dokumentation » MCP » MCP-Code
MCP-Code
Erstellt: 2025-12-27 | Aktualisiert: 2025-12-31
MCP-Server für statische Code-Analyse. Analysiert PHP-Klassen, Dependencies und ermöglicht Impact-Analysen vor Refactorings.
| Pfad | /var/www/mcp-servers/mcp-code/ |
| Datenbank | ki_dev (code_files, code_classes, code_dependencies) |
| Projekt | /var/www/dev.campus.systemische-tools.de/ |
Tools
| Tool | Beschreibung |
code_search(query) |
Sucht Klassen/Interfaces/Traits nach Name |
code_class(fqcn) |
Holt Klassen-Details per FQCN inkl. Methoden und Dependencies |
code_dependencies(fqcn) |
Zeigt was diese Klasse nutzt (outgoing) |
code_dependents(fqcn) |
Zeigt wer diese Klasse nutzt (incoming) - Impact-Analyse |
code_impact(fqcn) |
Vollständige Impact-Analyse vor Änderungen |
code_stats() |
Projekt-Statistiken |
Anwendungsfälle
1. Klasse finden
code_search("Controller")
→ Findet alle Controller-Klassen
2. Klassen-Details abrufen
code_class("Controller\\ChatController")
→ Zeigt Methoden, Namespace, File-Path, Dependencies
3. Impact vor Refactoring prüfen
code_impact("Infrastructure\\Persistence\\ChatRepository")
→ Zeigt alle Klassen die betroffen wären
4. Dependency-Graph verstehen
code_dependencies("UseCases\\Chat\\SendMessageUseCase")
→ Zeigt: extends, implements, constructor-injection, use-statements
Dependency-Typen
| Typ | Bedeutung |
| extends | Klasse erbt von... |
| implements | Klasse implementiert Interface... |
| constructor | Constructor-Injection |
| use | Use-Statement (Import) |
| trait | Trait wird verwendet |
Best Practices
- Vor Refactoring: Immer
code_impact() ausführen
- Interface ändern:
code_dependents() für alle Implementierungen
- Neue Klasse:
code_search() um Namenskonflikte zu vermeiden
Datenbank-Tabellen
ki_dev.code_files
| Feld | Typ | Null | Beschreibung |
| id | int | NO | Primärschlüssel |
| file_path | varchar | NO | Dateipfad |
| file_hash | varchar | YES | Hash für Change-Detection |
| last_scanned | datetime | YES | Letzter Scan |
| is_valid | tinyint(1) | YES | Gültige PHP-Datei |
| created_at | datetime | YES | Erstellungsdatum |
| updated_at | datetime | YES | Aktualisiert |
ki_dev.code_classes
| Feld | Typ | Null | Beschreibung |
| id | int | NO | Primärschlüssel |
| file_id | int | NO | FK zu code_files |
| fqcn | varchar | NO | Fully Qualified Class Name |
| class_name | varchar | NO | Klassenname |
| namespace | varchar | YES | Namespace |
| class_type | enum | NO | class, interface, trait |
| created_at | datetime | NO | Erstellungsdatum |
ki_dev.code_dependencies
| Feld | Typ | Null | Beschreibung |
| id | int | NO | Primärschlüssel |
| analysis_id | int | NO | FK zu code_classes |
| dependency_type | enum | NO | use, extends, implements, trait, constructor |
| target_fqcn | varchar | NO | Ziel-FQCN |
| target_short | varchar | YES | Kurzname |
| line_number | int | YES | Zeilennummer im Code |
| created_at | datetime | YES | Erstellungsdatum |
]]>