Contentstack LogoContentstack Logo

Contentstack MCP Server

Experimental: This MCP server is still experimental. Features and tool schemas may change without notice. Use it in production at your own risk.

A complete guide for setting up, configuring, and using the Contentstack MCP Server with AI agents and tools.

What is the Contentstack MCP Server?

The Model Context Protocol

The Model Context Protocol (MCP) is an open standard that lets AI agents (Claude, Cursor, and others) connect to external systems through a common interface. Instead of writing bespoke integration code every time you want an AI to talk to an API, you run an MCP server that exposes those APIs as structured, typed tools. The agent calls those tools and interprets the results in natural language.

What this server does

The Contentstack MCP Server bridges your Contentstack stack and related services, the Content Management API, Content Delivery API, Analytics, Launch, BrandKit, Personalize, Developer Hub, and Lytics to any MCP-compatible AI agent.

Once configured, your AI agent can:

  • Read, create, update, publish, and unpublish entries and assets in plain language
  • Inspect audit logs, version history, and workflow stages
  • Trigger deployments, check logs, and revalidate CDN caches in Launch
  • Generate on-brand content via BrandKit AI using voice profiles and a knowledge vault
  • Query audience segments, user profiles, and A/B test results in Personalize and Lytics
  • Manage Marketplace apps and OAuth settings in Developer Hub
  • Pull API usage, cache hit rates, and SDK adoption metrics from Analytics

Who it's for

  • Developers building AI-powered content workflows or automations
  • Content architects who want an agent to help audit, model, or migrate content
  • DevRel and solutions engineers demonstrating Contentstack capabilities with AI
  • AI workflow builders connecting Contentstack to agent frameworks and pipelines

Prerequisites

Before you start, make sure you have:

Authentication

Most API groups require OAuth authentication. Run this command once before using the server:

bash
npx @contentstack/mcp --auth

This opens a browser window. You will:

  • Log in to your Contentstack account
  • Select your region (US, EU, AU, etc.)
  • Select your organisation
  • Grant the MCP server access

The resulting OAuth tokens are saved locally on your machine. They are reused automatically by the server on subsequent runs — you do not need to re-authenticate unless your tokens expire.

Which groups require OAuth?

GroupAuthentication method
CMA, CMA ExtendedOAuth
AnalyticsOAuth
BrandKitOAuth
LaunchOAuth
DeveloperHubOAuth
PersonalizeOAuth
CDAToken-based (delivery token)
LyticsToken-based (Lytics access token)

CDA and Lytics do not use OAuth. They authenticate with static tokens you provide in environment variables.

Installation

No installation or repository cloning is needed. The server runs on demand via npx:

bash
npx @contentstack/mcp

The -y flag (used in MCP client configs) automatically confirms the npx prompt, so the agent can start the server without human input:

bash
npx -y @contentstack/mcp

npx pulls the latest published version of @contentstack/mcp from npm each time it runs. This means you always get the latest tool definitions without a manual upgrade step.

Configuration

The server is configured through environment variables or equivalent CLI arguments. Both work identically, use whichever your MCP client supports.

Environment variables

VariableCLI argumentDescriptionRequired for
CONTENTSTACK_API_KEY--stack-api-keyYour Contentstack Stack API KeyCMA, CMA Extended, CDA, DeveloperHub
CONTENTSTACK_DELIVERY_TOKEN--delivery-tokenDelivery token for the target environmentCDA only
CONTENTSTACK_BRAND_KIT_ID--brand-kit-idYour Brand Kit IDBrandKit only
CONTENTSTACK_LAUNCH_PROJECT_ID--launch-project-idYour Launch Project UIDLaunch only
CONTENTSTACK_PERSONALIZE_PROJECT_ID--personalize-project-idYour Personalize Project IDPersonalize only
LYTICS_ACCESS_TOKEN--lytics-access-tokenYour Lytics access tokenLytics only
GROUPS--groupsComma-separated list of API groups to enableOptional - defaults to cma

You only need to provide the variables relevant to the groups you are enabling. For example, if you load only cma, you need only CONTENTSTACK_API_KEY. If you add cda, you also need CONTENTSTACK_DELIVERY_TOKEN.

Where to find your credentials

  • Stack API Key: Contentstack Dashboard → Settings → API Credentials
  • Delivery Token: Contentstack Dashboard → Settings → Tokens → Delivery Tokens → create one for your target environment
  • Brand Kit ID: BrandKit Dashboard → your brand kit's settings page
  • Launch Project ID: Launch Dashboard → your project's URL or settings
  • Personalize Project ID: Personalize Dashboard → your project's settings
  • Lytics Access Token: Lytics account settings → API Tokens

