{
"event": "PreToolUse",
"tool_name": "mcp__mcp-docs__docs_update",
"tool_input": {
"id": 51,
"content": "<![CDATA[<nav class=\"breadcrumb\">\n <a href=\"\/docs\">Dokumentation<\/a> » API\n<\/nav>\n\n<h1>API<\/h1>\n<p class=\"doc-meta\"><strong>Erstellt:<\/strong> 2025-12-20 | <strong>Aktualisiert:<\/strong> 2025-12-27<\/p>\n\n<p>REST-API Endpunkte für KI-Integration, Content-Management und Dokumentation.<\/p>\n\n<h2>API-Referenz<\/h2>\n<div class=\"docs-grid\">\n <a href=\"\/docs\/api\/chat\" class=\"docs-card\">\n <h3>Chat API<\/h3>\n <p>RAG-Chat mit Vektorsuche und LLM-Integration<\/p>\n <\/a>\n\n <a href=\"\/docs\/api\/docs\" class=\"docs-card\">\n <h3>Docs API<\/h3>\n <p>Dokumentations-CRUD, Suche und RAG-Chat<\/p>\n <\/a>\n\n <a href=\"\/docs\/api\/tasks\" class=\"docs-card\">\n <h3>Tasks API<\/h3>\n <p>Task-Management, Zuweisungen, KI-Ausführung<\/p>\n <\/a>\n\n <a href=\"\/docs\/api\/content\" class=\"docs-card\">\n <h3>Content API<\/h3>\n <p>Content-Aufträge erstellen und bearbeiten<\/p>\n <\/a>\n\n <a href=\"\/docs\/api\/explorer\" class=\"docs-card\">\n <h3>Explorer API<\/h3>\n <p>Dokumente, Chunks, Taxonomie, Hybrid-Suche<\/p>\n <\/a>\n\n <a href=\"\/docs\/api\/config\" class=\"docs-card\">\n <h3>Config API<\/h3>\n <p>System-Prompts und RAG-Konfiguration<\/p>\n <\/a>\n\n <a href=\"\/docs\/api\/services\" class=\"docs-card\">\n <h3>Services<\/h3>\n <p>OllamaService, QdrantService, ClaudeService<\/p>\n <\/a>\n<\/div>\n\n<h2>Architektur<\/h2>\n<p>Alle APIs sind vollständig in PHP implementiert:<\/p>\n<pre><code>Browser (HTMX\/JS)\n ↓\nPHP Controller (\/src\/Controller\/Api\/)\n├── ChatController.php (RAG-Chat)\n├── DocsController.php (Dokumentation)\n├── TaskController.php (Task-Management)\n├── ContentController.php (Content-Aufträge)\n├── ExplorerController.php (Doc2Vector Explorer)\n└── ConfigController.php (Konfiguration)\n ↓\nPHP Services (\/src\/Infrastructure\/AI\/)\n├── AIConfig.php (Config & Factory)\n├── ChatService.php (RAG-Orchestrator)\n├── OllamaService.php (Embeddings & LLM)\n├── QdrantService.php (Vektorsuche)\n└── ClaudeService.php (Anthropic LLM)\n ↓\n┌─────────────┬─────────────┬─────────────┐\n│ Ollama API │ Qdrant API │ Claude API │\n│ :11434 │ :6333 │ anthropic │\n└─────────────┴─────────────┴─────────────┘<\/code><\/pre>\n\n<h2>Endpunkte-Übersicht<\/h2>\n\n<h3>Chat API<\/h3>\n<table>\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>POST<\/td><td>\/api\/v1\/chat<\/td><td>Chat-Nachricht senden<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/chat\/search<\/td><td>Vektorsuche<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/chat\/stats<\/td><td>Statistiken<\/td><\/tr>\n<\/table>\n\n<h3>Docs API<\/h3>\n<table>\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/docs<\/td><td>Dokumente auflisten<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/docs\/{id}<\/td><td>Dokument nach ID<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/docs\/path\/{path}<\/td><td>Dokument nach Pfad<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/docs\/search<\/td><td>Semantische Suche<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/docs\/hierarchy<\/td><td>Dokumentationsbaum<\/td><\/tr>\n <tr><td>POST<\/td><td>\/api\/v1\/docs<\/td><td>Dokument erstellen<\/td><\/tr>\n <tr><td>PUT<\/td><td>\/api\/v1\/docs\/{id}<\/td><td>Dokument aktualisieren<\/td><\/tr>\n <tr><td>DELETE<\/td><td>\/api\/v1\/docs\/{id}<\/td><td>Dokument löschen<\/td><\/tr>\n <tr><td>POST<\/td><td>\/api\/v1\/docs\/chat<\/td><td>RAG-Chat<\/td><\/tr>\n<\/table>\n\n<h3>Tasks API<\/h3>\n<table>\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/tasks<\/td><td>Tasks auflisten<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/tasks\/statistics<\/td><td>Statistiken<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/tasks\/{id}<\/td><td>Task-Details<\/td><\/tr>\n <tr><td>POST<\/td><td>\/api\/v1\/tasks<\/td><td>Task erstellen<\/td><\/tr>\n <tr><td>PUT<\/td><td>\/api\/v1\/tasks\/{id}<\/td><td>Task aktualisieren<\/td><\/tr>\n <tr><td>DELETE<\/td><td>\/api\/v1\/tasks\/{id}<\/td><td>Task löschen<\/td><\/tr>\n <tr><td>POST<\/td><td>\/api\/v1\/tasks\/{id}\/assign<\/td><td>Task zuweisen<\/td><\/tr>\n <tr><td>PUT<\/td><td>\/api\/v1\/tasks\/{id}\/status<\/td><td>Status ändern<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/tasks\/{id}\/results<\/td><td>Ergebnisse abrufen<\/td><\/tr>\n <tr><td>POST<\/td><td>\/api\/v1\/tasks\/{id}\/results<\/td><td>Ergebnis speichern<\/td><\/tr>\n <tr><td>POST<\/td><td>\/api\/v1\/tasks\/{id}\/execute<\/td><td>KI-Ausführung<\/td><\/tr>\n<\/table>\n\n<h3>Content API<\/h3>\n<table>\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>PUT<\/td><td>\/api\/v1\/content\/{id}<\/td><td>Auftrag aktualisieren<\/td><\/tr>\n<\/table>\n\n<h3>Explorer API<\/h3>\n<table>\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/stats<\/td><td>Statistiken<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/dokumente<\/td><td>Dokumente-Liste<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/dokumente\/{id}<\/td><td>Dokument-Details<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/seiten<\/td><td>Seiten-Liste<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/seiten\/{id}<\/td><td>Seite-Details<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/chunks<\/td><td>Chunks-Liste<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/chunks\/{id}<\/td><td>Chunk-Details<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/taxonomie<\/td><td>Taxonomie<\/td><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/entities<\/td><td>Entities<\/td><\/tr>\n <tr><td>POST<\/td><td>\/api\/v1\/explorer\/suche<\/td><td>Hybrid-Suche<\/td><\/tr>\n<\/table>\n\n<h3>Config API<\/h3>\n<table>\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>GET<\/td><td>\/api\/v1\/config\/{id}<\/td><td>Config abrufen<\/td><\/tr>\n <tr><td>POST<\/td><td>\/api\/v1\/config\/{id}<\/td><td>Config aktualisieren<\/td><\/tr>\n<\/table>\n\n<h2>Response-Format<\/h2>\n<p>Alle APIs verwenden ein einheitliches JSON-Response-Format:<\/p>\n\n<h3>Erfolg<\/h3>\n<pre><code>{\n \"success\": true,\n \"data\": { ... },\n \"meta\": {\n \"total\": 100,\n \"limit\": 50,\n \"offset\": 0\n }\n}<\/code><\/pre>\n\n<h3>Fehler<\/h3>\n<pre><code>{\n \"success\": false,\n \"error\": \"Fehlermeldung\"\n}<\/code><\/pre>\n\n<h2>Authentifizierung<\/h2>\n<p>Schreibende Operationen (POST, PUT, DELETE) erfordern einen CSRF-Token:<\/p>\n<pre><code>X-CSRF-TOKEN: {token}<\/code><\/pre>\n\n<h2>Services<\/h2>\n<table>\n <tr><th>Service<\/th><th>Pfad<\/th><th>Funktion<\/th><\/tr>\n <tr><td>AIConfig<\/td><td>\/src\/Infrastructure\/AI\/AIConfig.php<\/td><td>Config & Factory<\/td><\/tr>\n <tr><td>ChatService<\/td><td>\/src\/Infrastructure\/AI\/ChatService.php<\/td><td>RAG-Orchestrator<\/td><\/tr>\n <tr><td>OllamaService<\/td><td>\/src\/Infrastructure\/AI\/OllamaService.php<\/td><td>Embeddings & LLM<\/td><\/tr>\n <tr><td>QdrantService<\/td><td>\/src\/Infrastructure\/AI\/QdrantService.php<\/td><td>Vektorsuche<\/td><\/tr>\n <tr><td>ClaudeService<\/td><td>\/src\/Infrastructure\/AI\/ClaudeService.php<\/td><td>LLM-Antworten<\/td><\/tr>\n<\/table>]]>"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"doc\": {\n \"id\": 51,\n \"parent_id\": null,\n \"slug\": \"api\",\n \"path\": \"\/api\",\n \"title\": \"API\",\n \"description\": \"Interne PHP-Services und REST-Endpunkte für KI-Integration.\",\n \"content\": \"<![CDATA[<nav class=\\\"breadcrumb\\\">\\n <a href=\\\"\/docs\\\">Dokumentation<\/a> » API\\n<\/nav>\\n\\n<h1>API<\/h1>\\n<p class=\\\"doc-meta\\\"><strong>Erstellt:<\/strong> 2025-12-20 | <strong>Aktualisiert:<\/strong> 2025-12-27<\/p>\\n\\n<p>REST-API Endpunkte für KI-Integration, Content-Management und Dokumentation.<\/p>\\n\\n<h2>API-Referenz<\/h2>\\n<div class=\\\"docs-grid\\\">\\n <a href=\\\"\/docs\/api\/chat\\\" class=\\\"docs-card\\\">\\n <h3>Chat API<\/h3>\\n <p>RAG-Chat mit Vektorsuche und LLM-Integration<\/p>\\n <\/a>\\n\\n <a href=\\\"\/docs\/api\/docs\\\" class=\\\"docs-card\\\">\\n <h3>Docs API<\/h3>\\n <p>Dokumentations-CRUD, Suche und RAG-Chat<\/p>\\n <\/a>\\n\\n <a href=\\\"\/docs\/api\/tasks\\\" class=\\\"docs-card\\\">\\n <h3>Tasks API<\/h3>\\n <p>Task-Management, Zuweisungen, KI-Ausführung<\/p>\\n <\/a>\\n\\n <a href=\\\"\/docs\/api\/content\\\" class=\\\"docs-card\\\">\\n <h3>Content API<\/h3>\\n <p>Content-Aufträge erstellen und bearbeiten<\/p>\\n <\/a>\\n\\n <a href=\\\"\/docs\/api\/explorer\\\" class=\\\"docs-card\\\">\\n <h3>Explorer API<\/h3>\\n <p>Dokumente, Chunks, Taxonomie, Hybrid-Suche<\/p>\\n <\/a>\\n\\n <a href=\\\"\/docs\/api\/config\\\" class=\\\"docs-card\\\">\\n <h3>Config API<\/h3>\\n <p>System-Prompts und RAG-Konfiguration<\/p>\\n <\/a>\\n\\n <a href=\\\"\/docs\/api\/services\\\" class=\\\"docs-card\\\">\\n <h3>Services<\/h3>\\n <p>OllamaService, QdrantService, ClaudeService<\/p>\\n <\/a>\\n<\/div>\\n\\n<h2>Architektur<\/h2>\\n<p>Alle APIs sind vollständig in PHP implementiert:<\/p>\\n<pre><code>Browser (HTMX\/JS)\\n ↓\\nPHP Controller (\/src\/Controller\/Api\/)\\n├── ChatController.php (RAG-Chat)\\n├── DocsController.php (Dokumentation)\\n├── TaskController.php (Task-Management)\\n├── ContentController.php (Content-Aufträge)\\n├── ExplorerController.php (Doc2Vector Explorer)\\n└── ConfigController.php (Konfiguration)\\n ↓\\nPHP Services (\/src\/Infrastructure\/AI\/)\\n├── AIConfig.php (Config & Factory)\\n├── ChatService.php (RAG-Orchestrator)\\n├── OllamaService.php (Embeddings & LLM)\\n├── QdrantService.php (Vektorsuche)\\n└── ClaudeService.php (Anthropic LLM)\\n ↓\\n┌─────────────┬─────────────┬─────────────┐\\n│ Ollama API │ Qdrant API │ Claude API │\\n│ :11434 │ :6333 │ anthropic │\\n└─────────────┴─────────────┴─────────────┘<\/code><\/pre>\\n\\n<h2>Endpunkte-Übersicht<\/h2>\\n\\n<h3>Chat API<\/h3>\\n<table>\\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>POST<\/td><td>\/api\/v1\/chat<\/td><td>Chat-Nachricht senden<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/chat\/search<\/td><td>Vektorsuche<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/chat\/stats<\/td><td>Statistiken<\/td><\/tr>\\n<\/table>\\n\\n<h3>Docs API<\/h3>\\n<table>\\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/docs<\/td><td>Dokumente auflisten<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/docs\/{id}<\/td><td>Dokument nach ID<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/docs\/path\/{path}<\/td><td>Dokument nach Pfad<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/docs\/search<\/td><td>Semantische Suche<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/docs\/hierarchy<\/td><td>Dokumentationsbaum<\/td><\/tr>\\n <tr><td>POST<\/td><td>\/api\/v1\/docs<\/td><td>Dokument erstellen<\/td><\/tr>\\n <tr><td>PUT<\/td><td>\/api\/v1\/docs\/{id}<\/td><td>Dokument aktualisieren<\/td><\/tr>\\n <tr><td>DELETE<\/td><td>\/api\/v1\/docs\/{id}<\/td><td>Dokument löschen<\/td><\/tr>\\n <tr><td>POST<\/td><td>\/api\/v1\/docs\/chat<\/td><td>RAG-Chat<\/td><\/tr>\\n<\/table>\\n\\n<h3>Tasks API<\/h3>\\n<table>\\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/tasks<\/td><td>Tasks auflisten<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/tasks\/statistics<\/td><td>Statistiken<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/tasks\/{id}<\/td><td>Task-Details<\/td><\/tr>\\n <tr><td>POST<\/td><td>\/api\/v1\/tasks<\/td><td>Task erstellen<\/td><\/tr>\\n <tr><td>PUT<\/td><td>\/api\/v1\/tasks\/{id}<\/td><td>Task aktualisieren<\/td><\/tr>\\n <tr><td>DELETE<\/td><td>\/api\/v1\/tasks\/{id}<\/td><td>Task löschen<\/td><\/tr>\\n <tr><td>POST<\/td><td>\/api\/v1\/tasks\/{id}\/assign<\/td><td>Task zuweisen<\/td><\/tr>\\n <tr><td>PUT<\/td><td>\/api\/v1\/tasks\/{id}\/status<\/td><td>Status ändern<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/tasks\/{id}\/results<\/td><td>Ergebnisse abrufen<\/td><\/tr>\\n <tr><td>POST<\/td><td>\/api\/v1\/tasks\/{id}\/results<\/td><td>Ergebnis speichern<\/td><\/tr>\\n <tr><td>POST<\/td><td>\/api\/v1\/tasks\/{id}\/execute<\/td><td>KI-Ausführung<\/td><\/tr>\\n<\/table>\\n\\n<h3>Content API<\/h3>\\n<table>\\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>PUT<\/td><td>\/api\/v1\/content\/{id}<\/td><td>Auftrag aktualisieren<\/td><\/tr>\\n<\/table>\\n\\n<h3>Explorer API<\/h3>\\n<table>\\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/stats<\/td><td>Statistiken<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/dokumente<\/td><td>Dokumente-Liste<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/dokumente\/{id}<\/td><td>Dokument-Details<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/seiten<\/td><td>Seiten-Liste<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/seiten\/{id}<\/td><td>Seite-Details<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/chunks<\/td><td>Chunks-Liste<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/chunks\/{id}<\/td><td>Chunk-Details<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/taxonomie<\/td><td>Taxonomie<\/td><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/explorer\/entities<\/td><td>Entities<\/td><\/tr>\\n <tr><td>POST<\/td><td>\/api\/v1\/explorer\/suche<\/td><td>Hybrid-Suche<\/td><\/tr>\\n<\/table>\\n\\n<h3>Config API<\/h3>\\n<table>\\n <tr><th>Methode<\/th><th>Pfad<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>GET<\/td><td>\/api\/v1\/config\/{id}<\/td><td>Config abrufen<\/td><\/tr>\\n <tr><td>POST<\/td><td>\/api\/v1\/config\/{id}<\/td><td>Config aktualisieren<\/td><\/tr>\\n<\/table>\\n\\n<h2>Response-Format<\/h2>\\n<p>Alle APIs verwenden ein einheitliches JSON-Response-Format:<\/p>\\n\\n<h3>Erfolg<\/h3>\\n<pre><code>{\\n \\\"success\\\": true,\\n \\\"data\\\": { ... },\\n \\\"meta\\\": {\\n \\\"total\\\": 100,\\n \\\"limit\\\": 50,\\n \\\"offset\\\": 0\\n }\\n}<\/code><\/pre>\\n\\n<h3>Fehler<\/h3>\\n<pre><code>{\\n \\\"success\\\": false,\\n \\\"error\\\": \\\"Fehlermeldung\\\"\\n}<\/code><\/pre>\\n\\n<h2>Authentifizierung<\/h2>\\n<p>Schreibende Operationen (POST, PUT, DELETE) erfordern einen CSRF-Token:<\/p>\\n<pre><code>X-CSRF-TOKEN: {token}<\/code><\/pre>\\n\\n<h2>Services<\/h2>\\n<table>\\n <tr><th>Service<\/th><th>Pfad<\/th><th>Funktion<\/th><\/tr>\\n <tr><td>AIConfig<\/td><td>\/src\/Infrastructure\/AI\/AIConfig.php<\/td><td>Config & Factory<\/td><\/tr>\\n <tr><td>ChatService<\/td><td>\/src\/Infrastructure\/AI\/ChatService.php<\/td><td>RAG-Orchestrator<\/td><\/tr>\\n <tr><td>OllamaService<\/td><td>\/src\/Infrastructure\/AI\/OllamaService.php<\/td><td>Embeddings & LLM<\/td><\/tr>\\n <tr><td>QdrantService<\/td><td>\/src\/Infrastructure\/AI\/QdrantService.php<\/td><td>Vektorsuche<\/td><\/tr>\\n <tr><td>ClaudeService<\/td><td>\/src\/Infrastructure\/AI\/ClaudeService.php<\/td><td>LLM-Antworten<\/td><\/tr>\\n<\/table>]]>\",\n \"status\": \"published\",\n \"sort_order\": 7,\n \"depth\": 0,\n \"created_at\": \"2025-12-20T11:13:58\",\n \"updated_at\": \"2025-12-27T16:05:39\"\n },\n \"message\": \"Document #51 updated\"\n}"
}
]
}