contentstack-mcp
The Contentstack MCP Server integrates with Contentstack's Content Management API, enabling AI assistants like Claude to interact with a Contentstack CMS via the MCP protocol. Its capabilities include:
Content Type Management: List, create, retrieve, update, and delete content types with detailed schemas, options, field rules, and taxonomies
Entry Management: List, create, retrieve, update, delete, publish, and unpublish entries with filtering, sorting, and pagination
Global Field Management: List, create, update, and retrieve global fields for reuse across content types
Asset Management: List and manage assets programmatically
Workflow Automation: Facilitate guided content creation workflows and provide content analysis
Branch Support: Manage content across different branches
Integration with AI Assistants: Connect with tools like Claude for Desktop and Cursor
Extensibility: Configure for custom use cases and integrations
Uses Biome.js for linting and formatting, providing code style consistency and early issue detection in the development workflow.
Integrates with Contentstack's Content Management API, enabling interaction with content types, entries, assets, global fields, and content workflows. Supports creating, updating, deleting and publishing content in the Contentstack CMS.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@contentstack-mcp show me the latest blog posts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Contentstack MCP Server
This Model Context Protocol (MCP) server integrates with Contentstack's Content Management API, enabling AI assistants like Claude to interact with your Contentstack CMS through a standardized protocol.
Note: This is an early version of Contentstack MCP Server. See the Roadmap for upcoming improvements and planned features.
Table of Contents
Related MCP server: mcp-clickup
Features
Available Resources
content-types: List all content types (URI:contentstack://content-types)content-type: Get content type by UID (URI:contentstack://content-type/{uid})entries: Get entries by content type (URI:contentstack://entries/{content_type_uid})entry: Get specific entry (URI:contentstack://entry/{content_type_uid}/{entry_uid})assets: List all assets (URI:contentstack://assets)
Content Type Management
Create, update, and delete content types
Define schemas, options, field rules, and taxonomies
Manage global fields
Entry Management
Create, update, and delete entries
Publish and unpublish entries across environments
Query entries with filtering, pagination, and sorting options
Global Field Management
Create and update global fields for reuse across content types
Retrieve global fields with pagination options
Content Workflows
Guided content creation workflows
Content analysis and insights
Migration planning assistance
Installation
Prerequisites
Node.js (v16.0.0 or higher)
A Contentstack account
API credentials (API Key and Management Token)
NPM Installation
The easiest way to use this MCP server is via NPM:
# Install globally
npm install -g @drossman/contentstack-mcp
# Or use directly via npx
npx @drossman/contentstack-mcpManual Installation
Clone the repository:
git clone https://github.com/darekrossman/contentstack-mcp.git cd contentstack-mcpInstall dependencies:
npm installSet up environment variables:
cp .env.example .envEdit the
.envfile with your Contentstack credentials:CONTENTSTACK_API_KEY=your_api_key_here CONTENTSTACK_MANAGEMENT_TOKEN=your_management_token_here # Optional: Specify branch if using branches CONTENTSTACK_BRANCH=your_branch_nameBuild and start the server:
npm run build npm start
Installation via Smithery CLI
You can also install this MCP server using the Smithery CLI:
npx @smithery/cli install contentstack-mcp --client claudeSee the Smithery CLI documentation for more details and advanced usage.
Development
Setup for Development
For development, you can use:
npm run devThis starts the server using ts-node for a faster development cycle.
Code Quality
This project uses Biome.js for linting and formatting. It provides a consistent code style and helps catch potential issues early.
Available Commands
Lint Code:
npm run lintLint and Fix:
npm run lint:fixFormat Code:
npm run formatFormat and Fix:
npm run format:fix
Configuration
Authentication
This server requires authentication with Contentstack's API:
Management Token (Required):
Stack-level token with predefined permissions
Set via
CONTENTSTACK_MANAGEMENT_TOKENenvironment variableGenerate from Contentstack dashboard: Settings > Tokens > Management Tokens
API Key (Required):
Stack API key for authentication
Set via
CONTENTSTACK_API_KEYenvironment variable
Branch Support
If your Contentstack account uses branches, you can specify a branch:
CONTENTSTACK_BRANCH=developIntegration with AI Assistants
Claude for Desktop
To use this server with Claude for Desktop:
Edit your Claude for Desktop configuration file:
Mac:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Add this server to the
mcpServerssection:{ "mcpServers": { "contentstack": { "command": "npx", "args": ["-y", "@drossman/contentstack-mcp"], "env": { "CONTENTSTACK_API_KEY": "your_api_key_here", "CONTENTSTACK_MANAGEMENT_TOKEN": "your_management_token_here" } } } }Restart Claude for Desktop
Cursor
To use this server with Cursor, add the Contentstack MCP server configuration:
{
"mcpServers": {
"contentstack": {
"command": "npx",
"args": ["-y", "@drossman/contentstack-mcp"],
"env": {
"CONTENTSTACK_API_KEY": "your_api_key_here",
"CONTENTSTACK_MANAGEMENT_TOKEN": "your_management_token_here",
}
}
}
}Install with Smithery
You can also install this MCP server using the Smithery CLI using your client of choice:
npx -y @smithery/cli install @drossman/contentstack-mcp --client claudeAvailable clients include:
claude
cline
windsurf
roocode
witsy
enconvo
cursor
vscode
vscode-insiders
boltai
amazon-bedrock
amazonq
See the Smithery CLI documentation for more details and advanced usage.
Roadmap
Enhanced AI Contextual Understanding: Improve context provisioning for complex queries
Advanced Querying & Filtering: Support filtering by multiple criteria and custom fields
Workflow & Publishing Automation: Enable AI-driven content workflow actions
Asset Management Enhancements: Add direct asset manipulation capabilities
Bulk Operations Support: Implement batch operations for entries and assets
Improved Error Handling & AI Feedback: Refine error messages for AI consumption
User-Specific Context & Permissions: Tailor actions based on user permissions
Extensibility for Custom Tools: Create an extension framework
Real-time Event Handling: Add webhook support for reactive AI behaviors
Comprehensive Documentation: Develop detailed guides for AI interaction
Shoutout
Special thanks to Ivo Toby. This project and its author are heavily inspired by his work in this space.
License
MIT
Disclaimer: This project is not affiliated with, endorsed by, or supported by Contentstack. It is an independent open-source project designed to work with the Contentstack API.
Available Tools
15 toolscreate_content_typeC
Creates a new content type with the specified schema, options, field rules, and taxonomies.
Inputs: schema (required), title (required), uid (required), field_rules, +2 more.
create_entryC
Creates a new entry for a specified content type.
Inputs: content_type_uid (required), entry (required).
create_global_fieldC
Creates a new global field with the specified title, UID, and schema.
Inputs: schema (required), title (required), uid (required).
delete_content_typeC
Deletes a content type identified by its UID.
Inputs: uid (required).
delete_entryC
Deletes an entry identified by its UID and content type UID.
Inputs: content_type_uid (required), entry_uid (required).
get_all_content_typesC
Retrieves a list of all content types, with options for pagination and including additional details like global field schema and counts.
Inputs: include_branch_info, include_count, include_global_field_schema, include_reference_content_type_uid, +2 more.
get_all_global_fieldsC
Retrieves a list of all global fields, with options for pagination and including branch information.
Inputs: include_branch_info, include_count, limit, skip.
get_content_typeB
Retrieves a specific content type by its UID, optionally including the global field schema.
Inputs: uid (required), include_global_field_schema.
get_entriesC
Retrieves entries for a specified content type, with extensive options for filtering, sorting, pagination, and including related data.
Inputs: content_type_uid (required), asc, desc, except, +13 more.
get_entryA
Retrieves a specific entry by its content type UID and entry UID, with options for locale and including references.
Inputs: content_type_uid (required), entry_uid (required), include_reference_content_type_uid, include_references, +1 more.
publish_entryC
Publishes an entry to a specified environment and locale.
Inputs: content_type_uid (required), entry_uid (required), environment (required), locale.
unpublish_entryC
Unpublishes an entry from a specified environment and locale.
Inputs: content_type_uid (required), entry_uid (required), environment (required), locale.
update_content_typeC
Updates an existing content type identified by its UID. Allows modification of title, schema, options, and field rules.
Inputs: uid (required), field_rules, options, schema, +1 more.
update_entryC
Updates an existing entry identified by its UID and content type UID.
Inputs: content_type_uid (required), entry (required), entry_uid (required).
update_global_fieldB
Updates an existing global field identified by its UID. Allows modification of title and schema.
Inputs: uid (required), schema, title.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Each tool has a clearly distinct purpose targeting specific resources (content types, entries, global fields) and actions (create, get, update, delete, publish/unpublish). There is no overlap or ambiguity; for example, get_all_content_types vs. get_content_type are clearly differentiated by scope.
All tools follow a consistent verb_noun pattern with underscores (e.g., create_content_type, get_entries, update_global_field). The naming is predictable and uniform across all 15 tools, making it easy for agents to understand and use them.
With 15 tools, this server is well-scoped for content management operations. Each tool earns its place by covering essential CRUD and lifecycle actions for content types, entries, and global fields, without being overly bloated or sparse.
The tool surface provides complete CRUD and lifecycle coverage for the content management domain. It includes create, get, update, and delete for all core resources (content types, entries, global fields), plus publishing/unpublishing for entries, with no obvious gaps that would hinder agent workflows.
Maintenance
Related MCP Connectors
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
An MCP server that provides access to Agility CMS. See https://mcp.agilitycms.com for more details.
The official MCP Server for the Mux API
MCP server for interacting with the Supabase platform
Related MCP Servers
- AlicenseCqualityDmaintenanceUpdate, create, delete content, content-models and assets in your Contentful Space4089 npm62MIT
- MIT

Contentfulofficial
AlicenseNot gradedqualityBmaintenanceA Model Context Protocol (MCP) server that provides AI assistants with comprehensive tools to interact with Contentful APIs.139 npm62MIT- AlicenseCqualityDmaintenanceA Storyblok MCP Server built on TypeScript with more than 130+ Actions1008MIT