返回市场
故事块-MCP

故事块-MCP

作者:ArjunCodess8 星标更新:2025-06-29

项目介绍

技术文档摘要

Storyblok MCP 服务器

即时连接 AI 工具到 Storyblok — 使用自然语言像魔法一样管理您的 CMS。

演示

<table> <tr> <td><img src="https://gips3.baidu.com/it/u=3062804061,35694212&fm=3081&app=3081&f=PNG?w=1244&h=1049" alt="演示图像 1" width="300" /></td> <td><img src="https://gips3.baidu.com/it/u=3673444042,3651383740&fm=3081&app=3081&f=PNG?w=1241&h=810" alt="演示图像 2" width="300" /></td> </tr> <tr> <td><img src="https://gips1.baidu.com/it/u=4192224574,2622285357&fm=3081&app=3081&f=PNG?w=1242&h=489" alt="演示图像 3" width="300" /></td> <td><img src="https://gips1.baidu.com/it/u=1759080654,2022654201&fm=3081&app=3081&f=PNG?w=1241&h=942" alt="演示图像 4" width="300" /></td> </tr> <tr> <td><img src="https://gips3.baidu.com/it/u=698703431,3139818120&fm=3081&app=3081&f=PNG?w=1241&h=699" alt="演示图像 5" width="300" /></td> <td><img src="https://gips2.baidu.com/it/u=2403619243,3010029923&fm=3081&app=3081&f=PNG?w=1243&h=933" alt="演示图像 6" width="300" /></td> </tr> </table>

目录


为什么这个项目?

Storyblok 无头 CMS 挑战 在 DEV.to 上构建。

目标:结合 AI 和 Storyblok 的力量,创造一些新鲜且有用的东西。


什么是 Storyblok?

Storyblok 是一个强大的无头 CMS。以 API 为中心。易于开发者和内容创作者协作。

它是模块化的,非常灵活,可以与任何前端或工作流配合使用。


什么是 MCP 服务器?

MCP = 连接 AI、工具和数据的协议。

MCP 服务器充当中间人,向 AI 展示它可以做什么以及它拥有的数据。

这使得 AI 客户端,如 Cursor 或 Claude Desktop,能够通过自然语言与 Storyblok 交互并平滑地管理内容。


我遇到的挑战

  • 为自己构建(哈哈): 从未制作或安装过 MCP。花费的时间比我想象的要长得多。

  • API 压力: 不断检查 Storyblok 的 API 文档。担心会错过什么。

  • AI 特性压力: 尝试正确实现 AI 功能而不破坏任何东西是一个头疼的问题。

  • 安全性: 必须确保在暴露 Storyblok 管理时不会泄露敏感信息。

  • 开发者体验: 让服务器易于运行、扩展和集成到 AI 工具中。没有捷径。


如何设置(对于贡献者)

  1. 克隆仓库:

    git clone https://github.com/ArjunCodess/storyblok-mcp.git
    cd storyblok-mcp
    
  2. 安装依赖项:

    pnpm install
    
  3. 运行服务器:

    pnpm start
    

如何使用(对于用户)

克隆仓库:

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

连接到 Cursor

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

  • 在相同的目录下打开 Cursor。
  • 右键点击 build/index.js 文件并点击 复制路径
  • 然后,前往 设置MCP 工具
  • 点击 新建 MCP 服务器
  • 在打开的 mcp.json 文件中粘贴以下内容,并用第二步复制的路径替换 PATH_YOU_COPIED:
    {
      "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"
          }
        }
      }
    }
    

工具

<details> <summary>1. 故事管理</summary>
  • fetch_stories
    从 Storyblok 中获取故事列表(页面、文件夹或内容条目)。支持过滤、分页和搜索。

  • get_story
    根据其 ID 获取单个故事。

  • create_story
    在 Storyblok 中创建新的故事(页面、文件夹或内容条目)。

  • update_story
    更新现有故事的内容、名称、别名或标签。

  • delete_story
    根据其 ID 删除故事。

  • publish_story
    发布故事,使其上线。

  • unpublish_story
    取消发布故事,将其从上线站点移除。

  • get_story_versions
    获取故事的所有先前版本,用于版本历史记录和回滚。

  • restore_story
    将故事恢复到先前版本。

  • import_story
    导入故事,可选指定语言代码和是否导入语言设置。

