Storyblok MCP Server

Gestiona tu Storyblok CMS usando lenguaje natural a través de herramientas de IA.

Documentación

Servidor MCP de Storyblok

Conecta herramientas de IA a Storyblok al instante: usa lenguaje natural para gestionar tu CMS como por arte de magia.

Demo

Demo Image 1Demo Image 2
Demo Image 3Demo Image 4
Demo Image 5Demo Image 6

Tabla de Contenidos


¿Por Qué Este Proyecto?

Creado para el Desafío de CMS Headless de Storyblok en DEV.to.

El objetivo: combinar el poder de la IA y Storyblok, crear algo fresco y útil.


¿Qué es Storyblok?

Storyblok es un potente CMS headless. API-first. Fácil para que desarrolladores y creadores de contenido trabajen juntos.

Es modular, súper flexible y se adapta a cualquier frontend o flujo de trabajo que quieras.


¿Qué es un Servidor MCP?

MCP = un protocolo que conecta IA, herramientas y datos.

El servidor MCP actúa como intermediario, mostrando a la IA qué puede hacer y qué datos tiene.

Esto permite que clientes de IA, como Cursor o Claude Desktop, interactúen con Storyblok mediante lenguaje natural y gestionen contenido sin problemas.


Desafíos que Enfrenté

  • Creado para mí mismo (jaja): Nunca había creado ni instalado un MCP antes. Me tomó mucho más tiempo del que pensé.

  • Estrés con la API: Revisaba la documentación de la API de Storyblok una y otra vez. Con miedo de perderme algo.

  • Presión con la IA: Intentar que las funciones de IA funcionaran bien sin romper nada fue un dolor de cabeza.

  • Seguridad: Tuve que asegurarme de que no se filtrara información sensible al exponer la gestión de Storyblok.

  • Experiencia de desarrollador: Hice que el servidor fuera fácil de ejecutar, ampliar y conectar con herramientas de IA. Sin atajos.


Cómo Configurar (Para Colaboradores)

  1. Clona el repositorio:

    git clone https://github.com/ArjunCodess/storyblok-mcp.git
    cd storyblok-mcp
    
  2. Instala las dependencias:

    pnpm install
    
  3. Ejecuta el servidor:

    pnpm start
    

Cómo Usar (Para Usuarios)

Clona el repositorio:

git clone https://github.com/ArjunCodess/storyblok-mcp.git
cd storyblok-mcp

Conéctalo con Cursor

https://github.com/user-attachments/assets/98b77544-81c4-49b3-8dc2-14849e6ba7e5

  • Abre Cursor en el mismo directorio.
  • Haz clic derecho en el archivo build/index.js y haz clic en Copiar Ruta.
  • Ahora, ve a Configuración → Herramientas MCP.
  • Haz clic en Nuevo Servidor MCP.
  • Dentro del archivo mcp.json que se abre, pega esto y reemplaza PATH_YOU_COPIED con la ruta copiada en el segundo paso:
    {
      "mcpServers": {
        "storyblok": {
          "command": "node PATH_YOU_COPIED",
          "env": {
            "STORYBLOK_SPACE_ID": "your_space_id",
            "STORYBLOK_MANAGEMENT_TOKEN": "your_management_token",
            "STORYBLOK_DEFAULT_PUBLIC_TOKEN": "your_public_token",
            "GOOGLE_GENERATIVE_AI_API_KEY": "your_gemini_ai_api_key"
          }
        }
      }
    }
    

Herramientas

1. Gestión de Historias
  • fetch_stories
    Recupera una lista de historias (páginas, carpetas o entradas de contenido) de Storyblok. Admite filtrado, paginación y búsqueda.

  • get_story
    Obtiene una sola historia por su ID.

  • create_story
    Crea una nueva historia (página, carpeta o entrada de contenido) en Storyblok.

  • update_story
    Actualiza el contenido, nombre, slug o etiquetas de una historia existente.

  • delete_story
    Elimina una historia por su ID.

  • publish_story
    Publica una historia, haciéndola visible.

  • unpublish_story
    Despublica una historia, eliminándola del sitio en vivo.

  • get_story_versions
    Recupera todas las versiones anteriores de una historia para el historial de versiones y la reversión.

  • restore_story
    Restaura una historia a una versión anterior.

  • import_story
    Importa una historia, especificando opcionalmente el código de idioma y si se deben importar las configuraciones de idioma.

2. Gestión de Etiquetas
  • fetch_tags
    Lista todas las etiquetas utilizadas en el espacio.

  • create_tag
    Crea una nueva etiqueta.

  • create_tag_and_add_to_story
    Crea una etiqueta y la asigna inmediatamente a una historia.

  • delete_tag
    Elimina una etiqueta por su ID.

3. Gestión de Webhooks
  • fetch_webhooks
    Lista todos los webhooks registrados en el espacio.

  • get_webhook
    Obtiene un solo webhook por su ID.

  • create_webhook
    Crea un nuevo webhook que se activará con eventos específicos de Storyblok.

  • update_webhook
    Actualiza el endpoint, eventos u otras propiedades de un webhook existente.

  • delete_webhook
    Elimina un webhook por su ID.

