Storyblok MCP Server
Gerencie seu Storyblok CMS usando linguagem natural por meio de ferramentas de IA.
Documentação
Storyblok MCP Server
Conecte ferramentas de IA ao Storyblok instantaneamente - use linguagem natural para gerenciar seu CMS como mágica.
Demonstração
Sumário
- Demonstração
- Por que este projeto?
- O que é Storyblok?
- O que é um servidor MCP?
- Desafios que enfrentei
- Como configurar (para contribuidores)
- Como usar (para usuários)
- Ferramentas
- Como contribuir
- Links úteis
- Agradecimentos
- Licença
Por que este projeto?
Feito para o Desafio Storyblok Headless CMS no DEV.to.
O objetivo: unir o poder da IA e do Storyblok, criar algo novo e útil.
O que é Storyblok?
Storyblok é um CMS headless poderoso. API-first. Fácil para desenvolvedores e criadores de conteúdo trabalharem juntos.
É modular, super flexível e se adapta a qualquer frontend ou fluxo de trabalho que você quiser.
O que é um servidor MCP?
MCP = um protocolo que conecta IA, ferramentas e dados.
O servidor MCP atua como intermediário, mostrando à IA o que ela pode fazer e quais dados possui.
Isso permite que clientes de IA, como Cursor ou Claude Desktop, interajam com o Storyblok por meio de linguagem natural e gerenciem conteúdo de forma fluida.
Desafios que enfrentei
-
Feito para mim mesmo (rs): Nunca tinha criado ou instalado um MCP antes. Levou muito mais tempo do que eu pensava.
-
Estresse com a API: Ficava consultando a documentação da API do Storyblok repetidamente. Com medo de perder algo.
-
Pressão com recursos de IA: Tentar acertar os recursos de IA sem quebrar nada foi uma dor de cabeça.
-
Segurança: Tive que garantir que nenhuma informação sensível vazasse ao expor o gerenciamento do Storyblok.
-
Experiência do desenvolvedor: Tornei o servidor fácil de executar, estender e conectar a ferramentas de IA. Sem atalhos.
Como configurar (para contribuidores)
-
Clone o repositório:
git clone https://github.com/ArjunCodess/storyblok-mcp.git cd storyblok-mcp -
Instale as dependências:
pnpm install -
Execute o servidor:
pnpm start
Como usar (para usuários)
Clone o repositório:
git clone https://github.com/ArjunCodess/storyblok-mcp.git
cd storyblok-mcp
Conecte-se com o Cursor
https://github.com/user-attachments/assets/98b77544-81c4-49b3-8dc2-14849e6ba7e5
- Abra o Cursor no mesmo diretório.
- Clique com o botão direito no arquivo
build/index.jse clique em Copiar caminho. - Agora, vá em Configurações → Ferramentas MCP.
- Clique em Novo servidor MCP.
- Dentro do arquivo
mcp.jsonaberto, cole isto e substitua PATH_YOU_COPIED pelo caminho copiado na segunda etapa:{ "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" } } } }
Ferramentas
1. Gerenciamento de Histórias
-
fetch_stories
Recupera uma lista de histórias (páginas, pastas ou entradas de conteúdo) do Storyblok. Suporta filtragem, paginação e busca. -
get_story
Busca uma única história pelo seu ID. -
create_story
Cria uma nova história (página, pasta ou entrada de conteúdo) no Storyblok. -
update_story
Atualiza o conteúdo, nome, slug ou tags de uma história existente. -
delete_story
Exclui uma história pelo seu ID. -
publish_story
Publica uma história, tornando-a ativa. -
unpublish_story
Despublica uma história, removendo-a do site ativo. -
get_story_versions
Recupera todas as versões anteriores de uma história para histórico de versões e reversão. -
restore_story
Restaura uma história para uma versão anterior. -
import_story
Importa uma história, opcionalmente especificando o código do idioma e se as configurações de idioma devem ser importadas.
2. Gerenciamento de Tags
-
fetch_tags
Lista todas as tags usadas no espaço. -
create_tag
Cria uma nova tag. -
create_tag_and_add_to_story
Cria uma tag e a atribui imediatamente a uma história. -
delete_tag
Exclui uma tag pelo seu ID.
3. Gerenciamento de Webhooks
-
fetch_webhooks
Lista todos os webhooks registrados no espaço. -
get_webhook
Busca um único webhook pelo seu ID. -
create_webhook
Cria um novo webhook que será acionado em eventos específicos do Storyblok. -
update_webhook
Atualiza o endpoint, eventos ou outras propriedades de um webhook existente. -
delete_webhook
Exclui um webhook pelo seu ID.
4. Gerenciamento de Releases
-
fetch_releases
Lista todos os releases (lotes de conteúdo para publicação agendada). -
create_release
Cria um novo release. -
update_release
Atualiza as propriedades de um release existente, incluindo nome, horário de publicação e configurações de notificação. -
add_story_to_release
Adiciona uma história a um release. -
publish_release
Publica todas as histórias de um release. -
delete_release
Exclui um release.
5. Gerenciamento de Presets
-
fetch_presets
Lista todos os presets de componentes no espaço. Suporta paginação. -
get_preset
Busca um único preset pelo seu ID. -
create_preset
Cria um novo preset com valores padrão para um componente. -
update_preset
Atualiza o conteúdo, nome ou configurações de aparência de um preset existente. -
delete_preset
Exclui um preset pelo seu ID.
6. Agendamento de Histórias
-
fetch_story_schedulings
Recupera uma lista de objetos de agendamento de histórias (publicações agendadas) para histórias. Suporta filtragem, paginação e busca. -
get_story_scheduling
Busca um único objeto de agendamento de história pelo seu ID. -
create_story_scheduling
Agenda uma história para ser publicada em uma data e hora específicas. -
update_story_scheduling
Atualiza um agendamento de história existente (por exemplo, alterar o horário de publicação ou o idioma). -
delete_story_scheduling
Exclui um agendamento de história pelo seu ID.
7. Gerenciamento de Acesso
-
fetch_access_tokens
Recupera todos os tokens de acesso (chaves de API) para o espaço atual. -
get_access_token
Busca um único token de acesso pelo seu ID. -
create_access_token
Cria um novo token de acesso (chave de API) para o espaço. Suporta público/privado, nome, min_cache, story_ids e branch_id. -
update_access_token
Atualiza as propriedades de um token de acesso existente (tipo, nome, min_cache, story_ids, branch_id). -
delete_access_token
Exclui um token de acesso pelo seu ID.
8. Gerenciamento de Ativos
-
fetch_assets
Lista todos os ativos (imagens, arquivos, etc.) no espaço. -
get_asset
Busca um único ativo pelo seu ID. -
delete_asset
Exclui um ativo. -
init_asset_upload
Inicia o upload de um novo ativo. -
complete_asset_upload
Conclui o processo de upload do ativo.
9. Gerenciamento de Pastas de Ativos
-
fetch_asset_folders
Lista todas as pastas de ativos. -
create_asset_folder
Cria uma nova pasta de ativos. -
update_asset_folder
Renomeia uma pasta de ativos. -
delete_asset_folder
Exclui uma pasta de ativos.
10. Gerenciamento de Componentes
-
fetch_components
Lista todos os componentes (tipos de conteúdo) no espaço. -
get_component
Busca um único componente pelo seu ID. -
create_component
Cria um novo componente. -
update_component
Atualiza o esquema ou as configurações de um componente. -
delete_component
Exclui um componente.
11. Busca Avançada de Histórias
-
search_stories
Busca histórias usando filtros avançados (por slug, tag, etc.). -
get_story_by_slug
Busca uma história pelo seu slug.
12. Informações de Pastas
- fetch_folders
Lista todas as pastas de histórias.
13. Gerenciamento de Datasources
-
fetch_datasources
Lista todos os datasources (para campos de seleção dinâmica, etc.). -
get_datasource
Obtém um único datasource pelo seu ID. -
create_datasource
Cria um novo datasource com dimensões opcionais. -
update_datasource
Atualiza um datasource existente (nome, slug, dimensões). -
delete_datasource
Exclui um datasource pelo seu ID.
14. Gerenciamento de Entradas de Datasource
-
fetch_datasource_entries
Lista todas as entradas (pares chave-valor) de um datasource. -
get_datasource_entry
Busca uma única entrada de datasource. -
create_datasource_entry
Cria uma nova entrada em um datasource com valores de dimensão opcionais. -
update_datasource_entry
Atualiza uma entrada de datasource existente. -
delete_datasource_entry
Exclui uma entrada de datasource pelo seu ID.
15. Utilitário
- ping
Verifica se o servidor e a API do Storyblok estão acessíveis.
16. Gerenciamento de Pastas de Componentes
-
fetch_component_folders
Lista todas as pastas de componentes no espaço. -
get_component_folder
Busca uma única pasta de componente pelo seu ID. -
create_component_folder
Cria uma nova pasta de componente com ID pai opcional. -
update_component_folder
Atualiza o nome ou o ID pai de uma pasta de componente existente. -
delete_component_folder
Exclui uma pasta de componente pelo seu ID.
17. Gerenciamento de Funções do Espaço
-
fetch_space_roles
Lista todas as funções do espaço no seu espaço Storyblok. -
get_space_role
Busca uma única função do espaço pelo seu ID. -
create_space_role
Cria uma nova função do espaço com configurações de permissões personalizadas. -
update_space_role
Atualiza as permissões e configurações de uma função do espaço existente. -
delete_space_role
Exclui uma função do espaço pelo seu ID.
18. Gerenciamento de Espaços
-
fetch_spaces
Lista todos os espaços acessíveis à sua conta. Suporta paginação. -
get_space
Obtém informações sobre o espaço Storyblok atual. -
create_space
Cria um novo espaço com configuração opcional para cobrança, ambientes e opções personalizadas. -
update_space
Atualiza as configurações de um espaço existente, incluindo nome, domínio, hooks e opções de configuração. -
delete_space
Exclui um espaço pelo seu ID. -
duplicate_space
Cria uma cópia de um espaço existente com opções para duplicar conteúdo e componentes. -
backup_space
Aciona um backup para um espaço.
19. Ferramentas de IA
-
generate_alt_text
Cria automaticamente texto alternativo para imagens com base no conteúdo ou contexto. -
translate_story
Traduz o conteúdo de uma história para diferentes idiomas usando IA. -
generate_meta_tags
Gera títulos e descrições de meta tags otimizados para SEO para qualquer história. -
summarize_story
Obtém um resumo breve gerado por IA do conteúdo de uma história. -
tag_story_with_ai
Gera automaticamente tags relevantes para uma história usando processamento de linguagem natural.
20. Gerenciamento de Fluxos de Trabalho
-
fetch_workflows
Lista todos os fluxos de trabalho no espaço com paginação opcional. -
get_workflow
Busca um único fluxo de trabalho pelo seu ID. -
create_workflow
Cria um novo fluxo de trabalho com nome e tipos de conteúdo associados. -
update_workflow
Atualize o nome ou os tipos de conteúdo de um workflow existente. -
duplicate_workflow
Crie uma duplicata de um workflow existente com um novo nome e tipos de conteúdo. -
delete_workflow
Exclua um workflow pelo seu ID.
21. Gerenciamento de Etapas de Workflow
-
fetch_workflow_stages
Liste todas as etapas de workflow definidas no espaço. -
get_workflow_stage
Busque uma etapa de workflow individual pelo seu ID. -
create_workflow_stage
Crie uma nova etapa de workflow com permissões e configurações. -
update_workflow_stage
Atualize as permissões, o nome, a cor ou a posição de uma etapa de workflow existente. -
delete_workflow_stage
Exclua uma etapa de workflow pelo seu ID.
22. Gerenciamento de Alterações de Etapas de Workflow
-
fetch_workflow_stage_changes
Liste todas as alterações de etapas de workflow com opção de filtrar por ID de história. -
get_workflow_stage_change
Busque uma alteração de etapa de workflow individual pelo seu ID. -
create_workflow_stage_change
Crie uma nova alteração de etapa de workflow atribuindo uma história a uma etapa de workflow específica.
23. Gerenciamento de Pipelines (Branches)
-
fetch_branches
Liste todas as branches de pipeline no espaço. Suporta paginação. -
get_branch
Busque uma branch individual pelo seu ID. -
create_branch
Crie uma nova branch com opções para nome, branch de origem, URL e posição. -
update_branch
Atualize as propriedades de uma branch existente, como nome, origem, URL ou posição. -
delete_branch
Exclua uma branch pelo seu ID. -
deploy_branch
Dispare manualmente uma implantação de uma branch. -
get_branch_stories
Liste todas as histórias dentro de uma branch específica. Suporta filtragem e paginação. -
compare_branches
Compare o conteúdo entre duas branches para ver as diferenças. -
copy_stories_between_branches
Copie histórias de uma branch para outra.
24. Gerenciamento de Implantações de Branch
-
fetch_branch_deployments
Liste todas as implantações de branch no espaço. Suporta paginação. -
create_branch_deployment
Crie uma nova implantação de branch com o ID da branch obrigatório e UUIDs de release opcionais. Requer o aplicativo Pipelines instalado. -
get_branch_deployment
Busque uma implantação de branch individual pelo seu ID.
Como Contribuir
Faça um fork, faça alterações, abra pull requests. Encontrou bugs ou deseja recursos? Abra uma issue.
Links Úteis
Agradecimentos
Feito com ❤️ para o Desafio Storyblok no DEV.to.
Licença
MIT