TL;DR: Depuis la session de stabilisation Windows du 2026-03-05, Kimi Proxy Dashboard est exploitable de façon fiable en local Windows pour Continue/Cline avec MCP. Le correctif clé vise les fetch failed via durcissement PowerShell (scripts/start-mcp-servers.ps1, bin/kimi-proxy.ps1), auto-démarrage proxy, health-check robuste sur http://127.0.0.1:8000/health, puis validation smoke + pytest.
Le problème réel n’était pas "MCP ne marche pas", c’était un démarrage non déterministe: les helpers MCP répondaient alors que le proxy n’était pas encore prêt, ou pire, un PID stale faisait croire que tout allait bien. Résultat côté IDE: fetch failed sans diagnostic exploitable.
❌ MCP lancé avant la disponibilité réelle du proxy :8000
❌ PID/processus incohérents sous Windows (stale PID, état faux positif)
❌ Message fetch failed générique, sans chemin de résolution
✅ Durcissement de scripts/start-mcp-servers.ps1 et bin/kimi-proxy.ps1
✅ Auto-démarrage proxy avant annonce "MCP prêt"
✅ Boucle de vérification GET /health sur http://127.0.0.1:8000/health
✅ Compatibilité Cline confirmée avec les helpers MCP:
sequential-thinkingfast-filesystemjson-query
- Session de stabilisation Windows finalisée le 2026-03-05.
- Campagne rapide validée: 4 passed (smoke produit).
- Validation étendue MCP Windows documentée: 173 passed, 13 skipped (audit interne).
Analogie fil rouge: le proxy est la cuisine, les endpoints sont le menu, et
/healthest le maître d’hôtel qui confirme que la cuisine sert vraiment.
python -m venv venv
.\venv\Scripts\Activate.ps1
pip install -r requirements.txt
pip install -r requirements-dev.txt.\bin\kimi-proxy.ps1 startInvoke-WebRequest -UseBasicParsing http://127.0.0.1:8000/health | Select-Object -ExpandProperty StatusCodeAttendu: 200.
.\scripts\start-mcp-servers.ps1 start.\tests\run_cline_mcp_smoke.ps1Invoke-WebRequest -UseBasicParsing http://127.0.0.1:8000/health.\scripts\start-mcp-servers.ps1 status.\scripts\start-mcp-servers.ps1 restart❌ Ancien pattern: lancer les serveurs MCP sans vérifier que le proxy écoute réellement :8000.
✅ Nouveau pattern: démarrer proxy, boucler sur GET /health, puis seulement démarrer/annoncer MCP prêt.
❌ Message vague fetch failed sans diagnostic actionnable.
✅ Message guidé: vérifier http://127.0.0.1:8000/health, statut ports MCP, puis script restart.
❌ Enchaîner des commandes manuelles non déterministes.
✅ Procédure idempotente PowerShell + checklists post-boot.
- Architecture 5 couches:
API ← Services ← Features ← Proxy ← Core - Stack: FastAPI + HTTPX + SQLite + WebSocket
- Taille projet: ~10k+ LOC Python
- Documentation: déjà riche dans
docs/
| Choix | Avantage | Limite |
|---|---|---|
| Auto-start proxy | Réduit les erreurs de séquence au boot | Moins de contrôle manuel fin |
| Contrôle manuel strict | Observabilité pas à pas | Plus fragile en routine quotidienne |
- Installation Windows:
docs/deployment/installation.md - Runbook Windows + RCA:
docs/dev/windows-compatibility.md - Index documentation:
docs/README.md
Pas de menu MCP sans maître d’hôtel /health: tant que :8000 n’est pas confirmé en 200, rien n’est "ready".