4. Gestión de Lanzamientos
  • fetch_releases
    Lista todos los lanzamientos (lotes de contenido para publicación programada).

  • create_release
    Crea un nuevo lanzamiento.

  • update_release
    Actualiza las propiedades de un lanzamiento existente, incluidos nombre, hora de lanzamiento y configuraciones de notificación.

  • add_story_to_release
    Añade una historia a un lanzamiento.

  • publish_release
    Publica todas las historias de un lanzamiento.

  • delete_release
    Elimina un lanzamiento.

5. Gestión de Ajustes Preestablecidos
  • fetch_presets
    Lista todos los ajustes preestablecidos de componentes en el espacio. Admite paginación.

  • get_preset
    Obtiene un solo ajuste preestablecido por su ID.

  • create_preset
    Crea un nuevo ajuste preestablecido con valores predeterminados para un componente.

  • update_preset
    Actualiza el contenido, nombre o configuración de apariencia de un ajuste preestablecido existente.

  • delete_preset
    Elimina un ajuste preestablecido por su ID.

6. Programación de Historias
  • fetch_story_schedulings
    Recupera una lista de objetos de programación de historias (publicaciones programadas) para historias. Admite filtrado, paginación y búsqueda.

  • get_story_scheduling
    Obtiene un solo objeto de programación de historia por su ID.

  • create_story_scheduling
    Programa una historia para que se publique en una fecha y hora específicas.

  • update_story_scheduling
    Actualiza una programación de historia existente (por ejemplo, cambia la hora de publicación o el idioma).

  • delete_story_scheduling
    Elimina una programación de historia por su ID.

7. Gestión de Accesos
  • fetch_access_tokens
    Recupera todos los tokens de acceso (claves API) para el espacio actual.

  • get_access_token
    Obtiene un solo token de acceso por su ID.

  • create_access_token
    Crea un nuevo token de acceso (clave API) para el espacio. Admite público/privado, nombre, min_cache, story_ids y branch_id.

  • update_access_token
    Actualiza las propiedades de un token de acceso existente (tipo, nombre, min_cache, story_ids, branch_id).

  • delete_access_token
    Elimina un token de acceso por su ID.

8. Gestión de Archivos
  • fetch_assets
    Lista todos los archivos (imágenes, documentos, etc.) en el espacio.

  • get_asset
    Obtiene un solo archivo por su ID.

  • delete_asset
    Elimina un archivo.

  • init_asset_upload
    Inicia la carga de un nuevo archivo.

  • complete_asset_upload
    Completa el proceso de carga del archivo.

9. Gestión de Carpetas de Archivos
  • fetch_asset_folders
    Lista todas las carpetas de archivos.

  • create_asset_folder
    Crea una nueva carpeta de archivos.

  • update_asset_folder
    Renombra una carpeta de archivos.

  • delete_asset_folder
    Elimina una carpeta de archivos.

10. Gestión de Componentes
  • fetch_components
    Lista todos los componentes (tipos de contenido) en el espacio.

  • get_component
    Obtiene un solo componente por su ID.

  • create_component
    Crea un nuevo componente.

  • update_component
    Actualiza el esquema o la configuración de un componente.

  • delete_component
    Elimina un componente.

11. Búsqueda Avanzada de Historias
  • search_stories
    Busca historias usando filtros avanzados (por slug, etiqueta, etc.).

  • get_story_by_slug
    Obtiene una historia por su slug.

12. Información de Carpetas
  • fetch_folders
    Lista todas las carpetas de historias.
13. Gestión de Fuentes de Datos
  • fetch_datasources
    Lista todas las fuentes de datos (para campos de selección dinámicos, etc.).

  • get_datasource
    Obtiene una sola fuente de datos por su ID.

  • create_datasource
    Crea una nueva fuente de datos con dimensiones opcionales.

  • update_datasource
    Actualiza una fuente de datos existente (nombre, slug, dimensiones).

  • delete_datasource
    Elimina una fuente de datos por su ID.

14. Gestión de Entradas de Fuentes de Datos
  • fetch_datasource_entries
    Lista todas las entradas (pares clave-valor) de una fuente de datos.

  • get_datasource_entry
    Obtiene una sola entrada de fuente de datos.

  • create_datasource_entry
    Crea una nueva entrada en una fuente de datos con valores de dimensión opcionales.

  • update_datasource_entry
    Actualiza una entrada de fuente de datos existente.

  • delete_datasource_entry
    Elimina una entrada de fuente de datos por su ID.

15. Utilidades
  • ping
    Comprueba si el servidor y la API de Storyblok son accesibles.