The GROUPS variable

The GROUPS variable controls which API toolsets are exposed to the agent. Loading only what you need is good practice — it reduces the volume of tool definitions sent to the model on every turn, keeping context windows lean and responses focused.

Group valueToolsPurpose
cma77Core content management: entries, assets, content types, branches, releases, publishing, variants, environments, global fields, taxonomies
cma-extended22Audit logs, version history, global field writes, asset folder management, workflow and publish rule inspection — load alongside cma
cda4Published content via CDN: fast, read-only delivery of entries and assets
analytics8API/CDN usage, cache performance, status codes, SDK adoption, device/URL analytics
brandkit12AI content generation, voice profiles, knowledge vault
launch27Projects, environments, deployments, deploy hooks, logs, file upload, CDN cache revalidation
developerhub12Marketplace app lifecycle, OAuth settings, app installations
lytics10Audiences, user profiles, content topics, classification, fields, tables
personalize24Attributes, audiences, experiences, events, analytics, geolocation helpers
allall of the aboveEnable everything - best for exploration and prototyping

Examples:

bash

GROUPS=cma


GROUPS=cma,cma-extended


GROUPS=cma,cda


GROUPS=all
💡

Context tip: For everyday content operations, cma alone is sufficient. Add cma-extended only when the session requires audit trails, version inspection, or workflow context. Loading all is convenient for exploration but sends the full tool list to the model on every turn.

MCP Client Setup

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or %APPDATA%\Claude\claude_desktop_config.json on Windows.

Option A — Environment variables (recommended):

{
  "mcpServers": {
    "contentstack": {
      "command": "npx",
      "args": ["-y", "@contentstack/mcp"],
      "env": {
        "CONTENTSTACK_API_KEY": "<YOUR_STACK_API_KEY>",
        "CONTENTSTACK_DELIVERY_TOKEN": "<YOUR_DELIVERY_TOKEN>",
        "CONTENTSTACK_BRAND_KIT_ID": "<YOUR_BRAND_KIT_ID>",
        "CONTENTSTACK_LAUNCH_PROJECT_ID": "<YOUR_LAUNCH_PROJECT_ID>",
        "CONTENTSTACK_PERSONALIZE_PROJECT_ID": "<YOUR_PERSONALIZE_PROJECT_ID>",
        "LYTICS_ACCESS_TOKEN": "<YOUR_LYTICS_TOKEN>",
        "GROUPS": "cma"
      }
    }
  }
}

Only include the env vars relevant to the groups you are enabling. Remove keys you do not need.

Option B — CLI arguments (use if your client does not support env vars):

{
  "mcpServers": {
    "contentstack": {
      "command": "npx",
      "args": [
        "-y",
        "@contentstack/mcp",
        "--stack-api-key",
        "<YOUR_STACK_API_KEY>",
        "--delivery-token",
        "<YOUR_DELIVERY_TOKEN>",
        "--brand-kit-id",
        "<YOUR_BRAND_KIT_ID>",
        "--launch-project-id",
        "<YOUR_LAUNCH_PROJECT_ID>",
        "--lytics-access-token",
        "<YOUR_LYTICS_TOKEN>",
        "--personalize-project-id",
        "<YOUR_PERSONALIZE_PROJECT_ID>",
        "--groups",
        "cma"
      ]
    }
  }
}

After editing the file, restart Claude Desktop to pick up the changes.

Cursor

Edit ~/.cursor/mcp.json (create it if it does not exist):

{
  "mcpServers": {
    "contentstack": {
      "command": "npx",
      "args": ["-y", "@contentstack/mcp"],
      "env": {
        "CONTENTSTACK_API_KEY": "<YOUR_STACK_API_KEY>",
        "GROUPS": "cma"
      }
    }
  }
}

Restart Cursor after saving.

Claude Code (CLI)

Use the claude mcp add command to register the server:

claude mcp add contentstack \
  --command "npx" \
  --args "-y,@contentstack/mcp" \
  --env "CONTENTSTACK_API_KEY=<YOUR_API_KEY>,GROUPS=cma"

Other MCP clients

The Contentstack MCP Server uses stdio transport, which is the standard for locally-run MCP servers. Any MCP client that supports stdio should work with the same configuration pattern: point the client at npx -y @contentstack/mcp and pass your credentials via environment variables or CLI arguments.

API Groups - what to load and when

CMA - Content Management API

