Storyblok MCP Server
Connects AI tools to Storyblok CMS, allowing users to manage content through natural language commands for tasks like story management, asset handling, and AI-powered content operations.
README
Storyblok MCP Server
Connect AI tools to Storyblok instantly - use natural language to manage your CMS like magic.
Demo
<table> <tr> <td><img src="https://github.com/user-attachments/assets/e3f3ae2b-2774-406d-a952-8994b9618202" alt="Demo Image 1" width="300" /></td> <td><img src="https://github.com/user-attachments/assets/3d6b6a34-70eb-4c57-99b7-c81d091f47ff" alt="Demo Image 2" width="300" /></td> <td><img src="https://github.com/user-attachments/assets/960ff18e-537a-4a82-89bc-0f5b0e56f68f" alt="Demo Image 3" width="300" /></td> </tr> <tr> <td><img src="https://github.com/user-attachments/assets/cae92c66-43c7-4b64-a08d-d868f50566b5" alt="Demo Image 4" width="300" /></td> <td><img src="https://github.com/user-attachments/assets/2ecffada-e5ea-4008-8070-c579e0d28b10" alt="Demo Image 5" width="300" /></td> <td><img src="https://github.com/user-attachments/assets/e49d6c52-a805-4044-91dc-e1ed6d19df68" alt="Demo Image 6" width="300" /></td> </tr> </table>
Table of Contents
- Demo
- Why This Project?
- What is Storyblok?
- What's an MCP Server?
- Challenges I Faced
- How to Set Up (For Contributors)
- How to Use (For Users)
- Tools
- How to Contribute
- Useful Links
- Thanks
- License
Why This Project?
Built for the Storyblok Headless CMS Challenge on DEV.to.
The goal: push AI and Storyblok's power together, make something fresh and useful.
What is Storyblok?
Storyblok is a powerful headless CMS. API-first. Easy for devs and content creators to work together.
It's modular, super flexible, and fits with any frontend or workflow you want.
What's an MCP Server?
MCP = a protocol that connects AI, tools, and data.
The MCP server acts as a middleman, showing AI what it can do and what data it has.
This enables AI clients, such as Cursor or Claude Desktop, to interact with Storyblok through natural language and manage content smoothly.
Challenges I Faced
-
Built for myself (lol): Never made or installed an MCP before. Took way longer than I thought.
-
API stress: Kept checking Storyblok's API docs again and again. Scared I'd miss something.
-
AI stuff pressure: Trying to get AI features right without breaking things was a headache.
-
Security: Had to make sure no sensitive info leaks while exposing Storyblok management.
-
Developer experience: Made the server easy to run, extend, and plug into AI tools. No shortcuts.
How to Set Up (For Contributors)
-
Clone the repo:
git clone https://github.com/ArjunCodess/storyblok-mcp.git cd storyblok-mcp -
Install dependencies:
pnpm install -
Run the server:
pnpm start
How to Use (For Users)
Clone the repo:
git clone https://github.com/ArjunCodess/storyblok-mcp.git
cd storyblok-mcp
Connect with Cursor
https://github.com/user-attachments/assets/98b77544-81c4-49b3-8dc2-14849e6ba7e5
- Open Cursor in the same directory.
- Right click on
build/index.jsfile and click Copy Path. - Now, go to Settings → MCP Tools.
- Click on New MCP Server
- Inside the opened
mcp.jsonfile. Paste this and replace PATH_YOU_COPIED with the path copied in the second step:{ "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" } } } }
Tools
<details> <summary>1. Story Management</summary>
-
fetch_stories
Retrieve a list of stories (pages, folders, or content entries) from Storyblok. Supports filtering, pagination, and search. -
get_story
Fetch a single story by its ID. -
create_story
Create a new story (page, folder, or content entry) in Storyblok. -
update_story
Update an existing story's content, name, slug, or tags. -
delete_story
Delete a story by its ID. -
publish_story
Publish a story, making it live. -
unpublish_story
Unpublish a story, removing it from the live site. -
get_story_versions
Retrieve all previous versions of a story for version history and rollback. -
restore_story
Restore a story to a previous version. </details>
<details> <summary>2. Tag Management</summary>
-
fetch_tags
List all tags used in the space. -
create_tag
Create a new tag. -
create_tag_and_add_to_story
Create a tag and immediately assign it to a story. -
delete_tag
Delete a tag by its ID. </details>
<details> <summary>3. Release Management</summary>
-
fetch_releases
List all releases (content batches for scheduled publishing). -
create_release
Create a new release. -
add_story_to_release
Add a story to a release. -
publish_release
Publish all stories in a release. -
delete_release
Delete a release. </details>
<details> <summary>4. Asset Management</summary>
-
fetch_assets
List all assets (images, files, etc.) in the space. -
get_asset
Fetch a single asset by its ID. -
delete_asset
Delete an asset. -
init_asset_upload
Start uploading a new asset. -
complete_asset_upload
Complete the asset upload process. </details>
<details> <summary>5. Asset Folder Management</summary>
-
fetch_asset_folders
List all asset folders. -
create_asset_folder
Create a new asset folder. -
update_asset_folder
Rename an asset folder. -
delete_asset_folder
Delete an asset folder. </details>
<details> <summary>6. Component Management</summary>
-
fetch_components
List all components (content types) in the space. -
get_component
Fetch a single component by its ID. -
create_component
Create a new component. -
update_component
Update a component's schema or settings. -
delete_component
Delete a component. </details>
<details> <summary>7. Advanced Story Search</summary>
-
search_stories
Search for stories using advanced filters (by slug, tag, etc.). -
get_story_by_slug
Fetch a story by its slug. </details>
<details> <summary>8. Space & Folder Info</summary>
-
get_space
Get information about the current Storyblok space. -
fetch_folders
List all story folders. -
fetch_datasources
List all datasources (for dynamic select fields, etc.). </details>
<details> <summary>9. Utility</summary>
- ping
Check if the server and Storyblok API are reachable. </details>
<details> <summary>10. AI Tools</summary>
-
generate_alt_text
Automatically create alt text for images based on content or context. -
translate_story
Translate the content of a story into different languages using AI. -
generate_meta_tags
Generate SEO-friendly meta titles and descriptions for any story. -
summarize_story
Get a brief AI-generated summary of a story’s content. -
tag_story_with_ai
Auto-generate relevant tags for a story using natural language processing. </details>
How to Contribute
Fork, make changes, open PRs. Found bugs or want features? Open an issue.
Useful Links
Thanks
Made with ❤️ for the DEV.to Storyblok Challenge.
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。