16. Gestión de Carpetas de Componentes
  • fetch_component_folders
    Lista todas las carpetas de componentes en el espacio.

  • get_component_folder
    Obtiene una sola carpeta de componentes por su ID.

  • create_component_folder
    Crea una nueva carpeta de componentes con ID de padre opcional.

  • update_component_folder
    Actualiza el nombre o el ID de padre de una carpeta de componentes existente.

  • delete_component_folder
    Elimina una carpeta de componentes por su ID.

17. Gestión de Roles de Espacio
  • fetch_space_roles
    Lista todos los roles de espacio en tu espacio de Storyblok.

  • get_space_role
    Obtiene un solo rol de espacio por su ID.

  • create_space_role
    Crea un nuevo rol de espacio con configuraciones de permisos personalizadas.

  • update_space_role
    Actualiza los permisos y la configuración de un rol de espacio existente.

  • delete_space_role
    Elimina un rol de espacio por su ID.

18. Gestión de Espacios
  • fetch_spaces
    Lista todos los espacios accesibles para tu cuenta. Admite paginación.

  • get_space
    Obtiene información sobre el espacio actual de Storyblok.

  • create_space
    Crea un nuevo espacio con configuración opcional para facturación, entornos y opciones personalizadas.

  • update_space
    Actualiza la configuración de un espacio existente, incluidos nombre, dominio, hooks y opciones de configuración.

  • delete_space
    Elimina un espacio por su ID.

  • duplicate_space
    Crea una copia de un espacio existente con opciones para duplicar contenido y componentes.

  • backup_space
    Activa una copia de seguridad para un espacio.

19. Herramientas de IA
  • generate_alt_text
    Crea automáticamente texto alternativo para imágenes basado en el contenido o contexto.

  • translate_story
    Traduce el contenido de una historia a diferentes idiomas usando IA.

  • generate_meta_tags
    Genera títulos y descripciones meta optimizados para SEO en cualquier historia.

  • summarize_story
    Obtén un breve resumen generado por IA del contenido de una historia.

  • tag_story_with_ai
    Genera automáticamente etiquetas relevantes para una historia usando procesamiento de lenguaje natural.

20. Gestión de Flujos de Trabajo
  • fetch_workflows
    Lista todos los flujos de trabajo en el espacio con paginación opcional.

  • get_workflow
    Obtiene un solo flujo de trabajo por su ID.

  • create_workflow
    Crea un nuevo flujo de trabajo con nombre y tipos de contenido asociados.

  • update_workflow
    Actualiza el nombre o los tipos de contenido de un workflow existente.

  • duplicate_workflow
    Crea un duplicado de un workflow existente con un nuevo nombre y tipos de contenido.

  • delete_workflow
    Elimina un workflow por su ID.

21. Gestión de Etapas de Workflow
  • fetch_workflow_stages
    Lista todas las etapas de workflow definidas en el espacio.

  • get_workflow_stage
    Obtiene una sola etapa de workflow por su ID.

  • create_workflow_stage
    Crea una nueva etapa de workflow con permisos y configuraciones.

  • update_workflow_stage
    Actualiza los permisos, nombre, color o posición de una etapa de workflow existente.

  • delete_workflow_stage
    Elimina una etapa de workflow por su ID.

22. Gestión de Cambios de Etapa de Workflow
  • fetch_workflow_stage_changes
    Lista todos los cambios de etapa de workflow con opción de filtrar por ID de historia.

  • get_workflow_stage_change
    Obtiene un solo cambio de etapa de workflow por su ID.

  • create_workflow_stage_change
    Crea un nuevo cambio de etapa de workflow asignando una historia a una etapa de workflow específica.

23. Gestión de Pipelines (Ramas)
  • fetch_branches
    Lista todas las ramas de pipeline en el espacio. Soporta paginación.

  • get_branch
    Obtiene una sola rama por su ID.

  • create_branch
    Crea una nueva rama con opciones para nombre, rama de origen, URL y posición.

  • update_branch
    Actualiza las propiedades de una rama existente como nombre, origen, URL o posición.

  • delete_branch
    Elimina una rama por su ID.

  • deploy_branch
    Activa manualmente un despliegue de una rama.

  • get_branch_stories
    Lista todas las historias dentro de una rama específica. Soporta filtrado y paginación.

  • compare_branches
    Compara el contenido entre dos ramas para ver las diferencias.

  • copy_stories_between_branches
    Copia historias de una rama a otra.

24. Gestión de Despliegues de Rama
  • fetch_branch_deployments
    Lista todos los despliegues de rama en el espacio. Soporta paginación.

  • create_branch_deployment
    Crea un nuevo despliegue de rama con el ID de rama requerido y UUIDs de lanzamiento opcionales. Requiere que la aplicación Pipelines esté instalada.

  • get_branch_deployment
    Obtiene un solo despliegue de rama por su ID.


Cómo Contribuir

Haz un fork, realiza cambios, abre PRs. ¿Encontraste errores o quieres funciones? Abre un issue.


Enlaces Útiles


Agradecimientos

Hecho con ❤️ para el Desafío de Storyblok en DEV.to.


Licencia

MIT