Exposes Contentstack's Content Management API (CMA), Content Delivery API (CDA), Analytics, BrandKit, Launch, DeveloperHub, Lytics, and Personalize tools, enabling remote management and automation of Contentstack resources.
Click on "Install 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 Streamable HTTP Serverlist the latest 5 entries from the blog content type"
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 Streamable HTTP Server
DEPRECATED: Contentstack will build a Streamable http server soon
A Streamable HTTP transport wrapper for the @contentstack/mcp package. This server exposes all Contentstack MCP tools over HTTP instead of stdio, enabling remote access, horizontal scaling, and integration with browser-based and networked MCP clients.
How It Works
This server acts as a transparent proxy:
Spawns
@contentstack/mcpas a child process communicating via stdioDiscovers all available tools from the child process
Exposes them over Streamable HTTP transport at a single
/mcpendpointForwards tool calls from HTTP clients to the underlying Contentstack MCP server
All tools from @contentstack/mcp are available — CMA, CDA, Analytics, BrandKit, Launch, DeveloperHub, Lytics, and Personalize.
Prerequisites
Node.js 18+
A Contentstack account with appropriate credentials
OAuth authentication completed (for CMA, Analytics, BrandKit, Launch, DeveloperHub, Personalize)
Setup
1. Install dependencies
npm install2. Configure environment variables
Copy the example env file and fill in your credentials:
cp .env.example .envEdit .env with your Contentstack credentials:
CONTENTSTACK_API_KEY=your_stack_api_key
GROUPS=cmaSee Environment Variables for the full list.
3. Authenticate with OAuth
Before using CMA, Analytics, BrandKit, Launch, DeveloperHub, or Personalize tools, run the OAuth flow:
npm run authThis stores your OAuth tokens locally for the child process to use.
4. Build and run
npm run build
npm startFor development with auto-reload:
npm run devThe server starts on port 3000 by default.
Connecting a Client
Configure your MCP client to connect via Streamable HTTP. Example mcp-config.json:
{
"mcpServers": {
"contentstack": {
"type": "streamable-http",
"url": "http://localhost:3000/mcp"
}
}
}Cursor IDE
Add to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"contentstack": {
"type": "streamable-http",
"url": "http://localhost:3000/mcp"
}
}
}Environment Variables
Variable | Required | Description |
| No | Server port (default: |
| Yes | Your Stack API Key |
| CDA only | Delivery token for Content Delivery API |
| BrandKit only | Brand Kit ID |
| Launch only | Launch Project ID |
| Personalize only | Personalize Project ID |
| Lytics only | Lytics access token |
| No | Comma-separated API groups to enable (default: |
API Groups
Group | Authentication | Required Configuration |
CMA | OAuth | Stack API Key |
CDA | Token-based | Stack API Key + Delivery Token |
Analytics | OAuth | Stack API Key |
BrandKit | OAuth | Stack API Key + Brand Kit ID |
Launch | OAuth | Stack API Key + Launch Project ID |
DeveloperHub | OAuth | Stack API Key |
Lytics | Token-based | Lytics Access Token |
Personalize | OAuth | Stack API Key + Personalize Project ID |
Endpoints
Method | Path | Description |
|
| MCP JSON-RPC requests (initialize, tool calls) |
|
| SSE stream for server-to-client notifications |
|
| Session termination |
|
| Health check with tool count and active sessions |
License
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.