README Documentation
MCP Storyblok Server
A comprehensive Model Context Protocol (MCP) server for Storyblok CMS integration. This server provides tools for managing stories, assets, components, releases, and more through a well-organized, modular architecture.
Features
- Story Management: CRUD operations, publishing, versioning, and lifecycle management
- Asset Management: Upload workflows, organization, and folder management
- Component Management: Block/component schema management and updates
- Tag Management: Organization and categorization of content
- Release Management: Scheduled publishing workflows
- Content Search: Advanced filtering and content discovery
- Space Management: Space-level operations and metadata
Architecture
The server follows a modular architecture with clear separation of concerns:
src/
├── config/ # Configuration and environment setup
├── types/ # TypeScript type definitions
├── utils/ # Shared utilities and API helpers
├── tools/ # Tool implementations organized by feature
│ ├── ping.ts # Health check
│ ├── stories.ts # Story management
│ ├── releases.ts # Release workflows
│ ├── tags.ts # Tag management
│ ├── assets.ts # Asset management
│ ├── components.ts # Component management
│ ├── search.ts # Content discovery
│ ├── space.ts # Space operations
│ └── index.ts # Tool registration
└── index.ts # Main server entry point
Environment Variables
The following environment variables are required:
STORYBLOK_SPACE_ID=your_space_id
STORYBLOK_MANAGEMENT_TOKEN=your_management_token
STORYBLOK_DEFAULT_PUBLIC_TOKEN=your_public_token
Installation & Setup
- Install dependencies:
yarn install
- Build the project:
yarn build
- Configure environment variables in your MCP client configuration.
Development
Building
yarn build
Type Checking
yarn tsc --noEmit
Tool Categories
Basic Tools
ping
: Server health check
Content Management
fetch-stories
: List stories with filteringget-story
: Get specific story by ID/slugcreate-story
: Create new storiesupdate-story
: Update existing storiesdelete-story
: Delete storiespublish-story
/unpublish-story
: Publishing controlsget-story-versions
/restore-story
: Version management
Tag Management
fetch-tags
: List all tagscreate-tag
: Create new tagscreate-tag-and-add-to-story
: Create and assign tagsdelete-tag
: Remove tags
Release Management
fetch-releases
: List releasescreate-release
: Create scheduled releasesadd-story-to-release
: Add content to releasespublish-release
: Publish releasesdelete-release
: Remove releases
Asset Management
fetch-assets
: List assets with filteringget-asset
: Get specific asset detailsdelete-asset
: Remove assetsinit-asset-upload
/complete-asset-upload
: Upload workflowfetch-asset-folders
: List asset folderscreate-asset-folder
/update-asset-folder
/delete-asset-folder
: Folder management
Component Management
fetch-components
: List all componentsget-component
: Get specific componentcreate-component
: Create new componentsupdate-component
: Update component schemasdelete-component
: Remove components
Content Discovery
search-stories
: Advanced content searchget-story-by-slug
: Get content by slug
Space Management
get-space
: Get space informationfetch-folders
: List content foldersfetch-datasources
: List datasources
Best Practices Implemented
- Modular Architecture: Each tool category is in its own file
- Type Safety: Comprehensive TypeScript types for all interfaces
- Error Handling: Consistent error handling across all tools
- Code Reuse: Shared utilities for common operations
- Documentation: Comprehensive inline documentation
- Configuration Management: Centralized environment variable handling
API Coverage
This server provides comprehensive coverage of the Storyblok Management API and Content Delivery API, including:
- Stories API (Management & Delivery)
- Assets API
- Components API
- Releases API
- Tags API
- Space API
- Datasources API
Each tool includes proper error handling, parameter validation, and consistent response formatting.
Quick Actions
Key Features
Model Context Protocol
Secure Communication
Real-time Updates
Open Source