TL;DR
- MCP ici = outils structurés que l'agent appelle avant de greper le disque : docs SSOT, bus fleet, actions gate, plus utilitaires (markdown, watts, commands, telemetry).
- Catalogue usage : T1 = docs / feed / gate ; T2 = markdown / neuralwatts ; T3 = commands / telemetry (+ Citadelle optionnelle).
- Sur la machine FG (2026-08-15) : trio T1 câblé dans le workspace
VFG_PT__et vivant en public (HTTP 200) ;~/.cursor/mcp.jsonglobal ={}; aucun Bearer T2/T3 niVFG_ADMIN_PASSWORDen variables utilisateur ; ports loopback MCP fermés. - Ce billet synthétise et pointe les SSOT existants — il ne remplace pas le catalogue ni les runbooks.
1. Qu'est-ce qu'un MCP « maison » ici ?
Un serveur MCP VFG expose une petite surface d'outils (boot, search docs, snapshot, wizz, publish…) que Cursor / OpenCode / Claude appellent via HTTP (SSE ou JSON-RPC). L'intérêt n'est pas « encore une API » : c'est réduire le contexte et forcer un ordre — lire la carte avant de fouiller le terrain.
Phrase agent (canon) :
Lis vfg-docs avant grep local ; vfg-feed pour le bus ; vfg-gate seulement pour agir.
Deux grilles se croisent (ne pas les confondre) :
| Grille | Sens | Exemple |
|---|---|---|
| Catalogue usage T1/T2/T3 | Priorité de charge côté agent | T1 always-on, T2 à la demande, T3 ponctuel |
| Déploiement loopback / VPS | Où tourne le process | 127.0.0.1:434x vs https://*.vfg.lol / gandalf.vfg.lol |
La synthèse juin documente le catalogue ; le runbook juillet documente le déploiement et l'incident 502. Les deux restent valides.
2. Catalogue des 7 (+ Citadelle)
Placeholders uniquement. Les path-secrets et Bearer ne vont jamais dans un article, un commit, ou un chat.
| Tier | Serveur | Rôle | Auth | Endpoint (forme) | Ports loopback |
|---|---|---|---|---|---|
| T1 | vfg-docs | Boot, search SSOT, timeline, graphe | path-secret | https://mcp-docs.vfg.lol/<path-secret>/mcp | 4340 |
| T1 | vfg-feed | Snapshot fleet, idées IdeaPit, events, hotfix runbook | path-secret | https://gandalf.vfg.lol/vfg-feed-mcp/<path-secret>/mcp (alt. mcp-feed.vfg.lol) | 4341 |
| T1 | vfg-gate | Wizz / OSC / hotfix deploy (écriture) | path-secret | https://gandalf.vfg.lol/vfg-gate-mcp/<path-secret>/mcp (alt. mcp-vfg.vfg.lol) | 4342 |
| T2 | vfg-markdown | Index plein-texte massif | path-secret | https://gandalf.vfg.lol/vfg-markdown-mcp/<path-secret>/mcp | 5197 |
| T2 | neuralwatts | Télémétrie énergétique IA | Bearer NEURALWATTS_AUTH_TOKEN | https://gandalf.vfg.lol/vfg-neuralwatts-mcp/mcp | 5194 |
| T3 | vfg-commands | CLI workspace + vfg_commands_devblog_publish | Bearer MCP_COMMANDS_AUTH_TOKEN | https://gandalf.vfg.lol/vfg-commands-mcp/mcp | 5199 |
| T3 | agent-telemetry | Sessions / patterns agents | Bearer TELEMETRY_AUTH_TOKEN | https://gandalf.vfg.lol/vfg-telemetry-mcp/mcp | 5198 |
| opt. | citadelle | Bridge Citadelle (didou.vfg.lol) | CITADELLE_TOKEN | client local → URL Citadelle | — |
Health publics utiles (sans secret) : https://mcp-docs.vfg.lol/healthz, https://mcp-feed.vfg.lol/healthz, https://mcp-vfg.vfg.lol/healthz.
Inventaire outils T1 (rappel court) : docs ≈ 5 outils lecture ; feed ≈ 9 lecture ; gate ≈ 7 écriture — détail dans .cursor/MCP-README.md.
3. Install Cursor — workspace vs global
3.1 Workspace D:\VFG_PT__\.cursor\mcp.json (recommandé pour le metaprojet)
C'est la config effective sur FG aujourd'hui : trio T1 uniquement (vfg-docs, vfg-feed, vfg-gate), URLs VPS avec path-secret.
Avantage : scoped au workspace VFG ; pas de pollution des autres projets Cursor.
3.2 Global C:\Users\FG\.cursor\mcp.json
Aujourd'hui : {"mcpServers": {}}.
Pour avoir le trio T1 dans tout Cursor (hors workspace VFG_PT__) :
- Copier le bloc T1 du workspace (ou générer via le kit catalogue /
generate-mcp-configsquand dispo). - Ne pas coller de Bearer en clair — utiliser
${MCP_COMMANDS_AUTH_TOKEN}etc. pour T2/T3. - Reload MCP dans Cursor.
3.3 Variables d'environnement (noms seulement)
| Variable | Pour |
|---|---|
MCP_COMMANDS_AUTH_TOKEN | vfg-commands (publish blog inclus) |
TELEMETRY_AUTH_TOKEN | agent-telemetry |
NEURALWATTS_AUTH_TOKEN | neuralwatts |
CITADELLE_TOKEN | Citadelle (optionnel) |
VFG_ADMIN_BACKEND_URL / VFG_ADMIN_PASSWORD | publish HTTP direct (publish-local.mjs) |
Définir au niveau utilisateur Windows, redémarrer Cursor. Ne jamais committer les valeurs.
Doc client multi-IDE : RAPPORT-EXPERIENTIEL/docs/SETUP-MCP-BLOG-ARTICLES.md et docs/MCP-CROSS-IDE-SETUP.md (attention : certains docs historiques peuvent contenir des secrets — les traiter comme hors-ligne, pas comme source à republier).
4. Variante loopback vs VPS
| Mode | Quand | Comment |
|---|---|---|
| VPS (recommandé FG portable / always-on) | Dev agent quotidien sans stack locale | Endpoints *.vfg.lol / gandalf.vfg.lol dans mcp.json |
| Loopback | Debug serveur, slice docs fraîche, hotfix local | Démarrer la stack locale (START-ALL-MCP-SERVERS.ps1 / scripts VFVFGPT), pointer http://127.0.0.1:4340|4341|4342/... |
Règle anti-doublon : ne jamais charger en même temps le même serveur logique en local et en VPS — outils dupliqués, latence, confusion.
Sur FG au 15/08 : ports 4340–4342 et 5194/5197/5198/5199 = closed → mode VPS uniquement, cohérent avec le câblage workspace.
5. Règles d'usage agent
- docs avant grep —
vfg_search_docs/vfg_boot_context/vfg_ssot_getavant Read/Grep sur STATUS, handoffs, SSOT. - feed pour le vivant — idées
#N, snapshot, events, runbook hotfix. - gate seul pour agir — wizz, OSC, deploy R3 (
confirmR3:true) ; jamais en doublon ouvert. - markdown = secondaire — index lourd ; docs reste primaire SSOT-aware.
- publish blog — outil
vfg_commands_devblog_publish(T3) ounode scripts/publish-local.mjs …avecVFG_ADMIN_*; ungit pushne publie plus les articles. - Hors MCP — code
src/, git dirty, tests : outils locaux.
Règle Cursor workspace : .cursor/rules/vfg-mcp-docs.mdc. Guide contexte : billet MCP-first (lien §7).
6. État machine FG — 2026-08-15
Sondage live (Windows FG), sans exposer de secrets :
| Contrôle | Résultat |
|---|---|
Workspace VFG_PT__\.cursor\mcp.json | T1 présent : vfg-docs, vfg-feed, vfg-gate |
Global ~\.cursor\mcp.json | mcpServers: {} |
mcp-docs / mcp-feed / mcp-vfg /healthz | 200 |
| Endpoints MCP T1 (path-secret) | 200 (SSE) |
gandalf…/vfg-commands-mcp/mcp sans Bearer | 404 (route ou auth côté edge — pas utilisable sans token) |
gandalf…/vfg-telemetry-mcp/mcp sans Bearer | 404 |
gandalf…/vfg-neuralwatts-mcp/mcp sans Bearer | 401 (vivant, auth requise) |
Env User/Process : MCP_COMMANDS_AUTH_TOKEN, TELEMETRY_AUTH_TOKEN, NEURALWATTS_AUTH_TOKEN, CITADELLE_TOKEN, VFG_ADMIN_PASSWORD | ABSENT |
.env RAPPORT-EXPERIENTIEL | clés : PORT seulement |
.env VFVFGPT | pas de VFG_ADMIN_PASSWORD |
| Ports loopback MCP | tous closed |
MCP vfg-commands dans cette session Cursor (hors workspace VFG) | non branché → publish MCP indisponible ici |
Ce qui marche : lire docs / feed / gate depuis le workspace VFG_PT__ (si Cursor a chargé le projet). Santé publique T1 OK.
Ce qui manque : tokens T2/T3 ; password admin blog côté user ; câblage global ; stack loopback ; outil publish dans les sessions hors workspace.
7. Liens SSOT (ne pas dupliquer)
| Sujet | Lien |
|---|---|
| Tag MCP live | https://blog.vfg.lol/?tag=mcp |
| Mes 3 MCP (carte / bus / wizz) | /devblog/posts/vfvfgpt/2026-06-16-mcp-audit-pratique.md.html |
| Synthèse hiérarchie 3 tiers (juin) | /devblog/posts/metaprojet/29-06-26-0313-synthese-mcp-hierarchie.md.html |
| Runbook architecture juillet | /devblog/posts/workflows-agentiques/2026-07-08-architecture-mcp-trois-tiers-runbook-juillet.md.html |
| Guide MCP-first (contexte) | /devblog/posts/workflows-agentiques/2026-07-08-reduire-contexte-agent-guide-mcp-first.md.html |
| PR #42 catalogue v3 | /devblog/posts/metaprojet/2026-07-09-pr42-catalogue-mcp-v3.md.html |
| Câblage 3 configs | /devblog/posts/workflows-agentiques/2026-07-09-cablage-mcp-3-configs-anomalie.md.html |
| Workflow publish local/prod/MCP | /devblog/posts/workflows-agentiques/2026-07-09-2023_workflow-publication-blog-local-prod-mcp.md.html |
| Comment publier (recette courte) | article du jour « Comment publier sur blog.vfg.lol » |
| Guide agent publish | /devblog/posts/workflows-agentiques/2026-07-17-2001_guide-agent-publier-article-blog-vfg-environnement.md.html |
| MCP-README workspace | D:\VFG_PT__\.cursor\MCP-README.md |
| Setup clients blog | RAPPORT-EXPERIENTIEL/docs/SETUP-MCP-BLOG-ARTICLES.md |
| Workflow publication | RAPPORT-EXPERIENTIEL/docs/WORKFLOW-PUBLICATION-BLOG.md |
8. Checklist next steps (FG)
- Copier le trio T1 workspace →
C:\Users\FG\.cursor\mcp.json(Reload MCP). - Poser les variables User :
MCP_COMMANDS_AUTH_TOKEN,TELEMETRY_AUTH_TOKEN(et optionnelNEURALWATTS_AUTH_TOKEN,CITADELLE_TOKEN). - Ajouter T2/T3 dans le
mcp.jsonchoisi (workspace ou global — pas les deux pour le même serveur). - Poser
VFG_ADMIN_PASSWORD(+VFG_ADMIN_BACKEND_URL=https://blog.vfg.lol) pour publish CLI. - Smoke :
vfg_boot_context+vfg_gate_health; puis draft viavfg_commands_devblog_publishoupublish-local.mjs. - Ne pas démarrer loopback en parallèle du VPS tant que le câblage n'est pas explicitement « local-only ».
- Traiter les docs cross-IDE qui contiennent encore des secrets en clair : rotation + purge des copies republables.
Commande publish (quand le secret admin est dispo)
cd D:\VFG_PT__\RAPPORT-EXPERIENTIEL
# dry-run
node scripts/publish-local.mjs devblog/posts/workflows-agentiques/2026-08-15-guide-mcp-maison-vfg-etat-machine-fg.md --dry-run
# prod
set VFG_ADMIN_BACKEND_URL=https://blog.vfg.lol
set VFG_ADMIN_PASSWORD=<secret-local-jamais-commité>
node scripts/publish-local.mjs devblog/posts/workflows-agentiques/2026-08-15-guide-mcp-maison-vfg-etat-machine-fg.md
URL attendue après publish :
https://blog.vfg.lol/devblog/posts/workflows-agentiques/2026-08-15-guide-mcp-maison-vfg-etat-machine-fg.md.html
9. Méthode de ce sondage
- Boot VFG :
node scripts/dev-meta.js boot --project blog(VFVFGPT). - Croisement blog
?tag=mcp, MCP-README, SETUP-MCP-BLOG-ARTICLES, MCP-CROSS-IDE-SETUP, WORKFLOW-PUBLICATION-BLOG, articles juillet (runbook, MCP-first, câblage, PR#42). - Probes HTTP status-only ; inventaire env noms ; inspection
mcp.jsonsans recopier les path-secrets.
Fin — guide opérationnel + rapport d'état, 2026-08-15.