即时连接 AI 工具到 Storyblok — 使用自然语言像魔法一样管理您的 CMS。
为 Storyblok 无头 CMS 挑战 在 DEV.to 上构建。
目标:结合 AI 和 Storyblok 的力量,创造一些新鲜且有用的东西。
Storyblok 是一个强大的无头 CMS。以 API 为中心。易于开发者和内容创作者协作。
它是模块化的,非常灵活,可以与任何前端或工作流配合使用。
MCP = 连接 AI、工具和数据的协议。
MCP 服务器充当中间人,向 AI 展示它可以做什么以及它拥有的数据。
这使得 AI 客户端,如 Cursor 或 Claude Desktop,能够通过自然语言与 Storyblok 交互并平滑地管理内容。
为自己构建(哈哈): 从未制作或安装过 MCP。花费的时间比我想象的要长得多。
API 压力: 不断检查 Storyblok 的 API 文档。担心会错过什么。
AI 特性压力: 尝试正确实现 AI 功能而不破坏任何东西是一个头疼的问题。
安全性: 必须确保在暴露 Storyblok 管理时不会泄露敏感信息。
开发者体验: 让服务器易于运行、扩展和集成到 AI 工具中。没有捷径。
克隆仓库:
git clone https://github.com/ArjunCodess/storyblok-mcp.git
cd storyblok-mcp
安装依赖项:
pnpm install
运行服务器:
pnpm start
git clone https://github.com/ArjunCodess/storyblok-mcp.git
cd storyblok-mcp
https://github.com/user-attachments/assets/98b77544-81c4-49b3-8dc2-14849e6ba7e5
build/index.js 文件并点击 复制路径。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"
}
}
}
}
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
导入故事,可选指定语言代码和是否导入语言设置。
fetch_tags
列出空间中使用的所有标签。
create_tag
创建新标签。
create_tag_and_add_to_story
创建标签并立即分配给故事。
delete_tag
根据其 ID 删除标签。
fetch_webhooks
列出空间中注册的所有网络钩子。
get_webhook
根据其 ID 获取单个网络钩子。
create_webhook
创建一个新的网络钩子,该钩子将在指定的 Storyblok 事件上触发。
update_webhook
更新现有网络钩子的端点、事件或其他属性。
delete_webhook
根据其 ID 删除网络钩子。
fetch_releases
列出所有发布(用于计划发布的批量内容)。
create_release
创建新的发布。
update_release
更新现有发布的属性,包括名称、发布时间和通知设置。
add_story_to_release
将故事添加到发布中。
publish_release
发布发布中的所有故事。
delete_release
删除发布。
fetch_presets
列出空间中的所有组件预设。支持分页。
get_preset
根据其 ID 获取单个预设。
create_preset
为组件创建具有默认值的新预设。
update_preset
更新现有预设的内容、名称或外观设置。
delete_preset
根据其 ID 删除预设。
fetch_story_schedulings
获取故事调度对象(计划发布)的列表。支持过滤、分页和搜索。
get_story_scheduling
根据其 ID 获取单个故事调度对象。
create_story_scheduling
调度故事在特定日期和时间发布。
update_story_scheduling
更新现有的故事调度(例如,更改发布时间或语言)。
delete_story_scheduling
根据其 ID 删除故事调度。
fetch_access_tokens
获取当前空间的所有访问令牌(API 密钥)。
get_access_token
根据其 ID 获取单个访问令牌。
create_access_token
为空间创建新的访问令牌(API 密钥)。支持公共/私有、名称、最小缓存、故事 ID 和分支 ID。
update_access_token
更新现有访问令牌的属性(类型、名称、最小缓存、故事 ID、分支 ID)。
delete_access_token
根据其 ID 删除访问令牌。
fetch_assets
列出空间中的所有资产(图片、文件等)。
get_asset
根据其 ID 获取单个资产。
delete_asset
删除资产。
init_asset_upload
开始上传新的资产。
complete_asset_upload
完成资产上传过程。
fetch_asset_folders
列出所有资产文件夹。
create_asset_folder
创建新的资产文件夹。
update_asset_folder
重命名资产文件夹。
delete_asset_folder
删除资产文件夹。
fetch_components
列出空间中的所有组件(内容类型)。
get_component
根据其 ID 获取单个组件。
create_component
创建新的组件。
update_component
更新组件的模式或设置。
delete_component
删除组件。
search_stories
使用高级过滤器(按别名、标签等)搜索故事。
get_story_by_slug
根据其别名获取故事。
fetch_datasources
列出所有数据源(用于动态选择字段等)。
get_datasource
根据其 ID 获取单个数据源。
create_datasource
创建新的数据源,可选维度。
update_datasource
更新现有数据源(名称、别名、维度)。
delete_datasource
根据其 ID 删除数据源。
fetch_datasource_entries
列出数据源的所有条目(键值对)。
get_datasource_entry
获取单个数据源条目。
create_datasource_entry
在数据源中创建新的条目,可选维度值。
update_datasource_entry
更新现有数据源条目。
delete_datasource_entry
根据其 ID 删除数据源条目。
fetch_component_folders
列出空间中的所有组件文件夹。
get_component_folder
根据其 ID 获取单个组件文件夹。
create_component_folder
创建新的组件文件夹,可选父文件夹 ID。
update_component_folder
更新现有组件文件夹的名称或父文件夹 ID。
delete_component_folder
根据其 ID 删除组件文件夹。
fetch_space_roles
列出您 Storyblok 空间中的所有空间角色。
get_space_role
根据其 ID 获取单个空间角色。
create_space_role
创建具有自定义权限设置的新空间角色。
update_space_role
更新现有空间角色的权限和设置。
delete_space_role
根据其 ID 删除空间角色。
fetch_spaces
列出您的帐户可访问的所有空间。支持分页。
get_space
获取当前 Storyblok 空间的相关信息。
create_space
创建新的空间,可选配置账单、环境和自定义选项。
update_space
更新现有空间的设置,包括名称、域名、挂钩和配置选项。
delete_space
根据其 ID 删除空间。
duplicate_space
复制现有空间,可选复制内容和组件。
backup_space
触发空间备份。
generate_alt_text
根据内容或上下文自动为图片生成替代文本。
translate_story
使用 AI 将故事的内容翻译成不同的语言。
generate_meta_tags
为任何故事生成 SEO 友好的元标题和描述。
summarize_story
获取故事内容的简短 AI 生成摘要。
tag_story_with_ai
使用自然语言处理为故事自动生成相关标签。
fetch_workflows
列出空间中的所有工作流,可选分页。
get_workflow
根据其 ID 获取单个工作流。
create_workflow
创建具有名称和关联内容类型的新的工作流。
update_workflow
更新现有工作流的名称或内容类型。
duplicate_workflow
创建现有工作流的副本,具有新的名称和内容类型。
delete_workflow
根据其 ID 删除工作流。
fetch_workflow_stages
列出空间中定义的所有工作流阶段。
get_workflow_stage
根据其 ID 获取单个工作流阶段。
create_workflow_stage
创建具有权限和设置的新工作流阶段。
update_workflow_stage
更新现有工作流阶段的权限、名称、颜色或位置。
delete_workflow_stage
根据其 ID 删除工作流阶段。
fetch_workflow_stage_changes
列出所有工作流阶段变更,可选按故事 ID 过滤。
get_workflow_stage_change
根据其 ID 获取单个工作流阶段变更。
create_workflow_stage_change
创建新的工作流阶段变更,通过将故事分配给特定的工作流阶段。
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
从一个分支复制故事到另一个分支。
fetch_branch_deployments
列出空间中的所有分支部署。支持分页。
create_branch_deployment
创建新的