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
Tabla de Contenidos
- Demo
- ¿Por Qué Este Proyecto?
- ¿Qué es Storyblok?
- ¿Qué es un Servidor MCP?
- Desafíos que Enfrenté
- Cómo Configurar (Para Colaboradores)
- Cómo Usar (Para Usuarios)
- Herramientas
- Cómo Contribuir
- Enlaces Útiles
- Agradecimientos
- Licencia
¿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)
-
Clona el repositorio:
git clone https://github.com/ArjunCodess/storyblok-mcp.git cd storyblok-mcp -
Instala las dependencias:
pnpm install -
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.jsy haz clic en Copiar Ruta. - Ahora, ve a Configuración → Herramientas MCP.
- Haz clic en Nuevo Servidor MCP.
- Dentro del archivo
mcp.jsonque 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