Skip to content

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 content
  • filter_query - Advanced filtering
  • is_published - Filter by publication status
  • page, per_page - Pagination
  • sort_by - Sort field
  • with_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 version
  • resolve_relations - Resolve linked stories
  • resolve_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 slug
  • parent_id - Parent folder ID
  • content - Story content object
  • is_startpage - Mark as home page
  • is_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 name
  • slug - Update slug
  • content - Update content
  • tag_list - Update tags
  • parent_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 definitions
  • display_name - Human-readable name
  • is_root - Can be used as root content type
  • is_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 definitions
  • name - Update component name
  • display_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

GoalBest ToolExample
List stories in a folderfetch_stories with starts_with"Show me all blog posts"
Search by keywordfetch_stories with search"Find stories about 'sustainability'"
Get specific storyget_story"Show me story ID 123456"
Check what's publishedfetch_stories with is_published"List all published pages"
Count storiescount_stories"How many blog posts do I have?"

Managing Content

GoalBest ToolExample
Create new contentcreate_story"Create a blog post called X"
Update contentupdate_story"Change the headline to Y"
Duplicate contentduplicate_story"Copy this story"
Delete contentdelete_story"Delete this test story"
Move contentmove_story"Move to archive folder"

Publishing

GoalBest ToolExample
Make content livepublish_story"Publish this blog post"
Take content downunpublish_story"Unpublish this page"
Schedule publishingpublish_story with publish_at"Publish on Jan 1st"

Schema Management

GoalBest ToolExample
See available typesfetch_components"What content types exist?"
Inspect schemaget_component"Show me the blog schema"
Create new typecreate_component"Create a testimonial component"
Add fieldsupdate_component"Add author field to blog"
Remove schemadelete_component"Delete test component"

Common Patterns

Bulk Publishing

Find all stories in the "ready" folder and publish them

Uses: fetch_storiespublish_story (multiple times)

Content Migration

Find all blog posts and update them to use the new schema

Uses: fetch_storiesupdate_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_componentupdate_componentupdate_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)


Guides

Examples

Detailed Module Docs


Tips & Best Practices

  1. Use filtering - Don't fetch all stories if you only need specific ones
  2. Test schema changes - Update one story first before bulk operations
  3. Leverage pagination - For large datasets, process in batches
  4. Be specific - The more specific your request, the better Claude can help
  5. Confirm deletions - Always review before deleting content permanently

Need help? Check out our Conversation Starters for ready-to-use examples!

BlokMCP logo
BlokMCP

Give your AI assistants safe, structured access to Storyblok so content teams can move faster.

Status

Operational insights

Monitor usage, limits, and connection health in your dashboard.

© 2026 BlokMCP. All rights reserved.

Built for teams who ship content with AI.