OAuth
Load with: GROUPS=cma Requires: Stack API Key 77 tools

The core group for content operations. Covers the full lifecycle of entries and assets: create, read, update, delete, publish, unpublish, and localize. Also includes branches, branch aliases, merge jobs, releases, publishing queues, content types, global fields, taxonomies, terms, variants, and environments.

Use this group for:

  • Day-to-day content management tasks
  • Content modelling and schema inspection
  • Bulk publishing or unpublishing workflows
  • Branch management and merge operations

See the Tool Catalog for the full list.

CMA Extended - Content Management API Extended

OAuth
Load with: GROUPS=cma,cma-extended Requires: Stack API Key 22 tools

Extends CMA with administrative and investigative capabilities. Load alongside cma when the session requires:

  • Audit logs: every create, update, delete, publish, and unpublish action is recorded.
  • Version history: inspect or label every version of an entry or asset.
  • Global field writes: create, update, and delete global fields.
  • Asset folder management: create, rename, and delete asset folders.
  • Workflow inspection: retrieve workflow definitions and publish rules.

See the Tool Catalog for the full list.

CDA - Content Delivery API

Token-based
Load with: GROUPS=cda Requires: Stack API Key + Delivery Token 4 tools

Delivers published content through Contentstack's global CDN. Read-only. Returns only content that has been published to the target environment — draft or unpublished entries are not visible.

Does not require OAuth. Authenticate by providing a delivery token scoped to your target environment.

See the Tool Catalog for the full list.

Analytics

OAuth
Load with: GROUPS=analytics Requires: No additional tokens 8 tools

Usage analytics for your Contentstack organisation: API call volumes, CDN bandwidth, cache hit/miss ratios, HTTP status code distribution, SDK version adoption, and URL-level traffic patterns.

All analytics tools are asynchronous — they return a jobId which you then pass to get_job_data to retrieve the results once the job completes.

See the Tool Catalog for the full list.

BrandKit

OAuth
Load with: GROUPS=brandkit Requires: Brand Kit ID 12 tools

AI-powered content generation grounded in your brand. BrandKit provides:

  • Voice Profiles: define the tone, style, formality, and complexity of generated content.
  • Knowledge Vault: a store of brand guidelines, reference materials, and tone-of-voice examples.
  • Generative AI: combines your voice profile and knowledge vault context to produce on-brand content.

See the Tool Catalog for the full list.

Launch

OAuth
Load with: GROUPS=launch Requires: Launch Project ID + Organisation UID 27 tools

Full control over Launch, Contentstack's hosting and deployment platform. Manage projects and environments, create and trigger deploy hooks, monitor deployment status and build logs, fetch server runtime logs, upload ZIP files for file-based deployments, and revalidate CDN caches after content updates.

Supports both Git-connected projects (GitHub, Bitbucket) and file-upload projects.

See the Tool Catalog for the full list.

Developer Hub

OAuth
Load with: GROUPS=developerhub Requires: Stack API Key 12 tools

Manage Contentstack Marketplace apps. Create, update, and delete apps, configure OAuth settings, install apps into stacks or organisations, and inspect existing installations.

See the Tool Catalog for the full list.

Lytics

Token-based
Load with: GROUPS=lytics Requires: Lytics Access Token 10 tools

Access your Lytics customer data platform. Retrieve audience segments, look up individual user profiles, explore content topics and classifications, inspect schema fields and data tables, and classify or enrich content via Lytics' AI engine.

Does not require OAuth. Authenticate with a Lytics access token.

See the Tool Catalog for the full list.

Personalize

OAuth
Load with: GROUPS=personalize Requires: Personalize Project ID 24 tools

Configure and inspect Contentstack Personalize: manage custom attributes and audience segments, create and manage personalization experiences (both Segmented and A/B Test types), define events for conversion tracking, retrieve analytics summaries and time-series data for experience versions, and look up geolocation data for geographic targeting rules.

See the Tool Catalog for the full list.

Group Requirements Summary

GroupAuthenticationAdditional credentials
CMAOAuthStack API Key
CMA ExtendedOAuthStack API Key
CDAToken-basedStack API Key + Delivery Token
AnalyticsOAuth
BrandKitOAuthBrand Kit ID
LaunchOAuthLaunch Project ID + Organisation UID
DeveloperHubOAuthStack API Key
LyticsToken-basedLytics Access Token
PersonalizeOAuthPersonalize Project ID

Common Workflows

Once configured, you interact with Contentstack entirely through natural language. Here are examples of what agents can do with different groups enabled.

