Storyblok内容管理服务器

Storyblok MCP服务器是一个内容管理平台,允许AI助手直接访问和管理Storyblok空间中的故事、组件、资产等工作流,适用于开发者和营销人员的内容管理需求。

  • by Kiran1689
  • Python
  • 本地部署
  • 41 星标
  • 更新于
在 GitHub 查看 Kiran1689/storyblok-mcp-server

使用说明

Storyblok MCP服务器🚀

Storyblok MCP(模型上下文协议)服务器使您的AI助手能够直接访问和管理您的Storyblok空间、故事、组件、资产、工作流等。

它有什么作用?

借助Storyblok MCP服务器,您的AI助手可以:

  • 创建 -创建新的故事、组件、资产、数据源、标签、发布、工作流等。
  • 阅读 -阅读您的所有故事、组件、资产、数据源、标签、发布、工作流等。
  • 更新 -更新现有/新的故事、组件、资产、数据源、标签、版本、工作流等。
  • 删除 -删除特定/所有的故事、组件、资产、数据源、标签、版本、工作流等。

🚀 特性

  • 完整的Storyblok管理:用于故事、组件、资产、数据源、标签、发布、工作流等的CRUD。(覆盖一切)
  • 模块化工具:每个Storyblok资源都由自己的工具模块管理,便于扩展和维护。
  • 元工具:在运行时发现所有可用的工具及其描述。
  • 异步&快速:基于 httpx 和 FastMCP 为了获得高性能。
  • 基于环境的配置:通过以下方式安全管理令牌和空间ID .env.
  • 批量操作:一次高效地更新、删除或发布多个资源。

📦 项目结构

├── config.py              # Loads and validates environment config
├── server.py              # Main entrypoint, registers all tools
├── tools/                 # All modular tool implementations
│   ├── components.py      # Component CRUD and usage
│   ├── stories.py         # Story CRUD, bulk ops, validation
│   ├── ...                # (assets, tags, releases, workflows, etc.)
│   └── meta.py            # Meta tool for tool discovery
├── utils/
│   └── api.py             # API helpers, error handling, URL builders
├── .env                   # Your Storyblok tokens and space ID
├── pyproject.toml         # Python dependencies
└── README.md              # This file

🚀 API覆盖范围

资源 描述
访问令牌 管理Storyblok API的访问令牌
活动 管理或检索活动日志
审批 管理审批工作流
资产 管理资产(上传、更新、删除、列出)
资产文件夹 管理资产文件夹
分支部署 管理分支部署
协作者 管理空间中的协作者
组件 管理Storyblok组件(CRUD、模式等)
组件文件夹 管理组件文件夹
数据源条目 管理数据源中的条目
数据源 管理数据源(CRUD、条目)
讨论 管理讨论和评论
扩展 管理Storyblok扩展
字段插件 管理自定义字段插件
内部标签 管理资产/故事的内部标签
Meta Meta工具:发现所有可用工具
Ping 健康检查和服务器状态
管道 管理内容交付的管道
预设 管理组件的字段预设
发布 管理发布(创建、更新、发布)
安排故事 安排故事发布
空间 管理Storyblok空间设置和信息
空间角色 管理空间中的角色和权限
故事 管理故事(CRUD、批量操作、验证)
标签 管理标签(CRUD、批量关联)
任务 管理任务(CRUD、webhooks、自动化)
管理 Web Hooks(CRUD、Trigger)
工作流 管理工作流和工作流阶段
工作流阶段 管理各个工作流阶段
工作流阶段更改 跟踪和管理工作流阶段更改

🪄 可用工具

访问令牌

Manage access tokens for Storyblok API
  • retrieve_multiple_access_tokens:列出所有访问令牌
  • create_access_token:创建新的访问令牌
  • update_access_token:更新现有访问令牌
  • delete_access_token:删除访问令牌

活动

Manage or retrieve activity logs
  • retrieve_multiple_activities:列出活动日志

审批

Manage approval workflows
  • retrieve_multiple_approvals:列出批准
  • create_approval:创建新审批
  • update_approval:更新审批
  • delete_approval:删除审批

资产

Manage assets (upload, update, delete, list)
  • fetch_assets:列出具有筛选功能的资产
  • get_asset:按ID获取特定资产
  • delete_asset:删除资产
  • update_asset:更新资产
  • delete_multiple_assets:删除多个资产
  • bulk_move_assets:移动多个资产
  • bulk_restore_assets:恢复多个资产
  • init_asset_upload:初始化资产上传
  • complete_asset_upload:完成资产上传

资产文件夹

Manage asset folders
  • retrieve_multiple_asset_folders:列出资产文件夹
  • create_asset_folder:创建新的资产文件夹
  • update_asset_folder:更新资产文件夹
  • delete_asset_folder:删除资产文件夹

分支部署

