# MCP Integration

**Model Context Protocol (MCP) Server Integration** für das Custom PHP Framework.

## Server Status

**✅ FULLY FUNCTIONAL**
- Server getestet und funktionsfähig mit JSON-RPC Protokoll
- Tools und Ressourcen bereit für AI-Integration
- Automatische Erkennung von Framework-Komponenten
- Sichere, sandbox-basierte Dateisystem-Zugriffe

## Quick Access Commands

```bash
# MCP Server starten
docker exec -i php php console.php mcp:server

# MCP Server testen
echo '{"jsonrpc": "2.0", "method": "initialize", "params": {}}' | docker exec -i php php console.php mcp:server
```

## Verfügbare MCP Tools

### Framework Analysis Tools
| Tool | Beschreibung | Verwendung |
|------|--------------|------------|
| `analyze_routes` | Alle registrierten Routen abrufen | Framework-Routing-Analyse |
| `analyze_container_bindings` | DI Container Bindings analysieren | Dependency Injection Debugging |
| `discover_attributes` | Attribute nach Typ entdecken | Framework-Pattern-Erkennung |
| `framework_health_check` | Health Check der Framework-Komponenten | System-Status-Überprüfung |
| `list_framework_modules` | Alle Framework-Module auflisten | Architektur-Übersicht |

### Codebase Analysis Tools (NEW ✨)
| Tool | Beschreibung | Verwendung |
|------|--------------|------------|
| `analyze_codebase` | Intelligente Codebase-Analyse mit semantischer Suche | Umfassende Code-Analyse |
| `find_controllers` | Alle Controller-Klassen finden | Controller-Discovery |
| `find_services` | Alle Services, Manager, Repositories finden | Service-Layer-Analyse |
| `find_value_objects` | Alle Value Object Klassen finden | Domain-Model-Analyse |
| `find_initializers` | Alle DI Container Initializers finden | Dependency-Injection-Analyse |
| `find_mcp_tools` | Alle MCP Tool Methoden finden | MCP-Integration-Übersicht |
| `find_commands` | Alle Console Commands finden | CLI-Kommando-Analyse |
| `search_by_pattern` | Suche nach Klassennamen-Pattern | Pattern-basierte Suche |

### File System Tools
| Tool | Beschreibung | Verwendung |
|------|--------------|------------|
| `list_directory` | Verzeichnisinhalte auflisten (projekt-beschränkt) | Dateisystem-Navigation |
| `read_file` | Dateiinhalte mit Zeilenlimits lesen | Code-Analyse |
| `find_files` | Dateien nach Pattern finden | Pattern-basierte Suche |

### Git Version Control Tools (NEW ✨)
| Tool | Beschreibung | Verwendung |
|------|--------------|------------|
| `git_status` | Git Status mit staged/unstaged/untracked Änderungen | Änderungs-Übersicht |
| `git_diff` | Diff für staged oder unstaged Änderungen | Code-Review |
| `git_add` | Dateien für Commit stagen | Staging-Operationen |
| `git_commit` | Commit mit Message erstellen | Commit-Erstellung |
| `git_generate_commit_message` | AI-gestützte Commit-Message-Generierung | Intelligente Commits |
| `git_log` | Commit-Historie abrufen | Verlaufs-Analyse |
| `git_branch_info` | Branch-Informationen | Branch-Management |
| `git_changed_files` | Liste geänderter Dateien mit Typen | Änderungs-Tracking |
| `git_stash` | Änderungen stashen | Temporäre Speicherung |
| `git_stash_list` | Stash-Liste anzeigen | Stash-Verwaltung |

## MCP Resources

- `framework://config`: Framework-Konfiguration und Umgebung

## Claude Desktop Konfiguration

```json
{
  "mcpServers": {
    "custom-php-framework": {
      "command": "docker",
      "args": ["exec", "-i", "php", "php", "console.php", "mcp:server"],
      "cwd": "/home/michael/dev/michaelschiemer"
    }
  }
}
```

## Framework-Analyse-Capabilities

### Core Framework Analysis
- **Route Discovery**: Automatische Erkennung aller registrierten Routen
- **Container Binding Inspection**: Analyse der Dependency Injection Bindings
- **Modul- und Komponenten-Discovery**: Erkennung aller Framework-Module
- **Health Monitoring**: Überwachung des Framework-Status
- **File System Operations**: Projekt-beschränkte Dateisystem-Operationen