Content management (CMA):

  • "Get all entries for the article content type that were published in the last 30 days"
  • "Create a new entry in blog_post with the title 'Getting started with MCP' and publish it to the production environment"
  • "Show me all entries that reference the asset with UID blt1234abcd"
  • "Create a branch called feature/new-homepage from main and add the hero entry to a release"
  • "What environments does this stack have, and which locales are configured?"

Auditing and investigation (CMA, CMA-extended):

  • "Show me the audit log for the last 24 hours - who changed what?"
  • "What versions exist for entry blt9abc in the product content type? Label version 4 as 'Pre-launch approved'"
  • "Which workflow stages require approval before an entry can be published?"

Content delivery (CDA):

  • "Fetch the latest published entries from the homepage_banner content type on the production environment"
  • "What does the live version of entry blt5678efgh look like right now?"

Deployments (Launch):

  • "What's the current deployment status of the staging environment?"
  • "Fetch the build logs from the last deployment — did it fail anywhere?"
  • "Trigger the deploy hook for the production environment"
  • "Revalidate the CDN cache after I update the hero entry"

Brand content (Brandkit):

  • "Generate a product description for a new running shoe using the 'Active lifestyle' voice profile"
  • "Add the updated brand guidelines document to the Knowledge Vault"
  • "What voice profiles are available in my Brand Kit?"

Personalization (Personalize):

  • "Show me all active A/B test experiences and their current conversion rates"
  • "Create a new audience segment for users in Germany who have viewed more than 3 product pages"
  • "What's the analytics summary for experience version ver_abc123 over the last 7 days?"

Troubleshooting

SymptomLikely causeFix
"Unauthorized" errors on CMA / Analytics / Launch callsOAuth not run, or tokens expiredRun npx @contentstack/mcp --auth and complete the flow
CDA returns empty or 401 errorsMissing or incorrect delivery tokenCheck CONTENTSTACK_DELIVERY_TOKEN — it must be scoped to the correct environment
Contentstack tools not appearing in your MCP clientGROUPS value is wrong or malformedCheck for typos and spaces — use comma-separated values with no spaces, e.g. cma,cda
Launch tools fail with auth errorsOrganisation UID not setAdd CONTENTSTACK_ORGANIZATION_UID to your environment — find it in the Launch dashboard URL
Lytics tools return 403Expired or incorrect access tokenRegenerate your Lytics access token and update LYTICS_ACCESS_TOKEN
Analytics get_job_data returns "200 Job active"Job still processingWait a few seconds and retry — analytics jobs are asynchronous
npx prompts for confirmation in the client-y flag missingEnsure your args array includes "-y" as the first argument after "npx"

Tool Catalog

Full reference for every tool exposed by each group.

Content Management API (CMA)

