Skip to main content
Glama
1237889321

Contentstack MCP Streamable HTTP Server

by 1237889321

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:

  1. Spawns @contentstack/mcp as a child process communicating via stdio

  2. Discovers all available tools from the child process

  3. Exposes them over Streamable HTTP transport at a single /mcp endpoint

  4. Forwards 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 install

2. Configure environment variables

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.

3. Authenticate with OAuth

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.

4. Build and run

npm run build
npm start

For development with auto-reload:

npm run dev

The 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

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

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

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

License

MIT

-
security - not tested
F
license - not found
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/1237889321/contentstack-mcp-streamable'

If you have feedback or need assistance with the MCP directory API, please join our Discord server