</details> <details> <summary>2. 标签管理</summary>
  • fetch_tags
    列出空间中使用的所有标签。

  • create_tag
    创建新标签。

  • create_tag_and_add_to_story
    创建标签并立即分配给故事。

  • delete_tag
    根据其 ID 删除标签。

</details> <details> <summary>3. 网络钩子管理</summary>
  • fetch_webhooks
    列出空间中注册的所有网络钩子。

  • get_webhook
    根据其 ID 获取单个网络钩子。

  • create_webhook
    创建一个新的网络钩子,该钩子将在指定的 Storyblok 事件上触发。

  • update_webhook
    更新现有网络钩子的端点、事件或其他属性。

  • delete_webhook
    根据其 ID 删除网络钩子。

</details> <details> <summary>4. 发布管理</summary>
  • fetch_releases
    列出所有发布(用于计划发布的批量内容)。

  • create_release
    创建新的发布。

  • update_release
    更新现有发布的属性,包括名称、发布时间和通知设置。

  • add_story_to_release
    将故事添加到发布中。

  • publish_release
    发布发布中的所有故事。

  • delete_release
    删除发布。

</details> <details> <summary>5. 预设管理</summary>
  • fetch_presets
    列出空间中的所有组件预设。支持分页。

  • get_preset
    根据其 ID 获取单个预设。

  • create_preset
    为组件创建具有默认值的新预设。

  • update_preset
    更新现有预设的内容、名称或外观设置。

  • delete_preset
    根据其 ID 删除预设。

</details> <details> <summary>6. 故事调度</summary>
  • fetch_story_schedulings
    获取故事调度对象(计划发布)的列表。支持过滤、分页和搜索。

  • get_story_scheduling
    根据其 ID 获取单个故事调度对象。

  • create_story_scheduling
    调度故事在特定日期和时间发布。

  • update_story_scheduling
    更新现有的故事调度(例如,更改发布时间或语言)。

  • delete_story_scheduling
    根据其 ID 删除故事调度。

</details> <details> <summary>7. 访问管理</summary>
  • fetch_access_tokens
    获取当前空间的所有访问令牌(API 密钥)。

  • get_access_token
    根据其 ID 获取单个访问令牌。

  • create_access_token
    为空间创建新的访问令牌(API 密钥)。支持公共/私有、名称、最小缓存、故事 ID 和分支 ID。

  • update_access_token
    更新现有访问令牌的属性(类型、名称、最小缓存、故事 ID、分支 ID)。

  • delete_access_token
    根据其 ID 删除访问令牌。

</details> <details> <summary>8. 资产管理</summary>
  • fetch_assets
    列出空间中的所有资产(图片、文件等)。

  • get_asset
    根据其 ID 获取单个资产。

  • delete_asset
    删除资产。

  • init_asset_upload
    开始上传新的资产。

  • complete_asset_upload
    完成资产上传过程。

</details> <details> <summary>9. 资产文件夹管理</summary>
  • fetch_asset_folders
    列出所有资产文件夹。

  • create_asset_folder
    创建新的资产文件夹。

  • update_asset_folder
    重命名资产文件夹。

  • delete_asset_folder
    删除资产文件夹。

</details> <details> <summary>10. 组件管理</summary>
  • fetch_components
    列出空间中的所有组件(内容类型)。

  • get_component
    根据其 ID 获取单个组件。

  • create_component
    创建新的组件。

  • update_component
    更新组件的模式或设置。

  • delete_component
    删除组件。

</details> <details> <summary>11. 高级故事搜索</summary>
  • search_stories
    使用高级过滤器(按别名、标签等)搜索故事。

  • get_story_by_slug
    根据其别名获取故事。

</details> <details> <summary>12. 文件夹信息</summary>
  • fetch_folders
    列出所有故事文件夹。
</details> <details> <summary>13. 数据源管理</summary>
  • fetch_datasources
    列出所有数据源(用于动态选择字段等)。

  • get_datasource
    根据其 ID 获取单个数据源。

  • create_datasource
    创建新的数据源,可选维度。

  • update_datasource
    更新现有数据源(名称、别名、维度)。

  • delete_datasource
    根据其 ID 删除数据源。

</details> <details> <summary>14. 数据源条目管理</summary>
  • fetch_datasource_entries
    列出数据源的所有条目(键值对)。

  • get_datasource_entry
    获取单个数据源条目。

  • create_datasource_entry
    在数据源中创建新的条目,可选维度值。

  • update_datasource_entry
    更新现有数据源条目。

  • delete_datasource_entry
    根据其 ID 删除数据源条目。