ToolDescription
publish_an_entryPublishes a specified entry of a content type to one or more environments and locales within a branch of the stack. Optionally schedule the publish for a future time.
unpublish_an_entryUnpublishes a specified entry from selected environments and locales within a branch, removing it from the CDN. Optionally schedule the unpublish for a future time.
publish_variants_of_an_entryPublishes one or more variants of an entry to selected environments and locales within a branch.
create_an_entryCreates a new entry in the specified Contentstack stack, targeting a defined content type and branch, with support for locale selection and structured entry data.
delete_an_entryDeletes a specified entry from a Contentstack stack, targeting the provided content type and entry UID, with optional parameters for branch, locale, and deletion of all localized variants.
get_all_entriesRetrieves entry details for a specified content type within a Contentstack stack, supporting branch selection, pagination, versioning, locale filtering, advanced query parameters, optional draft overlay, and optional inclusion of metadata, workflow, branch, and publish details.
get_single_entryRetrieves metadata and field values for a specified entry within a given content type, supporting branch, version, and locale selection.
update_an_entryUpdates an existing entry in the given content type, branch, and locale by replacing its field data.
get_all_content_typesRetrieves all content types in the stack, with pagination, query filtering, and optional inclusion of the global field schema.
get_a_single_content_typeRetrieves the schema and configuration details of a specified content type within a stack.
create_a_content_typeCreates a new content type in the specified Contentstack stack, supporting branch selection and optional branch metadata inclusion.
update_content_typeUpdates an existing content type in the specified Contentstack stack.
delete_content_typeDeletes an existing content type and all the entries within it.
get_all_references_of_ctRetrieves the content types that reference the specified content type, including direct and nested references.
export_content_typeExports a specific content type and its schema as JSON.
get_all_taxonomiesRetrieves metadata for all taxonomies in the stack, with pagination and typeahead search by UID or name.
get_a_single_taxonomyRetrieves metadata and configuration details for a specified taxonomy.
export_a_taxonomyExports a taxonomy and all its associated terms from the specified stack.
get_all_languagesRetrieves metadata for all languages configured within a specified stack branch, supporting pagination.
get_all_assetsRetrieves metadata for all assets in the stack, with environment and folder filters, query filtering, sorting, and pagination.
get_all_branchesRetrieves metadata for all branches within a specified stack, supporting pagination.
create_a_branchCreates a new branch in the specified Contentstack stack.
get_a_single_branchRetrieves metadata and configuration details for a specified branch within a Contentstack stack.
delete_a_branchDeletes a branch in the specified Contentstack stack.
compare_branchesRetrieves a list of all the differences between two branches.
compare_content_types_between_branchesRetrieves a list of all the differences in content types between the two specified branches.
compare_global_fields_between_branchesRetrieves a list of all the differences in global fields between the two specified branches.
compare_specific_ct_between_branchesRetrieves all the differences of the specified content type between the two specified branches.
compare_specific_gf_between_branchesRetrieves all the differences of the specified global field between the two specified branches.
get_all_merge_jobsRetrieves a list of all the recent merge jobs within a specific period.
merge_branchMerges content types and global fields from a compare branch into a base branch, with optional per-item strategy overrides.
get_a_single_merge_jobRetrieves detailed information for a specified merge job within a stack.
get_a_single_branch_aliasRetrieves metadata and configuration details for a specified branch alias within a Contentstack stack.
get_all_branch_aliasesRetrieves metadata for all branch aliases within a specified stack, supporting pagination.
assign_a_branch_aliasAssigns (creates or updates) a branch alias so it points to a target branch in the stack.
delete_a_branch_aliasPermanently deletes the specified branch alias from the selected stack.
get_all_global_fieldsRetrieves metadata for all global fields configured within the specified stack.
get_all_items_in_a_releaseRetrieves metadata and content details for all items associated with the specified release.
get_all_releasesRetrieves metadata for all releases in the stack, with pagination and optional inclusion of total and item counts.
get_all_termsRetrieves all term details for a specified taxonomy from the stack, supporting pagination.
get_all_terms_across_all_taxonomiesRetrieves term details from all taxonomies within the stack, supporting typeahead search, pagination, and optional total count inclusion.
get_all_variants_of_an_entryRetrieves all variants (personalization variants) of a specified entry within the selected content type.
get_all_ancestors_of_a_termRetrieves the complete ancestor hierarchy for a specified term within a taxonomy, supporting pagination.
get_a_single_assetRetrieves metadata and properties for a specified asset within a Contentstack stack, supporting branch, environment, and version parameters.
get_asset_referenceRetrieves all entries referencing the specified asset within the selected branch, enabling asset dependency analysis.
get_all_descendants_of_a_termRetrieves all descendant terms of a specified taxonomy term, supporting pagination.
get_a_single_releaseRetrieves metadata and configuration details for a specified release within a given branch.
get_single_entry_variantRetrieves a specific variant of a content entry from a designated content type, branch, and locale.
get_a_single_global_fieldRetrieves metadata and configuration details for a specified global field within a Contentstack stack.
get_a_single_variantRetrieves details of a single variant within a variant group.
get_a_single_termRetrieves detailed metadata for a specified taxonomy term.
get_all_variants_of_a_content_typeRetrieves all variant definitions (variant groups) linked to the specified content type.
get_publish_queueRetrieves the publish queue for the branch — the log of publish, unpublish, and delete activities on entries and assets.
get_references_of_an_entryRetrieves all entries that reference the specified entry via reference fields.
add_items_to_a_releaseProgrammatically adds specified content items to a designated release within a Contentstack stack branch.
clone_a_releaseCreates a duplicate of an existing release in the specified branch, assigning a new name and optional description.
localize_an_entryLocalizes a specified entry within a stack by creating or updating its content for the target locale.
create_a_releaseCreates a new empty release object within the specified stack branch.
create_a_taxonomyCreates a new taxonomy object within the specified stack.
create_a_termCreates a new term within a specified taxonomy by assigning a unique identifier, name, order, and optional parent term.
delete_an_assetPermanently deletes the specified asset from the selected branch within the stack.
delete_a_taxonomyDeletes the specified taxonomy and all associated terms from the stack.
delete_a_termDeletes a specified term from a taxonomy; supports forced deletion.
get_all_environmentsFetches the list of environments in the stack, with optional total-count reporting and sorting.
create_an_environmentCreates a new environment in the stack by specifying its name and one or more locale-specific base URLs.
get_an_environmentRetrieves full details for a single environment, identified by its name.
update_an_environmentUpdates an existing environment — name and/or locale-to-URL mappings.
delete_an_environmentPermanently deletes an environment, identified by its name.
deploy_a_releaseDeploys a release to one or more target environments, publishing or unpublishing all of its items. Supports optional scheduling.
update_a_taxonomyUpdates the name and description fields of a specified taxonomy entity.
update_a_termUpdates the name property of a specified term within a taxonomy.
delete_items_from_a_releaseProgrammatically removes specified content items from a designated release.
publish_an_assetPublishes a specified asset to one or more environments and locales, with optional scheduling.
unpublish_an_assetUnpublishes a specified asset from selected environments and locales, with optional scheduling.
unlocalize_an_entryUnlocalizes a specified entry in a given locale, restoring it to its fallback state.
create_an_entry_variantCreates an entry variant for an existing base entry.
delete_an_entry_variantDeletes a specified entry variant from a base entry.

