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.
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. |
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 tokenSPACE_ID(required): target Contentful spaceENVIRONMENT_ID(optional, defaultmaster)CONTENTFUL_HOST(optional, defaultapi.contentful.com)NODE_ENV(optional, defaultproduction)
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.
- 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
- "Create a new
blogPostentry titled 'Q3 launch recap' with body content I'll dictate, then publish it in the master environment." - "Search for all entries of type
productupdated in the last 7 days that are still in draft and list their titles." - "Add a
seoDescriptionfield to thearticlecontent 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 ID4xK...." - "Invoke the 'Translate to German' AI Action on entry
7bN...and publish the result."
- 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
- 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
- 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