Problem
ingest_paperless läuft synchron innerhalb des MCP-Requests. Bei größeren Beständen dauert rag.ainsert(...) (Chunking → Entity/Relation-Extraktion → Embedding) deutlich länger als der MCP-Idle-Timeout von 300 s. Der Client bricht ab (sent no response or progress for 300s; aborting), und der Abbruch cancelt die serverseitige Coroutine mitten in ainsert.
Folge:
kv_store_doc_status.json bleibt mit In-flight-Status (processing/analyzing/parsing) eingefroren, die nie fertig werden.
- Keine Graph-/Vektor-Artefakte (graphml, vdb_*) → Index leer.
_save_manifest (server.py:283) wird nie erreicht.
- Folge-Queries liefern
[no-context] (Raw search results: 0 entities, 0 relations, 0 vector chunks).
Reproduktion
ingest_paperless(project="doc-graph", tag="doc-graph") über 48 Dokumente → MCP-Abort nach 300 s, Index bleibt leer.
Workaround
Ingest entkoppelt im Container starten (docker exec -d ... python -c 'asyncio.run(ingest_paperless.fn(...))'), unabhängig von der MCP-Verbindung.
Fix-Vorschlag
Ingest als Hintergrund-Job (asyncio.create_task, nicht an den Request gebunden), sofort mit Job-Handle antworten; zusätzliches ingest_status(project)-Tool zum Pollen. Alternativ MCP-Progress-Notifications senden, damit die Verbindung nicht idle-abbricht.
Problem
ingest_paperlessläuft synchron innerhalb des MCP-Requests. Bei größeren Beständen dauertrag.ainsert(...)(Chunking → Entity/Relation-Extraktion → Embedding) deutlich länger als der MCP-Idle-Timeout von 300 s. Der Client bricht ab (sent no response or progress for 300s; aborting), und der Abbruch cancelt die serverseitige Coroutine mitten in ainsert.Folge:
kv_store_doc_status.jsonbleibt mit In-flight-Status (processing/analyzing/parsing) eingefroren, die nie fertig werden._save_manifest(server.py:283) wird nie erreicht.[no-context](Raw search results: 0 entities, 0 relations, 0 vector chunks).Reproduktion
ingest_paperless(project="doc-graph", tag="doc-graph")über 48 Dokumente → MCP-Abort nach 300 s, Index bleibt leer.Workaround
Ingest entkoppelt im Container starten (
docker exec -d ... python -c 'asyncio.run(ingest_paperless.fn(...))'), unabhängig von der MCP-Verbindung.Fix-Vorschlag
Ingest als Hintergrund-Job (
asyncio.create_task, nicht an den Request gebunden), sofort mit Job-Handle antworten; zusätzlichesingest_status(project)-Tool zum Pollen. Alternativ MCP-Progress-Notifications senden, damit die Verbindung nicht idle-abbricht.