Back to MCP Servers

Contentful MCP Server

Official Contentful MCP server for reading and writing entries, managing content models, handling assets, and invoking AI Actions across spaces and environments.

SEO & Content by Contentful API Key active
Overview

The Contentful MCP server is the official integration from Contentful that lets AI agents work directly with Contentful spaces through the Content Management API. It exposes around 47 tools spanning content types, entries, assets, spaces, environments, locales, tags, and AI Actions, giving agents end-to-end control over a Contentful workspace including create, read, update, publish, unpublish, and delete operations.

Contentful offers two deployment options. The local open-source server (this repo) runs as a Node.js process and authenticates with a Contentful Management API personal access token scoped to a specific space and environment. A hosted remote server is also available in beta at https://mcp.contentful.com/mcp using OAuth, with a per-environment permission layer configured through the Contentful MCP app in the Marketplace for finer-grained read-only or read/write access.

Notable capabilities include first-class support for AI Actions (create, invoke, update, publish, and manage AI workflows defined in Contentful), full content modeling operations so agents can evolve schemas, and locale management for multi-language content. The server is maintained by Contentful and supports Claude Desktop, Cursor, VS Code, Codex, and Claude Code.

Tools

Tool Description
get_initial_context Initialize and retrieve usage guidance for the server.
list_content_types List content types in the space/environment.
get_content_type Retrieve a specific content type by ID.
create_content_type Create a new content type.
update_content_type Update an existing content type.
publish_content_type Publish a content type.
unpublish_content_type Unpublish a content type.
delete_content_type Delete a content type.
search_entries Search entries with query filters.
get_entry Retrieve a specific entry by ID.
create_entry Create a new entry of a given content type.
update_entry Update an existing entry.
publish_entry Publish an entry.
unpublish_entry Unpublish an entry.
delete_entry Delete an entry.
upload_asset Upload a new asset (file/media).
list_assets List assets in the environment.
get_asset Retrieve an asset by ID.
update_asset Update asset metadata or file.
publish_asset Publish an asset.
unpublish_asset Unpublish an asset.
delete_asset Delete an asset.
list_spaces List accessible Contentful spaces.
get_space Get details for a specific space.
list_environments List environments in a space.
create_environment Create a new environment.
delete_environment Delete an environment.
list_locales List configured locales.
get_locale Retrieve a specific locale.
create_locale Create a new locale.
update_locale Update a locale.
delete_locale Delete a locale.
list_tags List tags in the environment.
create_tag Create a new tag.
create_ai_action Create a new AI Action.
invoke_ai_action Invoke an AI Action with parameters.
get_ai_action_invocation Retrieve the result of an AI Action invocation.
get_ai_action Get a specific AI Action.
list_ai_actions List configured AI Actions.
update_ai_action Update an AI Action.
publish_ai_action Publish an AI Action.
unpublish_ai_action Unpublish an AI Action.
delete_ai_action Delete an AI Action.
Setup Guide

Prerequisites

  • Node.js and npm
  • A Contentful account with a space
  • A Contentful Management API (CMA) personal access token: generate one from Contentful account settings, under API keys, Content management tokens
  • Your Space ID and Environment ID (defaults to master)

Install (Claude Desktop / Cursor / VS Code)

Add the following to your MCP client config (e.g. claude_desktop_config.json):

{
  "mcpServers": {
    "contentful-mcp": {
      "command": "npx",
      "args": ["-y", "@contentful/mcp-server"],
      "env": {
        "CONTENTFUL_MANAGEMENT_ACCESS_TOKEN": "your-CMA-token",
        "SPACE_ID": "your-space-id",
        "ENVIRONMENT_ID": "master",
        "CONTENTFUL_HOST": "api.contentful.com"
      }
    }
  }
}

CLI install (Codex)

codex mcp add contentful --env CONTENTFUL_MANAGEMENT_ACCESS_TOKEN=... --env SPACE_ID=... -- npx -y @contentful/mcp-server

From source

git clone https://github.com/contentful/contentful-mcp-server
cd contentful-mcp-server
npm install
npm run build

Environment variables

  • CONTENTFUL_MANAGEMENT_ACCESS_TOKEN (required): CMA personal access token
  • SPACE_ID (required): target Contentful space
  • ENVIRONMENT_ID (optional, default master)
  • CONTENTFUL_HOST (optional, default api.contentful.com)
  • NODE_ENV (optional, default production)

Hosted alternative

Contentful also hosts a remote MCP server at https://mcp.contentful.com/mcp (Beta) with OAuth authentication. Configure per-environment permissions via the Contentful MCP app in the Marketplace.

Use Cases
  • Generate, edit, and publish blog posts or landing page entries directly from a chat agent, including setting fields per locale
  • Evolve content models on the fly: add new fields to a content type, then backfill existing entries with values from the agent
  • Bulk-upload and tag media assets, then attach them to entries and publish in one workflow
  • Spin up a new Contentful environment for a feature branch, copy content types, and clean it up after release
  • Build and invoke AI Actions defined in Contentful from external agents to run custom content transformations or translations
Example Prompts
  • "Create a new blogPost entry titled 'Q3 launch recap' with body content I'll dictate, then publish it in the master environment."
  • "Search for all entries of type product updated in the last 7 days that are still in draft and list their titles."
  • "Add a seoDescription field to the article content type, publish the model, and update the 5 most recent articles with generated descriptions."
  • "Upload this image as a Contentful asset, tag it with hero-banner, and attach it to the entry with ID 4xK...."
  • "Invoke the 'Translate to German' AI Action on entry 7bN... and publish the result."
Pros
  • Official server maintained by Contentful with broad coverage of the Management API (around 47 tools)
  • Full create/update/publish lifecycle for entries, content types, assets, locales, and AI Actions
  • Two deployment options: local Node.js server with a CMA token, or hosted remote server with OAuth and per-environment permissions via the Contentful MCP app
  • Works with Claude Desktop, Cursor, VS Code, Codex, Claude Code, and other MCP-aware clients
Limitations
  • The local server uses a single CMA personal access token, which grants broad write access; fine-grained permissions require the hosted server plus the Marketplace MCP app
  • Hosted remote server is still in Beta at the time of writing
  • Tools like tags are limited to list/create (no update/delete), so some niche operations still require direct API calls
Alternatives
  • Sanity MCP server for the Sanity headless CMS
  • Storyblok MCP server community/official integrations for managing Storyblok content
  • Direct use of the Contentful Management API via a generic HTTP/REST MCP server if you need custom endpoints not covered by the official tools