Content Management API Extended (CMA Extended)

Load alongside cma with GROUPS=cma,cma-extended.

ToolDescription
get_audit_logRetrieves a paginated list of audit log entries for the stack. Every create, update, delete, publish, and unpublish action is recorded.
get_audit_log_itemRetrieves the full detail of a single audit log entry, including before and after field values, the user who made the change, and the timestamp.
get_all_versions_of_an_entryRetrieves the full version history of a specific entry.
set_entry_version_nameAssigns a human-readable label to a specific version of an entry. Named versions are visible in the Contentstack UI.
delete_entry_version_nameRemoves the label previously assigned to a specific entry version. The version itself is not deleted.
create_a_global_fieldCreates a new global field in the stack. Changes propagate to every content type that uses it.
update_a_global_fieldUpdates the schema or title of an existing global field. Changes propagate to every content type that embeds this global field.
delete_a_global_fieldPermanently deletes a global field and removes its embedded occurrence from every content type that references it. This action cannot be undone.
export_global_fieldExports a global field definition as a JSON object.
update_asset_detailsUpdates the metadata of an existing asset — title, description, or tags — without replacing the underlying file.
get_assets_of_a_specific_folderRetrieves assets contained in a specific folder by its UID, with optional sub-folder inclusion and publish detail filters.
get_assets_and_subfolders_of_a_parent_folderRetrieves both asset files and sub-folder entries within a parent folder.
create_asset_folderCreates a new folder in the asset library, optionally nested under a parent folder.
update_asset_folderRenames an existing asset folder.
delete_asset_folderPermanently deletes an asset folder and all assets and sub-folders it contains. This action cannot be undone.
get_all_versions_of_an_assetRetrieves the full version history of a specific asset.
set_asset_version_nameAssigns a human-readable label to a specific version of an asset.
delete_asset_version_nameRemoves the label previously assigned to a specific asset version. The version itself is not deleted.
get_all_workflowsRetrieves all workflows defined in the stack.
get_a_single_workflowRetrieves the complete definition of a single workflow, including all stages, transition rules, and role-based permissions.
get_publish_rulesRetrieves publish rules for workflows in the stack, defining which workflow stages allow or block publishing.
get_publish_queue_activityRetrieves a recent activity summary for the publish queue across the entire stack.

Content Delivery API (CDA)

ToolDescription
get_all_assets_cdnRetrieves published assets from the CDN. Returns metadata including URLs, file types, dimensions, and publish status. Supports pagination, branch and locale selection, and optional image dimension inclusion.
get_all_entries_cdnRetrieves published entries of a content type from the CDN for fast, global delivery. Supports filtering, sorting, reference resolution, locale selection, and fallback. Maximum 100 entries per request.
get_a_single_asset_cdnRetrieves a specific published asset from the CDN by its unique identifier.
get_a_single_entry_cdnRetrieves a specific published entry from the CDN by its unique identifier and content type.

Analytics API

All analytics tools are asynchronous: they return a jobId that you pass to get_job_data to retrieve results.