Manage branch deployments
  • retrieve_multiple_branch_deployments:列出分支部署
  • create_branch_deployment:创建新的分支部署
  • update_branch_deployment:更新分支部署
  • delete_branch_deployment:删除分支部署

合作者

Manage collaborators in a space
  • retrieve_multiple_collaborators:列出合作者
  • add_collaborator:添加合作者
  • update_collaborator:更新合作者
  • remove_collaborator:删除合作者

组件

Manage Storyblok components (CRUD, schema, etc.)
  • fetch_components:列出具有筛选功能的组件
  • get_component:按ID获取特定组件
  • create_component:创建新组件
  • update_component:更新现有组件
  • delete_component:删除组件
  • get_component_usage:使用组件查找故事
  • retrieve_component_versions:列出组件的版本
  • retrieve_single_component_version:获取特定组件版本
  • restore_component_version:将组件还原到以前的版本

组件文件夹

Manage folders for components
  • retrieve_multiple_component_folders:列出组件文件夹
  • create_component_folder:创建新的组件文件夹
  • update_component_folder:更新组件文件夹
  • delete_component_folder:删除组件文件夹

数据源条目

Manage entries in data sources
  • retrieve_multiple_datasource_entries:列出数据源条目
  • create_datasource_entry:创建新的数据源条目
  • update_datasource_entry:更新数据源条目
  • delete_datasource_entry:删除数据源条目

数据源

Manage data sources (CRUD, entries)
  • retrieve_multiple_data_sources:列出数据源
  • create_data_source:创建新的数据源
  • update_data_source:更新数据源
  • delete_data_source:删除数据源

讨论

Manage discussions and comments
  • retrieve_multiple_discussions:列出讨论
  • retrieve_specific_discussion:进行具体讨论
  • retrieve_idea_discussions_comments:列出想法讨论评论
  • create_discussion:创建新讨论
  • retrieve_my_discussions:列出我的讨论

扩展

Manage Storyblok extensions
  • retrieve_all_extensions:列出所有扩展名
  • retrieve_extension:获取特定的扩展名
  • create_extension:创建新的扩展名
  • update_extension:更新扩展名
  • delete_extension:删除扩展名
  • retrieve_extension_settings:获取扩展设置
  • retrieve_all_extension_settings:列出所有扩展设置

现场插件

Manage custom field plugins
  • retrieve_field_plugins:列出字段插件
  • retrieve_field_plugin:获取特定字段插件
  • create_field_plugin:创建新的字段插件
  • update_field_plugin:更新字段插件
  • delete_field_plugin:删除字段插件

内部标签

Manage internal tags for assets/stories
  • retrieve_multiple_internal_tags:列出内部标签
  • create_internal_tag:创建新的内部标记
  • update_internal_tag:更新内部标记
  • delete_internal_tag:删除内部标记

元

Meta tool: discover all available tools
  • list_tools:列出所有可用工具

拼

Health check and server status
  • ping:检查服务器运行状况

管道

Manage pipelines for content delivery
  • retrieve_multiple_branches:列出分支
  • retrieve_single_branch:获取特定分支
  • create_branch:创建新分支
  • update_branch:更新分支
  • delete_branch:删除分支

预设

Manage field presets for components
  • retrieve_multiple_presets:列出字段预设
  • retrieve_single_preset:获取特定预设
  • create_preset:创建新预设
  • update_preset:更新预设
  • delete_preset:删除预设

发布

Manage releases (create, update, publish)
  • retrieve_multiple_releases:列表发布
  • retrieve_single_release:获取特定版本
  • create_release:创建新版本
  • update_release:更新版本
  • delete_release:删除发布

安排故事

Schedule stories for publishing
  • retrieve_multiple_story_schedules:列出故事时间表
  • retrieve_one_story_schedule:获取具体的故事时间表
  • create_story_schedule:创建新的故事时间表
  • update_story_schedule:更新故事时间表
  • delete_story_schedule:删除故事日程表

太空

Manage Storyblok space settings and info
  • fetch_spaces:列出空格
  • get_space:获取特定空间
  • create_space:创建新空间
  • update_space:更新空间
  • duplicate_space:复制空格
  • backup_space:备份空间
  • delete_space:删除空格

空间角色

Manage roles and permissions in a space
  • fetch_space_roles:列出空间角色
  • get_space_role:获取特定的空间角色
  • create_space_role:创建新的空间角色
  • update_space_role:更新空间角色
  • delete_space_role:删除空间角色

故事