### Intelligente Codebase-Analyse (NEW ✨)
- **Semantic Search**: AST-basierte Code-Analyse statt nur Text-Pattern-Matching
- **Attribute Discovery**: Finde Klassen basierend auf Attributen (#[Route], #[McpTool], etc.)
- **Interface Implementation Search**: Finde alle Implementierungen eines Interfaces
- **Pattern-Based Class Discovery**: Wildcard-Patterns wie `*Controller`, `*Service`
- **Component Categorization**: Automatische Kategorisierung (Controllers, Services, VOs, etc.)
- **Performance Optimiert**: Nutzt Framework's Discovery System und Caching
- **Batch Operations**: Mehrere Suchtypen in einer Query kombinierbar

## Verwendungsbeispiele

### Codebase Analysis Queries

```bash
# Find all controllers and their routes
find_controllers

# Find all services (Services, Managers, Repositories)
find_services

# Find all value objects
find_value_objects

# Search by pattern
search_by_pattern "*Repository"
search_by_pattern "*Handler"

# Complex query with multiple filters
analyze_codebase {
  "attribute_types": ["App\\Framework\\Attributes\\Route", "App\\Framework\\Attributes\\Initializer"],
  "class_name_patterns": ["*Controller", "*Service"],
  "max_results": 100
}
```

### Git Workflow Examples

```bash
# Intelligenter Commit-Workflow
# 1. Status prüfen
git_status

# 2. Änderungen analysieren
git_changed_files

# 3. AI-gestützte Commit-Message generieren
git_generate_commit_message

# 4. Dateien stagen
git_add { "files": ["."] }

# 5. Commit erstellen
git_commit { "message": "feat(Mcp): add Git version control tools for automated workflows" }

# Branch-Workflow
git_branch_info                 # Aktuellen Branch prüfen
git_stash                       # Temporäre Änderungen speichern
git_log { "limit": 10 }        # Letzte 10 Commits anzeigen

# Diff-Analyse
git_diff { "staged": true }    # Staged changes diff
git_diff { "file": "src/Framework/Mcp/Tools/GitTools.php" }  # File-specific diff
```

### SuperClaude /git Command Integration

**High-Level Workflow Automation** via `/sc:git` command:

```bash
# Smart Commit (AI-powered, recommended)
/sc:git commit --smart
→ Analyzes changes, generates conventional commit, executes commit workflow

# Feature Branch Workflow
/sc:git feature user-authentication
→ Creates feature branch, sets up development workflow

# Code Review & Merge
/sc:git merge feature/login --review
→ AI-assisted code review, safe merge with conflict detection

# Release Preparation
/sc:git release v2.1.0 --changelog
→ Generates changelog, creates tag, prepares GitHub release

# Emergency Hotfix
/sc:git hotfix critical-bug --from production
→ Fast hotfix branch creation and deployment workflow

# Interactive Rebase
/sc:git rebase --interactive main
→ Guided commit history cleanup before merge
```

**See** `/home/michael/.claude/commands/sc/git.md` for complete workflow documentation.

### Response Format

Alle Codebase-Analysis-Tools liefern strukturierte Ergebnisse:

```json
{
  "controllers": [
    {
      "class_name": "App\\Application\\Api\\UserController",
      "file_path": "/var/www/html/src/Application/Api/UserController.php",
      "namespace": "App\\Application\\Api",
      "is_readonly": true,
      "is_final": true,
      "methods": ["getUsers", "getUser", "createUser"]
    }
  ],
  "routes": [
    {
      "path": "/api/users",
      "http_method": "GET",
      "controller": "App\\Application\\Api\\UserController",
      "action": "getUsers"
    }
  ],
  "statistics": {
    "total_components": 150,
    "total_routes": 45
  },
  "execution_time_ms": 42.5
}
```

## Best Practices für AI-Interaktion

### Framework Analysis
1. **MCP Tools verwenden**: Nutze MCP Tools für Framework-Analyse anstatt manueller Datei-Lesung oder Bash-Grep
2. **Codebase Analysis bevorzugen**: Nutze intelligente `find_*` Tools statt Pattern-Matching für Framework-Komponenten
3. **Attribute Discovery nutzen**: Verwende Attribute-Discovery zum Verstehen der Framework-Patterns
4. **Health Checks**: Führe Framework Health Checks vor Änderungen durch
5. **Projekt-Scope beachten**: Respektiere projekt-beschränkte Dateizugriff-Limitierungen
6. **Batch Queries**: Kombiniere mehrere Suchkriterien in einer `analyze_codebase` Query für bessere Performance

### Git Workflow Automation (NEW ✨)

**Individual MCP Tools** (Low-Level):
- Nutze `git_generate_commit_message` für konsistente Conventional Commits
- Prüfe `git_status` vor Änderungen für sauberen Working Tree
- Verwende `git_changed_files` für Scope-Analyse vor Commits
- Nutze `git_diff` für Code-Review vor dem Stagen
- Führe `git_log` aus für Commit-Message-Konsistenz

**SuperClaude /git Command** (High-Level, Recommended):
- **Prefer `/sc:git commit --smart`** über manuelle Commits für AI-gestützte Conventional Commits
- **Use `/sc:git feature [name]`** für standardisierte Feature Branch Creation
- **Use `/sc:git merge [branch] --review`** für AI-unterstützte Code Review vor Merge
- **Use `/sc:git release [version]`** für automatisierte Release-Vorbereitung mit Changelog
- **Use `/sc:git hotfix [issue]`** für schnelle Hotfix-Workflows mit automatischem Branch Management

**Workflow Integration Benefits**:
- Automatic validation and error handling
- AI-assisted decision making for commits and merges
- Consistent branch naming conventions
- Integrated code review and conflict resolution
- TodoWrite tracking for multi-step workflows
- Graceful fallback to Bash if MCP server unavailable

## Sicherheitsfeatures

- **Sandboxed File Access**: Alle Dateizugriffe sind auf das Projekt beschränkt
- **Safe Operations**: Nur lesende Operationen für Framework-Analyse
- **Validation**: Eingabe-Validierung für alle MCP-Tool-Parameter
- **Error Handling**: Robuste Fehlerbehandlung mit aussagekräftigen Meldungen