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

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

Sumário


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)

  1. Clone o repositório:

    git clone https://github.com/ArjunCodess/storyblok-mcp.git
    cd storyblok-mcp
    
  2. Instale as dependências:

    pnpm install
    
  3. 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.js e clique em Copiar caminho.
  • Agora, vá em ConfiguraçõesFerramentas MCP.
  • Clique em Novo servidor MCP.
  • Dentro do arquivo mcp.json aberto, 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