HopHop

Développement d'un plugin MCP pour Grav : connecter mon blog à Claude

grav mcp claude ia php plugin développement

Ça faisait un moment que l'idée me trottait dans la tête : et si Claude pouvait directement discuter avec mon blog ? Pas juste en lire le contenu, mais vraiment interagir avec — créer des articles, les modifier, gérer les traductions. Bref, un vrai assistant éditorial.

En bref

J'ai développé un plugin MCP (Model Context Protocol) pour Grav CMS qui permet à Claude d'interagir directement avec mon blog. Le plugin expose 13 outils pour gérer les articles, les traductions et les médias. Tout le code est disponible en open source.

L'idée de départ

Comme expliqué dans mon article sur le choix de ma stack de blog, cela fait des année que je veux faire un blog pour y décrire des trucs dont je suis "fier". Je ne l'ai jamais fait par manque de temps, flemme et probablement le peu de goût que j'ia pour l'écriture.

Depuis que j'ai découvert l'intelligence artificielle et notamment claude code et ses MCP, je me suis dit que je pourrais m'en servir pour rédiger. L'idée est la suivante :

  • Je travaille sur un truc dans claude-code
  • A un moment de mon prompt, je me dis et c'est pas mal ca faut que je le partage. Je dis à Claudy, résumé-moi ce qui a été fait et ici et fais moi un article de blog en brouillon. De plus j'ai une commande /blog qui lui décrit mon style, le ton, etc...
  • Je relis, modifie, publie.

Architecture du plugin

Le plugin fonctionne comme un serveur MCP intégré à Grav. Il expose une API JSON-RPC que Claude peut appeler via le protocole MCP.

Claude Code ↔ MCP Protocol ↔ Plugin Grav ↔ Fichiers Markdown

Les 13 outils disponibles

Le plugin expose 13 outils répartis en plusieurs catégories :

Gestion des articles

  • list_posts : lister les articles avec filtres (langue, tag, statut)
  • get_post : récupérer le contenu complet d'un article
  • create_post : créer un nouvel article
  • update_post : modifier un article existant
  • delete_post : supprimer un article

Traductions

  • list_translations : voir les traductions disponibles
  • create_translation : créer une traduction

Médias

  • upload_media : uploader une image ou un fichier
  • delete_media : supprimer un média

Système

  • get_site_info : informations sur le site
  • list_tags : tous les tags utilisés
  • clear_cache : vider le cache Grav

Sécurité

Niveau sécurité, Claudy ne s'est pas privé et mé implémenté ceci :

  • Authentification par clé API : chaque requête doit inclure une clé valide
  • Validation des entrées : tous les paramètres sont validés et sanitizés
  • Restriction des chemins : impossible d'accéder aux fichiers hors du dossier pages
  • Rate limiting : protection contre les abus

J'avoue que sans lui, j'aurais pas fait cela tout de suite mais bon la, ca coûte pas cher ;)

Installation et configuration

Pour ce qui est de l'installation et la documentation, tout est dans le README.md.

Conclusion

Ce plugin transforme vraiment ma façon de gérer le blog. Combiné avec le plugin Bridgy Fed pour la connexion au Fediverse, j'ai maintenant une stack complète pilotée par IA. Je peux demander à Claude de créer un brouillon, de traduire un article, ou de mettre à jour du contenu — tout ça sans quitter mon terminal.

Le code est disponible sur GitHub. N'hésitez pas à l'essayer et à contribuer !

Interactions du Fediverse

1

Article précédent Article suivant