loading…
Search for a command to run...
loading…
A transport wrapper that exposes Contentstack MCP tools over HTTP instead of stdio to enable remote access and horizontal scaling. It acts as a proxy for the Co
A transport wrapper that exposes Contentstack MCP tools over HTTP instead of stdio to enable remote access and horizontal scaling. It acts as a proxy for the Contentstack MCP package, allowing browser-based and networked clients to interact with various Contentstack APIs.
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.
This server acts as a transparent proxy:
@contentstack/mcp as a child process communicating via stdio/mcp endpointAll tools from @contentstack/mcp are available — CMA, CDA, Analytics, BrandKit, Launch, DeveloperHub, Lytics, and Personalize.
npm install
Copy the example env file and fill in your credentials:
cp .env.example .env
Edit .env with your Contentstack credentials:
CONTENTSTACK_API_KEY=your_stack_api_key
GROUPS=cma
See Environment Variables for the full list.
Before using CMA, Analytics, BrandKit, Launch, DeveloperHub, or Personalize tools, run the OAuth flow:
npm run auth
This stores your OAuth tokens locally for the child process to use.
npm run build
npm start
For development with auto-reload:
npm run dev
The server starts on port 3000 by default.
Configure your MCP client to connect via Streamable HTTP. Example mcp-config.json:
{
"mcpServers": {
"contentstack": {
"type": "streamable-http",
"url": "http://localhost:3000/mcp"
}
}
}
Add to your Cursor MCP settings (.cursor/mcp.json):
{
"mcpServers": {
"contentstack": {
"type": "streamable-http",
"url": "http://localhost:3000/mcp"
}
}
}
| Variable | Required | Description |
|---|---|---|
PORT |
No | Server port (default: 3000) |
CONTENTSTACK_API_KEY |
Yes | Your Stack API Key |
CONTENTSTACK_DELIVERY_TOKEN |
CDA only | Delivery token for Content Delivery API |
CONTENTSTACK_BRAND_KIT_ID |
BrandKit only | Brand Kit ID |
CONTENTSTACK_LAUNCH_PROJECT_ID |
Launch only | Launch Project ID |
CONTENTSTACK_PERSONALIZE_PROJECT_ID |
Personalize only | Personalize Project ID |
LYTICS_ACCESS_TOKEN |
Lytics only | Lytics access token |
GROUPS |
No | Comma-separated API groups to enable (default: cma). Options: cma, cda, analytics, brandkit, launch, developerhub, lytics, personalize, all |
| 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 |
| Method | Path | Description |
|---|---|---|
POST |
/mcp |
MCP JSON-RPC requests (initialize, tool calls) |
GET |
/mcp |
SSE stream for server-to-client notifications |
DELETE |
/mcp |
Session termination |
GET |
/health |
Health check with tool count and active sessions |
MIT
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"contentstack-mcp-streamable-http-server": {
"command": "npx",
"args": []
}
}
}