ToolDescription
get_subscription_usageRetrieves a summary of Launch resource consumption within your organisation for a specified date range. Returns a jobId for get_job_data.
get_device_usageAnalyzes device and SDK usage patterns across your Contentstack services over a specified period. Returns a jobId for get_job_data.
get_usage_analyticsRetrieves API and CDN usage analytics broken down by service type. Returns a jobId for get_job_data.
get_top_urlsAnalyzes URL-level traffic patterns across your Contentstack services. Returns a jobId for get_job_data.
get_status_codeRetrieves HTTP status code distribution across your services for a specified period. Returns a jobId for get_job_data.
get_cache_usageAnalyzes cache performance by tracking HIT and MISS rates across your services. Returns a jobId for get_job_data.
get_sdk_usageTracks SDK adoption and usage patterns across your services. Returns a jobId for get_job_data.
get_job_dataRetrieves the completed results for an asynchronous analytics job using its jobId. If the job is still processing, returns "200 Job active" — retry after a short delay.

BrandKit AI

ToolDescription
create_an_content_in_knowledge_vaultCreates new content in the Brand Kit Knowledge Vault to provide contextual information for AI-powered content generation.
get_all_contents_in_knowledge_vaultRetrieves all content entries stored in the Knowledge Vault for a specific Brand Kit.
get_a_single_content_in_knowledge_vaultRetrieves detailed information for a specific content entry in the Knowledge Vault by its unique identifier.
update_a_content_in_knowledge_vaultModifies existing content in the Knowledge Vault.
delete_a_content_from_knowledge_vaultPermanently removes a content entry from the Knowledge Vault. This action is irreversible.
create_a_voice_profileCreates a new Voice Profile that defines tone, style, and communication characteristics for AI-generated content.
get_all_voice_profilesRetrieves all Voice Profiles configured for a Brand Kit.
get_a_single_voice_profileRetrieves detailed configuration for a specific Voice Profile.
update_a_voice_profileModifies an existing Voice Profile's characteristics.
delete_a_voice_profilePermanently removes a Voice Profile from the Brand Kit. This action is irreversible.
generative_aiGenerates AI-powered content based on a custom prompt while maintaining brand consistency. Optionally leverages Voice Profiles and Knowledge Vault context.
get_data_chunks_from_knowledge_vaultSearches the Knowledge Vault to retrieve relevant data chunks that match a query string. Semantic search over brand guidelines and reference materials.

Launch API

ToolDescription
get_environmentsRetrieves environment configurations with build settings, deployment information, password protection, and recent commits.
get_deploy_hooksRetrieves deploy hooks configurations with filtering capabilities using cursor-based pagination.
get_latest_live_deploymentRetrieves the most recent live deployment for a specified environment or project, including build configuration, Git information, deployment status, and performance metrics.
create_deploy_hookCreates a new deploy hook for an environment, enabling integration with CI/CD pipelines and external automation systems.
update_deploy_hookUpdates an existing deploy hook configuration — name and environment association.
delete_deploy_hookDeletes an existing deploy hook, permanently disabling its webhook URL.
trigger_deploy_hookTriggers an existing deploy hook for manual or automated re-deployments.
create_deploymentCreates a new deployment for the specified environment using the latest commit from the configured Git branch.
revalidate_cdn_cacheRevalidates the CDN cache for an environment, prompting the CDN to fetch the latest content from origin.
get_all_projectsFetches the list of all projects in your organisation with pagination support.
create_a_projectCreates a project in Launch using either a Git Provider or File Upload.
get_a_projectFetches a specific project in Launch using the project UID.
update_a_projectUpdates an existing project — name and description.
delete_a_projectDeletes an existing project and all associated environments and deployments. This action is permanent.
get_all_environmentsFetches the list of all environments in a project with pagination support.
create_an_environmentCreates a new environment in your Launch project, specifying the Git branch or uploading a ZIP file.
get_an_environmentFetches a specific environment using the project UID and environment UID.
update_an_environmentUpdates an environment — build settings, Git branch, environment variables, password protection, and feature flags.
delete_an_environmentDeletes an existing environment and all associated deployments. This action is permanent.
get_signed_upload_url_projectFetches the signed URL for uploading a ZIP file when creating a project via file upload. Valid for 10 minutes.
get_signed_upload_url_environmentFetches the signed URL for uploading a ZIP file when creating an environment via file upload. Valid for 10 minutes. Only available for FILEUPLOAD projects.
get_signed_upload_url_deploymentRetrieves the signed URL for uploading a ZIP file when creating or redeploying a deployment. Valid for 10 minutes.
get_signed_download_url_deploymentReturns the signed URL to download the uploaded file from the latest deployment. Valid for 15 minutes.
get_all_deploymentsFetches the list of all deployments within a specific environment, with build status, Git commit info, duration, and preview URLs.
get_deploymentRetrieves a specific deployment from an environment using project UID, environment UID, and deployment UID.
get_deployment_logsFetches the deployment (build) logs of a specific deployment.
get_server_logsFetches the runtime server logs of a specific deployment. Requires startTime and endTime parameters.

