{
"event": "PreToolUse",
"tool_name": "mcp__mcp-docs__docs_update",
"tool_input": {
"id": 79,
"content": "<nav class=\"breadcrumb\">\n <a href=\"\/docs\">Dokumentation<\/a> » <a href=\"\/docs\/api\">API<\/a> » Explorer API\n<\/nav>\n\n<h1>Explorer API<\/h1>\n<p class=\"doc-meta\"><strong>Erstellt:<\/strong> 2025-12-20 | <strong>Aktualisiert:<\/strong> 2025-12-29<\/p>\n\n<p>REST-API für Semantic Explorer mit Dokumenten, Chunks, Entitäten, Taxonomie und Suche.<\/p>\n\n<table>\n <tr><th>Controller<\/th><td>Controller\\Api\\ExplorerController<\/td><\/tr>\n <tr><th>Base-URL<\/th><td>\/api\/v1\/explorer<\/td><\/tr>\n <tr><th>Datenbank<\/th><td>ki_content (documents, chunks, entities, ...)<\/td><\/tr>\n<\/table>\n\n<h2>Statistiken<\/h2>\n<pre><code>GET \/api\/v1\/explorer\/stats<\/code><\/pre>\n<p>Liefert Übersicht über alle Daten:<\/p>\n<pre><code>{\n \"documents\": 15,\n \"chunks\": {\n \"total\": 450,\n \"tokens\": 125000\n },\n \"entities\": 320,\n \"relations\": 180,\n \"taxonomy_terms\": 45\n}<\/code><\/pre>\n\n<h2>Dokumente<\/h2>\n\n<h3>Liste aller Dokumente<\/h3>\n<pre><code>GET \/api\/v1\/explorer\/documents<\/code><\/pre>\n<p>Liefert alle Quelldokumente mit Statistiken.<\/p>\n\n<h3>Dokument-Details<\/h3>\n<pre><code>GET \/api\/v1\/explorer\/documents\/{id}<\/code><\/pre>\n<p>Liefert Dokument mit zugehörigen Chunks.<\/p>\n\n<h2>Chunks<\/h2>\n\n<h3>Chunks auflisten<\/h3>\n<pre><code>GET \/api\/v1\/explorer\/chunks?document_id=5&limit=50<\/code><\/pre>\n<table>\n <tr><th>Parameter<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>document_id<\/td><td>int<\/td><td>Filter nach Dokument<\/td><\/tr>\n <tr><td>search<\/td><td>string<\/td><td>Suche in Content<\/td><\/tr>\n <tr><td>limit<\/td><td>int<\/td><td>Max. Ergebnisse (max 100)<\/td><\/tr>\n <tr><td>offset<\/td><td>int<\/td><td>Pagination-Offset<\/td><\/tr>\n<\/table>\n\n<h3>Chunk-Details<\/h3>\n<pre><code>GET \/api\/v1\/explorer\/chunks\/{id}<\/code><\/pre>\n<p>Liefert Chunk mit allen Metadaten:<\/p>\n<pre><code>{\n \"id\": 42,\n \"chunk_index\": 3,\n \"content\": \"...\",\n \"token_count\": 280,\n \"entities\": [\n {\"name\": \"Carl Rogers\", \"type\": \"PERSON\"}\n ],\n \"keywords\": [\"Therapie\", \"Empathie\"],\n \"qdrant_id\": \"abc123...\"\n}<\/code><\/pre>\n\n<h2>Entitäten<\/h2>\n\n<h3>Entitäten auflisten<\/h3>\n<pre><code>GET \/api\/v1\/explorer\/entities?type=PERSON&limit=50<\/code><\/pre>\n<table>\n <tr><th>Parameter<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>type<\/td><td>string<\/td><td>Entity-Typ (PERSON, CONCEPT, ...)<\/td><\/tr>\n <tr><td>search<\/td><td>string<\/td><td>Suche in Name<\/td><\/tr>\n <tr><td>limit<\/td><td>int<\/td><td>Max. Ergebnisse<\/td><\/tr>\n<\/table>\n\n<h3>Entity-Details<\/h3>\n<pre><code>GET \/api\/v1\/explorer\/entities\/{id}<\/code><\/pre>\n\n<h2>Relationen<\/h2>\n<pre><code>GET \/api\/v1\/explorer\/relations<\/code><\/pre>\n<p>Liefert alle Beziehungen zwischen Entitäten:<\/p>\n<pre><code>{\n \"relations\": [\n {\n \"source\": {\"id\": 1, \"name\": \"Carl Rogers\", \"type\": \"PERSON\"},\n \"target\": {\"id\": 5, \"name\": \"Klientenzentrierte Therapie\", \"type\": \"CONCEPT\"},\n \"relation_type\": \"INFLUENCED\",\n \"confidence\": 0.95\n }\n ],\n \"total\": 180\n}<\/code><\/pre>\n\n<h2>Taxonomie<\/h2>\n<pre><code>GET \/api\/v1\/explorer\/taxonomy<\/code><\/pre>\n<p>Liefert Taxonomie-Hierarchie:<\/p>\n<pre><code>{\n \"terms\": [\n {\"id\": 1, \"name\": \"Psychotherapie\", \"parent_id\": null, \"children\": [...]},\n ...\n ],\n \"total\": 45\n}<\/code><\/pre>\n\n<h2>Ontologie<\/h2>\n<pre><code>GET \/api\/v1\/explorer\/ontology<\/code><\/pre>\n<p>Liefert Ontologie-Klassen.<\/p>\n\n<h2>Hybrid-Suche<\/h2>\n<pre><code>POST \/api\/v1\/explorer\/search\nContent-Type: application\/json\n\n{\n \"query\": \"Systemische Therapie\",\n \"limit\": 10\n}<\/code><\/pre>\n<p>Kombiniert Vektor- und Keyword-Suche:<\/p>\n<pre><code>{\n \"query\": \"Systemische Therapie\",\n \"results\": [\n {\n \"chunk_id\": 42,\n \"content\": \"...\",\n \"score\": 0.92,\n \"document_title\": \"Handbuch\"\n }\n ],\n \"count\": 8\n}<\/code><\/pre>\n\n<h2>Response-Format<\/h2>\n<pre><code>{\n \"success\": true,\n \"data\": { ... },\n \"meta\": {\n \"total\": 450,\n \"limit\": 50,\n \"offset\": 0\n }\n}<\/code><\/pre>\n\n<h2>Datenmodell<\/h2>\n\n<h3>documents (ki_content)<\/h3>\n<table>\n <tr><th>Feld<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>id<\/td><td>int<\/td><td>Primärschlüssel<\/td><\/tr>\n <tr><td>filename<\/td><td>varchar<\/td><td>Dateiname<\/td><\/tr>\n <tr><td>title<\/td><td>varchar<\/td><td>Titel<\/td><\/tr>\n <tr><td>source<\/td><td>varchar<\/td><td>Quelle (Nextcloud-Pfad)<\/td><\/tr>\n <tr><td>page_count<\/td><td>int<\/td><td>Seitenanzahl<\/td><\/tr>\n <tr><td>status<\/td><td>enum<\/td><td>pending, processing, completed, error<\/td><\/tr>\n<\/table>\n\n<h3>chunks (ki_content)<\/h3>\n<table>\n <tr><th>Feld<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>id<\/td><td>int<\/td><td>Primärschlüssel<\/td><\/tr>\n <tr><td>document_id<\/td><td>int<\/td><td>FK zu documents<\/td><\/tr>\n <tr><td>chunk_index<\/td><td>int<\/td><td>Position in Dokument<\/td><\/tr>\n <tr><td>content<\/td><td>text<\/td><td>Chunk-Inhalt<\/td><\/tr>\n <tr><td>token_count<\/td><td>int<\/td><td>Token-Anzahl<\/td><\/tr>\n <tr><td>embedding_model<\/td><td>varchar<\/td><td>Verwendetes Modell<\/td><\/tr>\n <tr><td>qdrant_id<\/td><td>varchar<\/td><td>Qdrant-Vektor-ID<\/td><\/tr>\n<\/table>\n\n<h3>entities (ki_content)<\/h3>\n<table>\n <tr><th>Feld<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\n <tr><td>id<\/td><td>int<\/td><td>Primärschlüssel<\/td><\/tr>\n <tr><td>name<\/td><td>varchar<\/td><td>Entity-Name<\/td><\/tr>\n <tr><td>canonical_name<\/td><td>varchar<\/td><td>Normalisierter Name<\/td><\/tr>\n <tr><td>type<\/td><td>enum<\/td><td>PERSON, CONCEPT, ORGANIZATION, ...<\/td><\/tr>\n<\/table>\n\n<h2>Verwandte Dokumentation<\/h2>\n<ul>\n <li><a href=\"\/docs\/anwendungen\/semantic-explorer\">Semantic Explorer<\/a><\/li>\n <li><a href=\"\/docs\/ki-system\/qdrant\">Qdrant Vektor-Datenbank<\/a><\/li>\n <li><a href=\"\/docs\/prozesse\/rag-prozess\">RAG-Prozess<\/a><\/li>\n<\/ul>"
}
}
{
"tool_response": [
{
"type": "text",
"text": "{\n \"success\": true,\n \"doc\": {\n \"id\": 79,\n \"parent_id\": 51,\n \"slug\": \"explorer\",\n \"path\": \"\/api\/explorer\",\n \"title\": \"Explorer API\",\n \"description\": \"REST-API für Dokumentations-Exploration mit Chunks, Taxonomie und Suche\",\n \"content\": \"<nav class=\\\"breadcrumb\\\">\\n <a href=\\\"\/docs\\\">Dokumentation<\/a> » <a href=\\\"\/docs\/api\\\">API<\/a> » Explorer API\\n<\/nav>\\n\\n<h1>Explorer API<\/h1>\\n<p class=\\\"doc-meta\\\"><strong>Erstellt:<\/strong> 2025-12-20 | <strong>Aktualisiert:<\/strong> 2025-12-29<\/p>\\n\\n<p>REST-API für Semantic Explorer mit Dokumenten, Chunks, Entitäten, Taxonomie und Suche.<\/p>\\n\\n<table>\\n <tr><th>Controller<\/th><td>Controller\\\\Api\\\\ExplorerController<\/td><\/tr>\\n <tr><th>Base-URL<\/th><td>\/api\/v1\/explorer<\/td><\/tr>\\n <tr><th>Datenbank<\/th><td>ki_content (documents, chunks, entities, ...)<\/td><\/tr>\\n<\/table>\\n\\n<h2>Statistiken<\/h2>\\n<pre><code>GET \/api\/v1\/explorer\/stats<\/code><\/pre>\\n<p>Liefert Übersicht über alle Daten:<\/p>\\n<pre><code>{\\n \\\"documents\\\": 15,\\n \\\"chunks\\\": {\\n \\\"total\\\": 450,\\n \\\"tokens\\\": 125000\\n },\\n \\\"entities\\\": 320,\\n \\\"relations\\\": 180,\\n \\\"taxonomy_terms\\\": 45\\n}<\/code><\/pre>\\n\\n<h2>Dokumente<\/h2>\\n\\n<h3>Liste aller Dokumente<\/h3>\\n<pre><code>GET \/api\/v1\/explorer\/documents<\/code><\/pre>\\n<p>Liefert alle Quelldokumente mit Statistiken.<\/p>\\n\\n<h3>Dokument-Details<\/h3>\\n<pre><code>GET \/api\/v1\/explorer\/documents\/{id}<\/code><\/pre>\\n<p>Liefert Dokument mit zugehörigen Chunks.<\/p>\\n\\n<h2>Chunks<\/h2>\\n\\n<h3>Chunks auflisten<\/h3>\\n<pre><code>GET \/api\/v1\/explorer\/chunks?document_id=5&limit=50<\/code><\/pre>\\n<table>\\n <tr><th>Parameter<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>document_id<\/td><td>int<\/td><td>Filter nach Dokument<\/td><\/tr>\\n <tr><td>search<\/td><td>string<\/td><td>Suche in Content<\/td><\/tr>\\n <tr><td>limit<\/td><td>int<\/td><td>Max. Ergebnisse (max 100)<\/td><\/tr>\\n <tr><td>offset<\/td><td>int<\/td><td>Pagination-Offset<\/td><\/tr>\\n<\/table>\\n\\n<h3>Chunk-Details<\/h3>\\n<pre><code>GET \/api\/v1\/explorer\/chunks\/{id}<\/code><\/pre>\\n<p>Liefert Chunk mit allen Metadaten:<\/p>\\n<pre><code>{\\n \\\"id\\\": 42,\\n \\\"chunk_index\\\": 3,\\n \\\"content\\\": \\\"...\\\",\\n \\\"token_count\\\": 280,\\n \\\"entities\\\": [\\n {\\\"name\\\": \\\"Carl Rogers\\\", \\\"type\\\": \\\"PERSON\\\"}\\n ],\\n \\\"keywords\\\": [\\\"Therapie\\\", \\\"Empathie\\\"],\\n \\\"qdrant_id\\\": \\\"abc123...\\\"\\n}<\/code><\/pre>\\n\\n<h2>Entitäten<\/h2>\\n\\n<h3>Entitäten auflisten<\/h3>\\n<pre><code>GET \/api\/v1\/explorer\/entities?type=PERSON&limit=50<\/code><\/pre>\\n<table>\\n <tr><th>Parameter<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>type<\/td><td>string<\/td><td>Entity-Typ (PERSON, CONCEPT, ...)<\/td><\/tr>\\n <tr><td>search<\/td><td>string<\/td><td>Suche in Name<\/td><\/tr>\\n <tr><td>limit<\/td><td>int<\/td><td>Max. Ergebnisse<\/td><\/tr>\\n<\/table>\\n\\n<h3>Entity-Details<\/h3>\\n<pre><code>GET \/api\/v1\/explorer\/entities\/{id}<\/code><\/pre>\\n\\n<h2>Relationen<\/h2>\\n<pre><code>GET \/api\/v1\/explorer\/relations<\/code><\/pre>\\n<p>Liefert alle Beziehungen zwischen Entitäten:<\/p>\\n<pre><code>{\\n \\\"relations\\\": [\\n {\\n \\\"source\\\": {\\\"id\\\": 1, \\\"name\\\": \\\"Carl Rogers\\\", \\\"type\\\": \\\"PERSON\\\"},\\n \\\"target\\\": {\\\"id\\\": 5, \\\"name\\\": \\\"Klientenzentrierte Therapie\\\", \\\"type\\\": \\\"CONCEPT\\\"},\\n \\\"relation_type\\\": \\\"INFLUENCED\\\",\\n \\\"confidence\\\": 0.95\\n }\\n ],\\n \\\"total\\\": 180\\n}<\/code><\/pre>\\n\\n<h2>Taxonomie<\/h2>\\n<pre><code>GET \/api\/v1\/explorer\/taxonomy<\/code><\/pre>\\n<p>Liefert Taxonomie-Hierarchie:<\/p>\\n<pre><code>{\\n \\\"terms\\\": [\\n {\\\"id\\\": 1, \\\"name\\\": \\\"Psychotherapie\\\", \\\"parent_id\\\": null, \\\"children\\\": [...]},\\n ...\\n ],\\n \\\"total\\\": 45\\n}<\/code><\/pre>\\n\\n<h2>Ontologie<\/h2>\\n<pre><code>GET \/api\/v1\/explorer\/ontology<\/code><\/pre>\\n<p>Liefert Ontologie-Klassen.<\/p>\\n\\n<h2>Hybrid-Suche<\/h2>\\n<pre><code>POST \/api\/v1\/explorer\/search\\nContent-Type: application\/json\\n\\n{\\n \\\"query\\\": \\\"Systemische Therapie\\\",\\n \\\"limit\\\": 10\\n}<\/code><\/pre>\\n<p>Kombiniert Vektor- und Keyword-Suche:<\/p>\\n<pre><code>{\\n \\\"query\\\": \\\"Systemische Therapie\\\",\\n \\\"results\\\": [\\n {\\n \\\"chunk_id\\\": 42,\\n \\\"content\\\": \\\"...\\\",\\n \\\"score\\\": 0.92,\\n \\\"document_title\\\": \\\"Handbuch\\\"\\n }\\n ],\\n \\\"count\\\": 8\\n}<\/code><\/pre>\\n\\n<h2>Response-Format<\/h2>\\n<pre><code>{\\n \\\"success\\\": true,\\n \\\"data\\\": { ... },\\n \\\"meta\\\": {\\n \\\"total\\\": 450,\\n \\\"limit\\\": 50,\\n \\\"offset\\\": 0\\n }\\n}<\/code><\/pre>\\n\\n<h2>Datenmodell<\/h2>\\n\\n<h3>documents (ki_content)<\/h3>\\n<table>\\n <tr><th>Feld<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>id<\/td><td>int<\/td><td>Primärschlüssel<\/td><\/tr>\\n <tr><td>filename<\/td><td>varchar<\/td><td>Dateiname<\/td><\/tr>\\n <tr><td>title<\/td><td>varchar<\/td><td>Titel<\/td><\/tr>\\n <tr><td>source<\/td><td>varchar<\/td><td>Quelle (Nextcloud-Pfad)<\/td><\/tr>\\n <tr><td>page_count<\/td><td>int<\/td><td>Seitenanzahl<\/td><\/tr>\\n <tr><td>status<\/td><td>enum<\/td><td>pending, processing, completed, error<\/td><\/tr>\\n<\/table>\\n\\n<h3>chunks (ki_content)<\/h3>\\n<table>\\n <tr><th>Feld<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>id<\/td><td>int<\/td><td>Primärschlüssel<\/td><\/tr>\\n <tr><td>document_id<\/td><td>int<\/td><td>FK zu documents<\/td><\/tr>\\n <tr><td>chunk_index<\/td><td>int<\/td><td>Position in Dokument<\/td><\/tr>\\n <tr><td>content<\/td><td>text<\/td><td>Chunk-Inhalt<\/td><\/tr>\\n <tr><td>token_count<\/td><td>int<\/td><td>Token-Anzahl<\/td><\/tr>\\n <tr><td>embedding_model<\/td><td>varchar<\/td><td>Verwendetes Modell<\/td><\/tr>\\n <tr><td>qdrant_id<\/td><td>varchar<\/td><td>Qdrant-Vektor-ID<\/td><\/tr>\\n<\/table>\\n\\n<h3>entities (ki_content)<\/h3>\\n<table>\\n <tr><th>Feld<\/th><th>Typ<\/th><th>Beschreibung<\/th><\/tr>\\n <tr><td>id<\/td><td>int<\/td><td>Primärschlüssel<\/td><\/tr>\\n <tr><td>name<\/td><td>varchar<\/td><td>Entity-Name<\/td><\/tr>\\n <tr><td>canonical_name<\/td><td>varchar<\/td><td>Normalisierter Name<\/td><\/tr>\\n <tr><td>type<\/td><td>enum<\/td><td>PERSON, CONCEPT, ORGANIZATION, ...<\/td><\/tr>\\n<\/table>\\n\\n<h2>Verwandte Dokumentation<\/h2>\\n<ul>\\n <li><a href=\\\"\/docs\/anwendungen\/semantic-explorer\\\">Semantic Explorer<\/a><\/li>\\n <li><a href=\\\"\/docs\/ki-system\/qdrant\\\">Qdrant Vektor-Datenbank<\/a><\/li>\\n <li><a href=\\\"\/docs\/prozesse\/rag-prozess\\\">RAG-Prozess<\/a><\/li>\\n<\/ul>\",\n \"status\": \"published\",\n \"sort_order\": 5,\n \"depth\": 1,\n \"created_at\": \"2025-12-20T13:39:32\",\n \"updated_at\": \"2025-12-29T14:59:40\"\n },\n \"message\": \"Document #79 updated\"\n}"
}
]
}