</details> <details> <summary>15. 实用工具</summary>
  • ping
    检查服务器和 Storyblok API 是否可达。
</details> <details> <summary>16. 组件文件夹管理</summary>
  • fetch_component_folders
    列出空间中的所有组件文件夹。

  • get_component_folder
    根据其 ID 获取单个组件文件夹。

  • create_component_folder
    创建新的组件文件夹,可选父文件夹 ID。

  • update_component_folder
    更新现有组件文件夹的名称或父文件夹 ID。

  • delete_component_folder
    根据其 ID 删除组件文件夹。

</details> <details> <summary>17. 空间角色管理</summary>
  • fetch_space_roles
    列出您 Storyblok 空间中的所有空间角色。

  • get_space_role
    根据其 ID 获取单个空间角色。

  • create_space_role
    创建具有自定义权限设置的新空间角色。

  • update_space_role
    更新现有空间角色的权限和设置。

  • delete_space_role
    根据其 ID 删除空间角色。

</details> <details> <summary>18. 空间管理</summary>
  • fetch_spaces
    列出您的帐户可访问的所有空间。支持分页。

  • get_space
    获取当前 Storyblok 空间的相关信息。

  • create_space
    创建新的空间,可选配置账单、环境和自定义选项。

  • update_space
    更新现有空间的设置,包括名称、域名、挂钩和配置选项。

  • delete_space
    根据其 ID 删除空间。

  • duplicate_space
    复制现有空间,可选复制内容和组件。

  • backup_space
    触发空间备份。

</details> <details> <summary>19. AI 工具</summary>
  • generate_alt_text
    根据内容或上下文自动为图片生成替代文本。

  • translate_story
    使用 AI 将故事的内容翻译成不同的语言。

  • generate_meta_tags
    为任何故事生成 SEO 友好的元标题和描述。

  • summarize_story
    获取故事内容的简短 AI 生成摘要。

  • tag_story_with_ai
    使用自然语言处理为故事自动生成相关标签。

</details> <details> <summary>20. 工作流管理</summary>
  • fetch_workflows
    列出空间中的所有工作流,可选分页。

  • get_workflow
    根据其 ID 获取单个工作流。

  • create_workflow
    创建具有名称和关联内容类型的新的工作流。

  • update_workflow
    更新现有工作流的名称或内容类型。

  • duplicate_workflow
    创建现有工作流的副本,具有新的名称和内容类型。

  • delete_workflow
    根据其 ID 删除工作流。

</details> <details> <summary>21. 工作流阶段管理</summary>
  • fetch_workflow_stages
    列出空间中定义的所有工作流阶段。

  • get_workflow_stage
    根据其 ID 获取单个工作流阶段。

  • create_workflow_stage
    创建具有权限和设置的新工作流阶段。

  • update_workflow_stage
    更新现有工作流阶段的权限、名称、颜色或位置。

  • delete_workflow_stage
    根据其 ID 删除工作流阶段。

</details> <details> <summary>22. 工作流阶段变更管理</summary>
  • fetch_workflow_stage_changes
    列出所有工作流阶段变更,可选按故事 ID 过滤。

  • get_workflow_stage_change
    根据其 ID 获取单个工作流阶段变更。

  • create_workflow_stage_change
    创建新的工作流阶段变更,通过将故事分配给特定的工作流阶段。

</details> <details> <summary>23. 管道(分支)管理</summary>
  • fetch_branches
    列出空间中的所有管道分支。支持分页。

  • get_branch
    根据其 ID 获取单个分支。

  • create_branch
    创建新的分支,可选名称、源分支、URL 和位置。

  • update_branch
    更新现有分支的属性,如名称、源、URL 或位置。

  • delete_branch
    根据其 ID 删除分支。

  • deploy_branch
    手动触发分支部署。

  • get_branch_stories
    列出特定分支内的所有故事。支持过滤和分页。

  • compare_branches
    比较两个分支之间的内容以查看差异。

  • copy_stories_between_branches
    从一个分支复制故事到另一个分支。

</details> <details> <summary>24. 分支部署管理</summary>
  • fetch_branch_deployments
    列出空间中的所有分支部署。支持分页。

  • create_branch_deployment
    创建新的