Manage stories (CRUD, bulk ops, validation)
  • fetch_stories:使用筛选功能列出故事
  • get_story:按ID获取特定故事
  • create_story:创建新故事
  • update_story:更新现有故事
  • delete_story:删除故事
  • publish_story:发布一个故事
  • unpublish_story:取消发布故事
  • get_story_versions:列出故事的版本
  • restore_story:将故事还原到以前的版本
  • validate_story_content:验证故事内容
  • debug_story_access:调试故事的访问权限
  • bulk_publish_stories:发布多个故事
  • bulk_delete_stories:删除多个故事
  • bulk_update_stories:更新多个故事
  • bulk_create_stories:创建多个故事
  • get_unpublished_dependencies:列出未发布的依赖项
  • ai_translate_story:AI驱动的故事翻译
  • compare_story_versions:比较一个故事的两个版本

标签

Manage tags (CRUD, bulk association)
  • retrieve_multiple_tags:列表标签
  • create_tag:创建新标记
  • update_tag:更新标签
  • delete_tag:删除标记
  • tag_bulk_association:为多个故事添加标签

任务

Manage tasks (CRUD, webhooks, automation)
  • retrieve_multiple_tasks:列出任务
  • retrieve_single_task:获取特定任务
  • create_task:创建新任务
  • update_task:更新任务
  • delete_task:删除任务

网页插件

Manage webhooks (CRUD, trigger)
  • retrieve_multiple_webhooks网页挂钩列表
  • retrieve_single_webhook:获取特定的webhook
  • add_webhook添加一个新的 webhook
  • update_webhook:更新webhook
  • delete_webhook删除网页挂钩

工作流

Manage workflows and workflow stages
  • retrieve_multiple_workflows:列出工作流
  • retrieve_single_workflow:获取特定的工作流程
  • create_workflow:创建新工作流
  • update_workflow:更新工作流
  • duplicate_workflow:复制工作流
  • delete_workflow:删除工作流

工作流阶段

Manage individual workflow stages
  • retrieve_multiple_workflow_stages:列出工作流阶段
  • retrieve_single_workflow_stage:获取特定的工作流程阶段
  • create_workflow_stage:创建新的工作流阶段
  • update_workflow_stage:更新工作流阶段
  • delete_workflow_stage:删除工作流阶段

工作流阶段更改

Track and manage workflow stage changes
  • retrieve_multiple_workflow_stage_changes:列出工作流阶段更改
  • create_workflow_stage_change:创建工作流阶段更改

⚡️ 快速启动

  1. 克隆仓库

    git clone <your-repo-url>
    cd storyblok-mcp-server
    
  2. 安装依赖项

    pip install -r requirements.txt
    
  3. 配置您的环境

    • 复制 .env.example 向 .env 并填写您的Storyblok凭据:
      STORYBLOK_SPACE_ID=your_space_id
      STORYBLOK_MANAGEMENT_TOKEN=your_management_token
      STORYBLOK_DEFAULT_PUBLIC_TOKEN=your_public_token
      
  4. MCP客户端配置

    • 要将此服务器与Claude或任何MCP客户端一起使用,请将以下内容复制到您的 claude_desktop_config.json:
{
    "mcpServers": {
        "storyblok": {
            "command": "uv",
            "args": [
                "run",
                "--with",
                "mcp",
                "mcp",
                "run",
                "C:\\path\\to\\storyblok-mcp-server\\server.py"
            ],
            "env": {
                "STORYBLOK_SPACE_ID": "your_space_id",
                "STORYBLOK_MANAGEMENT_TOKEN": "your_management_token",
                "STORYBLOK_DEFAULT_PUBLIC_TOKEN": "your_public_token"
            }
        }
    }
}
  • 将此配置粘贴到您的Claude或MCP客户端以立即连接。

[!注意] 确保您已安装 uv 在您的系统上

重新启动克劳德桌面并检查工具。如果您成功连接,它将显示可用工具的总数。

  1. 在本地运行和测试
    • 您还可以使用MCP Inspector在本地运行和测试服务器:
    mcp run server.py
    

示例问题

[!提示] 以下是您可以使用MCP客户端尝试的一些自然语言查询。

  • “向我展示storyblok的所有故事”
  • “给我关于家庭故事的详细信息”
  • “用任何内容创建新故事”
  • “发布主页故事”

🧑‍💻 贡献

我们欢迎捐款!开始:

  1. 分叉回购 并从以下位置创建分支 master.
  2. 添加或改进工具 在 tools/ 目录。
  3. 编写清晰的文档字符串 并保持代码模块化。
  4. 使用MCP检查器 用于调试
  5. 打开拉取请求 清楚地描述您的更改。

编码指南

  • 对所有函数和类使用类型提示和文档字符串。
  • 让每个工具专注于一个Storyblok资源。
  • 优雅地处理API错误并返回信息性消息。
  • 保持 .env 文件不受版本控制。

🤝 鸣谢

内置于 Storyblok 和 FastMCP.


📄 许可证

MIT许可证。看 许可证 了解详情。


💬 问题与支持

  • 对于问题,请打开GitHub问题。
  • 对于功能请求,请打开讨论或PR。
  • 有关Storyblok API文档,请参阅 Storyblok API参考.

内置于💙 靠近 基兰