HopHop

Desarrollo de un plugin MCP para Grav: conectar mi blog a Claude

grav mcp claude ia php plugin desarrollo

Llevaba tiempo dándole vueltas a la idea: ¿y si Claude pudiera hablar directamente con mi blog? No solo leer su contenido, sino realmente interactuar con él — crear artículos, editarlos, gestionar las traducciones. Un verdadero asistente editorial.

En resumen

Desarrollé un plugin MCP (Model Context Protocol) para Grav CMS que permite a Claude interactuar directamente con mi blog. El plugin expone 13 herramientas para gestionar artículos, traducciones y medios. Todo el código está disponible como open source.

La idea inicial

Como explico en mi artículo sobre la elección de mi stack de blog, llevaba años queriendo crear un blog para documentar cosas de las que estoy "orgulloso". Nunca lo hice por falta de tiempo, pereza y probablemente mi poco gusto por la escritura.

Desde que descubrí la IA y especialmente Claude Code con sus MCPs, pensé que podría usarlo para redactar. La idea es la siguiente:

  • Estoy trabajando en algo en Claude Code
  • En algún momento pienso "esto está bien, hay que compartirlo". Le digo a Claude que resuma lo que se hizo y me cree un borrador de artículo. Además tengo un comando /blog que le describe mi estilo, tono, etc...
  • Reviso, modifico, publico.

Arquitectura del plugin

El plugin funciona como un servidor MCP integrado en Grav. Expone una API JSON-RPC que Claude puede llamar a través del protocolo MCP.

Claude Code ↔ Protocolo MCP ↔ Plugin Grav ↔ Archivos Markdown

Las 13 herramientas disponibles

El plugin expone 13 herramientas en varias categorías:

Gestión de artículos

  • list_posts: listar artículos con filtros (idioma, etiqueta, estado)
  • get_post: obtener el contenido completo de un artículo
  • create_post: crear un nuevo artículo
  • update_post: modificar un artículo existente
  • delete_post: eliminar un artículo

Traducciones

  • list_translations: ver traducciones disponibles
  • create_translation: crear una traducción

Medios

  • upload_media: subir una imagen o archivo
  • delete_media: eliminar un medio

Sistema

  • get_site_info: información del sitio
  • list_tags: todas las etiquetas en uso
  • clear_cache: vaciar la caché de Grav

Seguridad

En cuanto a seguridad, Claude no se contuvo e implementó:

  • Autenticación por clave API: cada solicitud debe incluir una clave válida
  • Validación de entradas: todos los parámetros son validados y sanitizados
  • Restricción de rutas: imposible acceder a archivos fuera de la carpeta pages
  • Rate limiting: protección contra abusos

Admito que sin él, no habría hecho todo esto de inmediato, pero bueno, es barato ;)

Instalación y configuración

Para la instalación y documentación, todo està en el README.md.

Conclusión

Este plugin ha transformado realmente mi forma de gestionar el blog. Combinado con el plugin Bridgy Fed para la conexión al Fediverse, ahora tengo una stack completa pilotada por IA. Puedo pedirle a Claude que cree un borrador, traduzca un artículo o actualice contenido — todo sin salir de mi terminal.

El código está disponible en GitHub. ¡No dudes en probarlo y contribuir!


Este artículo fue escrito originalmente en francés. Esta traducción fue generada automáticamente con ayuda de IA.

Interactions du Fediverse

1

Entrada Anterior Siguiente Entrada