返回 MCP 目录
public公开dns本地运行

storyblok-mcp

Storyblok MCP服务器是一个连接AI工具与Storyblok CMS的中间件,通过自然语言实现内容管理自动化。

article

README

🚀 Storyblok MCP 服务器

将 AI 工具与 Storyblok 即时连接,使用自然语言如魔法般管理你的内容管理系统(CMS)。

🚀 快速开始

本项目旨在将 AI 与 Storyblok 的强大功能相结合,实现通过自然语言与 Storyblok 进行交互,以管理内容。下面为你介绍使用和贡献此项目的相关内容。

✨ 主要特性

  • 即时连接:可快速将 AI 工具与 Storyblok 连接起来。
  • 自然语言交互:允许通过自然语言管理 Storyblok 的内容,操作更加便捷。
  • 多功能支持:提供故事管理、标签管理、发布管理等多种功能。

📦 安装指南

贡献者安装步骤

  1. 克隆仓库
git clone https://github.com/ArjunCodess/storyblok-mcp.git
cd storyblok-mcp
  1. 安装依赖
pnpm install
  1. 启动服务器
pnpm start

💻 使用示例

普通用户使用步骤

克隆仓库

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

与 Cursor 连接

点击查看连接视频

  • 在同一目录下打开 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"
            }
        }
    }
}

📚 详细文档

项目背景

本项目是为 DEV.to 上的 Storyblok Headless CMS 挑战赛 而构建的。目标是将 AI 和 Storyblok 的力量结合起来,创造出新颖且实用的东西。

什么是 Storyblok?

Storyblok 是一个强大的无头内容管理系统(CMS),采用 API 优先的设计理念,便于开发人员和内容创作者协同工作。它具有模块化、高度灵活的特点,可适配任何前端框架或工作流程。

什么是 MCP 服务器?

MCP 是一种连接 AI、工具和数据的协议。MCP 服务器充当中间人角色,向 AI 展示其功能和可用数据。这使得诸如 Cursor 或 Claude Desktop 等 AI 客户端能够通过自然语言与 Storyblok 进行交互,流畅地管理内容。

面临的挑战

  • 个人开发经验不足:此前从未创建或安装过 MCP,花费的时间远超预期。
  • API 文档查阅压力:需要反复查阅 Storyblok 的 API 文档,担心遗漏重要信息。
  • AI 功能实现难题:在不破坏系统的前提下实现 AI 功能是一项令人头疼的任务。
  • 安全问题:在开放 Storyblok 管理功能的同时,必须确保不泄露敏感信息。
  • 开发者体验优化:要确保服务器易于运行、扩展,并能顺利集成到 AI 工具中。

工具功能介绍

1. 故事管理

| 功能 | 详情 | | ---- | ---- | | fetch_stories | 从 Storyblok 检索故事(页面、文件夹或内容条目)列表,支持过滤、分页和搜索。 | | get_story | 按故事 ID 获取单个故事。 | | create_story | 在 Storyblok 中创建新的故事(页面、文件夹或内容条目)。 | | update_story | 更新现有故事的内容、名称、slug 或标签。 | | delete_story | 按故事 ID 删除故事。 | | publish_story | 发布故事,使其上线。 | | unpublish_story | 取消发布故事,将其从在线网站中移除。 | | get_story_versions | 检索故事的所有先前版本,用于版本历史记录和回滚。 | | restore_story | 将故事恢复到先前版本。 |

2. 标签管理

| 功能 | 详情 | | ---- | ---- | | fetch_tags | 列出空间中使用的所有标签。 | | create_tag | 创建新标签。 | | create_tag_and_add_to_story | 创建标签并立即将其分配给故事。 | | delete_tag | 按标签 ID 删除标签。 |

3. 发布管理

| 功能 | 详情 | | ---- | ---- | | fetch_releases | 列出所有发布(用于计划发布的内容批次)。 | | create_release | 创建新的发布。 | | add_story_to_release | 将故事添加到发布中。 | | publish_release | 发布发布中的所有故事。 | | delete_release | 删除发布。 |

4. 资产管理

| 功能 | 详情 | | ---- | ---- | | fetch_assets | 列出空间中的所有资产(如图像、文件等)。 | | get_asset | 按资产 ID 获取单个资产。 | | delete_asset | 删除资产。 | | init_asset_upload | 开始上传新资产。 | | complete_asset_upload | 完成资产上传过程。 |

5. 资产文件夹管理

| 功能 | 详情 | | ---- | ---- | | fetch_asset_folders | 列出所有资产文件夹。 | | create_asset_folder | 创建新的资产文件夹。 | | update_asset_folder | 重命名资产文件夹。 | | delete_asset_folder | 删除资产文件夹。 |

6. 组件管理

| 功能 | 详情 | | ---- | ---- | | fetch_components | 列出空间中的所有组件(内容类型)。 | | get_component | 按组件 ID 获取单个组件。 | | create_component | 创建新组件。 | | update_component | 更新组件的架构或设置。 | | delete_component | 删除组件。 |

7. 高级故事搜索

| 功能 | 详情 | | ---- | ---- | | search_stories | 使用高级过滤器(如按 slug、标签等)搜索故事。 | | get_story_by_slug | 按故事的 slug 获取故事。 |

8. 空间与文件夹信息

| 功能 | 详情 | | ---- | ---- | | get_space | 获取当前 Storyblok 空间的信息。 | | fetch_folders | 列出所有故事文件夹。 | | fetch_datasources | 列出所有数据源(用于动态选择字段等)。 |

9. 实用工具

| 功能 | 详情 | | ---- | ---- | | ping | 检查服务器和 Storyblok API 是否可达。 |

10. AI 工具

| 功能 | 详情 | | ---- | ---- | | generate_alt_text | 根据内容或上下文自动为图像创建替代文本。 | | translate_story | 使用 AI 将故事内容翻译成不同语言。 | | generate_meta_tags | 为任何故事生成 SEO 友好的元标题和描述。 | | summarize_story | 获取故事内容的 AI 生成简要摘要。 | | tag_story_with_ai | 使用自然语言处理为故事自动生成相关标签。 |

🔧 技术细节

本项目构建了一个 MCP 服务器,作为 AI 与 Storyblok 之间的中间层。通过该服务器,AI 客户端可以通过自然语言与 Storyblok 进行交互,实现对内容的管理。在实现过程中,需要处理与 Storyblok API 的交互、AI 功能的集成以及安全等方面的问题。

🤝 如何贡献

如果你想为项目做出贡献,可以进行以下操作:

  • 代码贡献: Fork 仓库,进行修改后提交拉取请求(PR)。
  • 问题反馈: 如果你发现了 bug 或有新功能需求,请在仓库中创建一个 issue。

🔗 有用链接

🙏 致谢

本项目是为 DEV.to Storyblok 挑战赛 满怀热情打造的。

📄 许可证

本项目采用 MIT 许可证。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端