Developer Hub

ToolDescription
get_an_appRetrieves detailed information for a specific Marketplace App including configuration, metadata, target type, and optionally OAuth settings.
get_all_appsRetrieves all Marketplace Apps in your organisation with filtering, search, sorting, and pagination.
get_app_oauthRetrieves the complete OAuth 2.0 configuration for a Marketplace App including client credentials, redirect URIs, and allowed scopes.
get_oauth_scopesRetrieves the complete list of available OAuth scopes, optionally filtered by app type.
create_an_appCreates a new Marketplace App in your organisation.
update_app_oauthUpdates the OAuth configuration for a Marketplace App.
update_an_appUpdates an existing Marketplace App's configuration including name, description, advanced settings, UI locations, and webhooks.
delete_an_appPermanently deletes a Marketplace App. Fails if the app is currently installed in any stack — uninstall from all stacks first.
install_an_appInstalls a Marketplace App into a target stack or organisation.
update_an_app_installationUpdates a specified app installation in a stack or organisation.
get_app_installationsRetrieves all installations of a specific Marketplace App, showing which stacks or organisations have it deployed.
uninstall_an_appUninstalls a Marketplace App from a target stack or organisation, revoking its access to APIs and data.

Lytics Analytics

ToolDescription
classify_contentScrapes and analyzes a website URL to extract and classify content topics, storing results in Lytics for audience segmentation.
enrich_contentEnriches content by analyzing a website URL or raw text through Lytics' AI engine. Returns inferred topics, themes, and content classifications.
lytics_get_all_audiencesRetrieves all audience segments defined in your Lytics account, including type, validity status, and associated data tables.
get_field_informationRetrieves detailed field metadata for a specific audience segment: field definitions, data types, value distributions, and statistics.
lytics_get_a_single_audienceRetrieves detailed configuration and metrics for a specific audience segment by its unique identifier.
get_content_topicsRetrieves the complete taxonomy of content topics configured in your Lytics account.
get_a_user_profileRetrieves a comprehensive user profile from Lytics by searching for a specific identifier (email, user ID, device ID, etc.).
get_accountsRetrieves all Lytics accounts associated with your instance.
get_fieldsRetrieves all user schema fields configured in your Lytics account.
get_tablesRetrieves schema information for all data tables in your Lytics account (typically User and Content tables).

Personalize API

ToolDescription
create_attributeCreates a new custom attribute in a Personalize project, defining user characteristics for audience segmentation.
get_all_attributesRetrieves all custom and preset attributes available in a Personalize project.
update_attributeModifies an existing attribute's properties — name, key, or description.
delete_attributePermanently removes an attribute from a Personalize project.
get_all_audiencesRetrieves all audience segments from a Personalize project, with optional filtering by referenced attributes.
delete_audiencePermanently removes an audience segment from a Personalize project.
create_experienceCreates a new personalization experience (Segmented or A/B Test) in a Personalize project, automatically generating a draft version for configuration.
get_all_experiencesRetrieves all personalization experiences from a Personalize project, with optional filtering by referenced audiences or events.
get_single_experienceRetrieves detailed information about a specific personalization experience, including its current configuration and status.
update_experienceModifies an existing experience's metadata — name and description.
delete_experiencePermanently removes a personalization experience including all associated versions and configurations.
get_experience_versionsRetrieves all versions of a specific experience, sorted by creation date.
delete_experience_versionDiscards a draft version of an experience. Active, paused, or archived versions cannot be deleted.
get_experiences_priorityRetrieves the priority order configuration for all experiences in a project.
update_experiences_priorityModifies the priority order of experiences, controlling which experience displays when multiple target the same content area.
create_eventCreates a new event definition for tracking user interactions and measuring experience performance.
get_all_eventsRetrieves all event definitions from a Personalize project.
update_eventModifies an existing event definition — key identifier and description.
delete_eventPermanently removes an event definition from a Personalize project.
get_analytics_summaryRetrieves performance analytics summary for a specific experience version, including impressions, conversions, and probability-to-be-best calculations.
get_analytics_timeseriesRetrieves hourly time-series analytics data for a specific experience version.
get_countriesRetrieves country information based on ISO 3166-1 standard for geographic targeting in audience definitions.
get_regionsRetrieves region information based on ISO 3166-2 standard for state-level geographic targeting.
get_citiesRetrieves city information for local-level geographic targeting in Personalize audience definitions.
Was this article helpful?
^