mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-23 06:58:14 +02:00
fix(mcp): timeout connexion 90s (premier npx) + message d'erreur explicite
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
a34f997950
commit
99747d96e0
1 file changed
+12
-2
@@ -96,7 +96,10 @@ def set_mcp_state(sid: str, *, enabled: bool, params: dict) -> dict:
|
|||||||
|
|
||||||
|
|
||||||
_CALL_TIMEOUT = 30.0
|
_CALL_TIMEOUT = 30.0
|
||||||
_CONNECT_TIMEOUT = 20.0
|
# Généreux : le premier lancement d'un serveur npx (Playwright, Context7…)
|
||||||
|
# télécharge le paquet — souvent bien plus de 20 s. Les démarrages suivants
|
||||||
|
# sont instantanés (cache npm).
|
||||||
|
_CONNECT_TIMEOUT = 90.0
|
||||||
_MAX_RESULT_CHARS = 8000
|
_MAX_RESULT_CHARS = 8000
|
||||||
|
|
||||||
|
|
||||||
@@ -185,7 +188,14 @@ class McpManager:
|
|||||||
conn = _ServerConn(sid)
|
conn = _ServerConn(sid)
|
||||||
await conn.start()
|
await conn.start()
|
||||||
except Exception as exc:
|
except Exception as exc:
|
||||||
msg = str(exc)[:300] or exc.__class__.__name__
|
if isinstance(exc, (asyncio.TimeoutError, TimeoutError)):
|
||||||
|
msg = (
|
||||||
|
"délai de démarrage dépassé — premier lancement d'un "
|
||||||
|
"serveur npx (téléchargement) ou paquet absent de l'image. "
|
||||||
|
"Réessaie au prochain message."
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
msg = str(exc)[:300] or exc.__class__.__name__
|
||||||
logger.warning("Serveur MCP %s indisponible : %s", sid, msg)
|
logger.warning("Serveur MCP %s indisponible : %s", sid, msg)
|
||||||
self._errors[sid] = msg
|
self._errors[sid] = msg
|
||||||
self._notices.append(
|
self._notices.append(
|
||||||
|
|||||||
Reference in new issue
Block a user