---
title: "MCP Hugo Server passe public : npm et Claude Desktop"
description: "Le serveur MCP qui gère ce blog est maintenant public sur npm et Claude Desktop, après plusieurs semaines d'audits de sécurité adversariaux."
url: "https://www.arleo.eu/posts/mcp-hugo-server-go-public/"
language: "fr"
datePublished: "2026-08-02T09:35:35Z"
dateModified: "2026-08-02T09:35:35Z"
tags: ["mcp","claude","homelab","open-source","security"]
categories: ["infrastructure"]
contentSignal: "ai-train=no, search=yes, ai-input=yes"
---

# MCP Hugo Server passe public : npm et Claude Desktop
Le serveur MCP qui gère ce blog est maintenant public sur npm et Claude Desktop, après plusieurs semaines d'audits de sécurité adversariaux.



## En bref

Ce blog est géré depuis plusieurs mois par [mcp-hugo-server-go](https://github.com/jmrGrav/mcp-hugo-server-go), un serveur MCP écrit en Go.

Il donne à Claude un accès direct et sécurisé au contenu Hugo de arleo.eu : création, édition, publication, gestion des taxonomies, images, et bien plus.

C'est le successeur du [serveur FastAPI/Python à 6 outils](/posts/hugo-mcp-server/) documenté ici en mai.

Cet article explique pourquoi ce projet, initialement pensé pour un usage strictement personnel, est maintenant installable par n'importe qui gère un site Hugo.

## Pourquoi ce n'est pas juste "un script qui marche"

La plupart des outils MCP pour la gestion de contenu que j'ai pu observer se contentent de faire fonctionner le cas nominal.

Celui-ci a été soumis, sur plusieurs semaines, à des audits fonctionnels répétés et à une véritable tentative d'intrusion adversariale — pas juste rejouer les scénarios qui ont trouvé les bugs, mais chercher activement à le casser.

Quelques résultats concrets de ces tests :

- **Upload de fichiers** — l'extension déclarée ne suffit pas, le contenu réel est inspecté (sniffing des magic bytes). Un fichier PHP renommé en `.png` est rejeté, pas juste un fichier `.php`.

- **SVG** — allowlist stricte au niveau des éléments XML, pas seulement un blocage de `<script>`. `<animate onbegin=...>`, `<foreignObject>` et les tentatives d'injection XXE via `<!DOCTYPE>` sont tous bloqués.

- **Idempotence** — rejouer une clé déjà utilisée avec un payload différent est détecté et rejeté, pas silencieusement remplacé par le résultat en cache. Une classe de bug de confusion de cache qui touche beaucoup d'implémentations MCP.

- **Contournement de contenu de test** — le marqueur qui protège une page de test d'une publication accidentelle est verrouillé à trois niveaux indépendants (validation logique, rejet de schéma, allowlist de champ). J'ai testé chacun spécifiquement en tentant de le contourner.

- **Injection HTML/SQL** — tentatives d'injection dans les moteurs de recherche et le corps Markdown neutralisées sans fuite d'information.

Aucune de ces protections n'est là pour l'esbroufe — chacune répond à un vecteur d'attaque réel que j'ai testé moi-même.

### Ce qui le distingue vraiment pour un agent IA

Ce qui rend ce MCP particulièrement abouti n'est pas le nombre brut d'outils. C'est la combinaison de garanties que l'on trouve rarement réunies dans un MCP pour Hugo :

- **Écritures sûres**, protégées par des révisions de page et de bundle.
- **Idempotence et récupération de l'état des mutations** après un timeout ou une réponse incertaine.
- **Plans de modification bilingues atomiques avec rollback**, pour appliquer ou restaurer toutes les traductions comme une seule unité éditoriale.
- **Previews isolées avant publication**, sans toucher au site public.
- **Cycle de vie complet des featured images** : génération, association, inspection, détachement et suppression.
- **Validation stricte des assets**, jusqu'au rejet des SVG hostiles.
- **Protection du contenu de test**, conçue pour empêcher sa publication accidentelle.
- **Vérification du build et de la publication étape par étape**, avec un état explicite de chaque phase.
- **Diagnostics stockage, runtime, Git, thème, SRI, SEO, AI-readiness et liens** accessibles directement à l'agent.
- **Erreurs structurées et réparables par un agent**, plutôt que de simples chaînes de caractères ambiguës.

Cette combinaison est inhabituellement mature pour un MCP destiné à un site statique. Au fil des audits, le projet a cessé de ressembler à un simple wrapper autour de fichiers Markdown : il se comporte davantage comme une petite couche éditoriale transactionnelle pensée pour permettre à un agent IA d'agir de manière autonome sans sacrifier les garde-fous.

## Une vraie boucle de correction

Le projet a connu près d'une dizaine de versions en un mois, avec un changelog qui documente précisément chaque changement et cite les scénarios de reproduction.

Signe le plus révélateur : plusieurs correctifs référencent explicitement des audits externes qui ont trouvé les bugs en question.

Ce n'est pas un projet figé qu'on découvre cassé six mois plus tard. C'est un cycle de développement qui absorbe le retour et corrige vite.

## Ce qui a changé récemment : disponible pour tout le monde

Jusqu'à il y a peu, ce serveur ne tournait que sur mon infrastructure. Ce n'est plus le cas :

- **`npx @jmrgrav/mcp-hugo-server-go`** — installation en une commande, binaire vérifié par hash SHA-256, publié avec une provenance cryptographique traçable jusqu'au commit et au run GitHub Actions exact qui l'a construit

- **Extension Claude Desktop (`.mcpb`)** — installation en un clic, mode local sans OAuth, testée manuellement sous Windows

- **Soumis à la Claude Connectors Directory** — en cours de revue par Anthropic

- **Mode auto-hébergé HTTP+OAuth** — toujours disponible pour qui veut le déployer en distant, exactement comme arleo.eu le fait

Deux modes de transport, un seul binaire, aucune régression sur l'un en ajoutant l'autre.

## Installer

Toute la procédure détaillée — les deux modes de transport, configuration par variables d'environnement ou fichier, dépannage — est sur le **[wiki GitHub du projet](https://github.com/jmrGrav/mcp-hugo-server-go/wiki)**.

Le dépôt lui-même est sur [github.com/jmrGrav/mcp-hugo-server-go](https://github.com/jmrGrav/mcp-hugo-server-go).

Si vous gérez un site Hugo et que vous voulez que Claude puisse le piloter directement — en toute sécurité — c'est fait pour ça.

## Tags

- mcp
- claude
- homelab
- open-source
- security

## Categories

- infrastructure
