Content Management Tools
Tools for creating, updating, publishing, and managing stories and components - the core of your Storyblok content.
Overview
Content management is the most frequently used category in BlokMCP, covering:
- Stories - Your actual content (blog posts, pages, products, etc.)
- Components - The schemas/templates that define content structure
- Publishing - Making content live or taking it down
- Versioning - Managing content versions and history
Total tools: 29 (Stories: 18, Components: 9, Component Folders: 2)
Stories (18 tools)
Stories are the actual content in your Storyblok space - blog posts, pages, products, etc.
Listing & Searching Stories
fetch_stories
Purpose: List or search multiple stories with powerful filtering options.
When to use:
- Get all stories in a folder
- Search for stories by text
- Filter by status (published/draft)
- Find stories by tag
- Paginate through large story sets
Common conversation examples:
Show me all blog posts from the last month
List all unpublished stories in the "news" folder
Find stories tagged with "featured" that are published
Key parameters:
starts_with- Filter by folder path (e.g., "blog/")search- Text search across contentfilter_query- Advanced filteringis_published- Filter by publication statuspage,per_page- Paginationsort_by- Sort fieldwith_tag- Filter by tag
Returns: Array of stories with pagination metadata.
get_story
Purpose: Retrieve a single story by ID.
When to use:
- Get complete details of a specific story
- Access all story fields and content
- Check current values before updating
Common conversation examples:
Show me the complete content of story ID 123456
Get the story "about-us" from the root folder
Key parameters:
story_id- The story ID (required)language- Specific language versionresolve_relations- Resolve linked storiesresolve_links- Resolve URL/Story links
Returns: Single story object with all fields.
Creating Stories
create_story
Purpose: Create a new story.
When to use:
- Create new blog posts, pages, products
- Set up content structure
- Create translations of existing content
Common conversation examples:
Create a new blog post titled "Getting Started with Storyblok"
in the "blog" folder as a draft
Create a new page called "Contact Us" with a contact_form component
Key parameters:
name- Story name (required)slug- URL slugparent_id- Parent folder IDcontent- Story content objectis_startpage- Mark as home pageis_folder- Create as folder
Returns: Newly created story object.
duplicate_story
Purpose: Duplicate an existing story.
When to use:
- Create template copies
- Start new content from existing structure
- Create translation placeholders
Common conversation examples:
Duplicate the story "Product Template" and name it "New Product Launch"
Copy the "About Us" page to create "About Us - Spanish"
Key parameters:
story_id- ID of story to duplicate (required)name- Name for the new story
Returns: Newly duplicated story object.
Updating Stories
update_story
Purpose: Update an existing story's content or metadata.
When to use:
- Edit story content
- Update metadata (title, slug, tags)
- Change story settings
- Move to different folder
Common conversation examples:
Update the story "Summer Sale" to change the headline to
"Summer Sale - 50% Off"
Change the slug of "about-us" to "about-our-company"
Add the tag "featured" to the story "New Product Launch"
Key parameters:
story_id- Story to update (required)name- Update nameslug- Update slugcontent- Update contenttag_list- Update tagsparent_id- Move to different folder
Returns: Updated story object.
Publishing Stories
publish_story
Purpose: Publish a story to make it live.
When to use:
- Make content publicly visible
- Push updates to published content
- Set publish date/time
Common conversation examples:
Publish the story "Product Launch Announcement"
Publish all stories in the "ready" folder
Key parameters:
story_id- Story to publish (required)publish_at- Schedule future publication
Returns: Published story object.
unpublish_story
Purpose: Unpublish a story (take it down but keep as draft).
When to use:
- Remove content from public view
- Temporarily hide content
- Revert to draft for major changes
Common conversation examples:
Unpublish the story "Outdated Promotion"
Take down all stories tagged "expired"
Key parameters:
story_id- Story to unpublish (required)
Returns: Unpublished story object.
Deleting Stories
delete_story
Purpose: Permanently delete a story.
When to use:
- Remove unwanted content
- Clean up test data
- Delete duplicates
Common conversation examples:
Delete the story "Test Post" from the drafts folder
Remove all stories in the "archive/2020" folder
(Ask for confirmation first)
Key parameters:
story_id- Story to delete (required)
Returns: Deleted story object.
Warning: Deletion is permanent and cannot be undone!
Story Organization
move_story
Purpose: Move a story to a different folder.
When to use:
- Reorganize content structure
- Move stories to archive
- Group related content
Common conversation examples:
Move all stories from "drafts" to "blog/2024"
Move the story "Old News" to the "archive" folder
Key parameters:
story_id- Story to move (required)parent_id- Destination folder ID
Returns: Moved story object.
Counting & Statistics
count_stories
Purpose: Get count of stories without fetching all data.
When to use:
- Get metrics and statistics
- Check folder sizes
- Monitor content volume
Common conversation examples:
How many blog posts do I have?
Count all published stories in the "products" folder
Key parameters:
- Same filters as
fetch_stories
Returns: Count number.
Components (9 tools)
Components define the structure and schema of your content types.
Listing Components
fetch_components
Purpose: List all component schemas in your space.
When to use:
- See what content types are available
- Understand space structure
- Find components to update
Common conversation examples:
Show me all component schemas in my space
List all components used in the "blog" context
Key parameters:
page,per_page- Pagination
Returns: Array of component schemas.
get_component
Purpose: Get detailed schema for a single component.
When to use:
- Inspect component fields
- Understand field types
- Check component configuration
Common conversation examples:
Show me the complete schema for the "blog_post" component
What fields are in the "product_card" component?
Key parameters:
component_id- Component ID (required)
Returns: Complete component schema object.
Creating Components
create_component
Purpose: Create a new component schema.
When to use:
- Define new content types
- Set up component structure
- Add field definitions
Common conversation examples:
Create a new component called "testimonial" with fields for
author name, quote, and photo
Add a new "faq_item" component with question and answer fields
Key parameters:
name- Component name (required)schema- Field definitionsdisplay_name- Human-readable nameis_root- Can be used as root content typeis_nestable- Can be nested in other components
Returns: Newly created component.
Updating Components
update_component
Purpose: Update an existing component schema.
When to use:
- Add new fields to component
- Remove or rename fields
- Change field types or settings
Common conversation examples:
Add a new field "author_bio" to the "blog_post" component
Update the "product" component to make the "price" field required
Key parameters:
component_id- Component to update (required)schema- Updated field definitionsname- Update component namedisplay_name- Update display name
Returns: Updated component schema.
Important: Schema changes can affect existing content. Test carefully!
Deleting Components
delete_component
Purpose: Delete a component schema.
When to use:
- Remove unused content types
- Clean up test components
Common conversation examples:
Delete the "test_component" schema
Key parameters:
component_id- Component to delete (required)
Returns: Deleted component object.
Warning: Cannot delete components that are in use by stories!
Component Folders (2 tools)
Organize components into folders for better management.
retrieve_component_groups
Purpose: List all component folders/groups.
Common conversation examples:
Show me how components are organized into folders
create_component_group
Purpose: Create a new component folder/group.
Common conversation examples:
Create a component folder called "Marketing Components"
When to Use What
Finding Content
| Goal | Best Tool | Example |
|---|---|---|
| List stories in a folder | fetch_stories with starts_with | "Show me all blog posts" |
| Search by keyword | fetch_stories with search | "Find stories about 'sustainability'" |
| Get specific story | get_story | "Show me story ID 123456" |
| Check what's published | fetch_stories with is_published | "List all published pages" |
| Count stories | count_stories | "How many blog posts do I have?" |
Managing Content
| Goal | Best Tool | Example |
|---|---|---|
| Create new content | create_story | "Create a blog post called X" |
| Update content | update_story | "Change the headline to Y" |
| Duplicate content | duplicate_story | "Copy this story" |
| Delete content | delete_story | "Delete this test story" |
| Move content | move_story | "Move to archive folder" |
Publishing
| Goal | Best Tool | Example |
|---|---|---|
| Make content live | publish_story | "Publish this blog post" |
| Take content down | unpublish_story | "Unpublish this page" |
| Schedule publishing | publish_story with publish_at | "Publish on Jan 1st" |
Schema Management
| Goal | Best Tool | Example |
|---|---|---|
| See available types | fetch_components | "What content types exist?" |
| Inspect schema | get_component | "Show me the blog schema" |
| Create new type | create_component | "Create a testimonial component" |
| Add fields | update_component | "Add author field to blog" |
| Remove schema | delete_component | "Delete test component" |
Common Patterns
Bulk Publishing
Find all stories in the "ready" folder and publish them
Uses: fetch_stories → publish_story (multiple times)
Content Migration
Find all blog posts and update them to use the new schema
Uses: fetch_stories → update_story (multiple times)
Safe Schema Updates
1. Get the current component schema
2. Add the new field
3. Test on one story
4. Roll out to all stories if successful
Uses: get_component → update_component → update_story (test) → bulk updates
Content Cleanup
Find all stories tagged "archive" that are older than 2 years
and delete them (after confirmation)
Uses: fetch_stories (with filters) → delete_story (multiple times)
Related Resources
Guides
Examples
Detailed Module Docs
- Stories Module - Complete API reference
- Components Module - Complete API reference
Tips & Best Practices
- Use filtering - Don't fetch all stories if you only need specific ones
- Test schema changes - Update one story first before bulk operations
- Leverage pagination - For large datasets, process in batches
- Be specific - The more specific your request, the better Claude can help
- Confirm deletions - Always review before deleting content permanently
Need help? Check out our Conversation Starters for ready-to-use examples!