MCP App Store
Productivity
Contentful icon

Contentful

by Contentful Inc.

Overview

The Contentful App makes your Contentful spaces accessible to AI agents, enabling them to perform content management operations. Once installed, the app gives space admins a simple dashboard to control exactly which Contentful tools are available to AI clients: enable read-only access for marketing teams auditing content, or unlock write tools for developers building agentic workflows. Each space gets its own configuration.

Tools

archive_asset

ChatGPT
Archive an asset or multiple assets. Archives assets that are no longer needed but should be preserved. Assets must be unpublished before they can be archived. Accepts either a single assetId (string) or an array of assetIds (up to 100 assets). For multiple assets, processes each one sequentially as a pseudo-bulk operation.

archive_entry

ChatGPT
Archive an entry or multiple entries. Archives entries that are no longer needed but should be preserved. Entries must be unpublished before they can be archived. Accepts either a single entryId (string) or an array of entryIds (up to 100 entries). For multiple entries, processes each one sequentially as a pseudo-bulk operation.

create_ai_action

ChatGPT
Create a new AI action with clear instructions and well-defined variables. Best practices: (1) Use descriptive names that indicate the action's purpose, (2) Write specific, actionable instructions in the template, (3) Define meaningful variables with clear names like "sourceContent", "targetLocale", "entryId", or "contentType", (4) Embed variables into the template using the format {{var.{variableId}}}, (5) Consider the content editor's workflow and make the action intuitive to use. Example variables: content fields to process, locales for translation, reference entries, formatting preferences, or validation rules.

create_concept

ChatGPT
Create a new taxonomy concept in Contentful. Concepts are used to organize and categorize content within taxonomies. The prefLabel is required and should be localized. You can optionally provide a conceptId for a user-defined ID, or let Contentful generate one automatically. You can also include definitions, notes, relationships to other concepts, and various metadata fields.

create_concept_scheme

ChatGPT
Create a new taxonomy concept scheme in Contentful. Concept schemes organize related concepts and provide hierarchical structure for taxonomy management. The prefLabel is required and should be localized. You can optionally provide a conceptSchemeId for a user-defined ID, or let Contentful generate one automatically. You can also include definitions, notes, and references to top-level concepts.

create_content_type

ChatGPT
Create a new content type

create_entry

ChatGPT
Create a new entry in Contentful. Before executing this function, you need to know the contentTypeId (not the content type NAME) and the fields of that contentType. You can get the fields definition by using the GET_CONTENT_TYPE tool. TAGS: To add tags to an entry, include a metadata object with a tags array. Each tag should be an object with sys.type='Link', sys.linkType='Tag', and sys.id='tagId'. Example: { metadata: { tags: [{ sys: { type: 'Link', linkType: 'Tag', id: 'myTagId' } }] } }.

create_environment

ChatGPT
Create a new environment

create_locale

ChatGPT
Create a new locale in your Contentful environment. A locale defines a language-region pair (e.g., "en-US" for English United States). You can specify fallback behavior, API availability settings, and whether the locale is optional for content editors. Note: setting 'default' is currently not supported.

create_tag

ChatGPT
Creates a new tag and returns it. Both name and ID must be unique to each environment. Tag names can be modified after creation, but the tag ID cannot. The tag visibility can be set to public or private, defaulting to private if not specified.

create_upload_session

ChatGPT
Creates a short-lived upload session for staging a binary file to Contentful. Returns uploadHandle, uploadUrl, and expiresAt. After receiving uploadUrl, PUT the raw file bytes to https://mcp.contentful.com{uploadUrl} with a Content-Length header (no auth required). Then call upload_asset with file.uploadHandle to create the Contentful asset. Note: ChatGPT users can skip this step — attach a file directly to upload_asset instead.

delete_ai_action

ChatGPT
Delete a specific AI action from your Contentful space. This is a two-phase operation: the first call (without confirm/confirmToken) returns a preview of the AI action and a confirmToken. To complete the deletion, call this tool again with the same aiActionId, confirm: true, and the confirmToken from the preview response.

delete_asset

ChatGPT
Delete an asset from your Contentful space. This is a two-phase operation: the first call (without confirm/confirmToken) returns a preview of the asset and a confirmToken. To complete the deletion, call this tool again with the same assetId, confirm: true, and the confirmToken from the preview response.

delete_concept

ChatGPT
Delete a taxonomy concept from Contentful. This is a two-phase operation: the first call (without confirm/confirmToken) returns a preview of the concept and a confirmToken. To complete the deletion, call this tool again with the same conceptId, confirm: true, and the confirmToken from the preview response. The concept version is fetched server-side and used for optimistic concurrency control.

delete_concept_scheme

ChatGPT
Delete a taxonomy concept scheme from Contentful. This is a two-phase operation: the first call (without confirm/confirmToken) returns a preview of the concept scheme and a confirmToken. To complete the deletion, call this tool again with the same conceptSchemeId, confirm: true, and the confirmToken from the preview response. The concept scheme version is fetched server-side and used for optimistic concurrency control.

delete_content_type

ChatGPT
Delete a content type from your Contentful space. This is a two-phase operation: the first call (without confirm/confirmToken) returns a preview of the content type and a confirmToken. To complete the deletion, call this tool again with the same contentTypeId, confirm: true, and the confirmToken from the preview response.

delete_content_type_field

ChatGPT
Permanently mark a single field as deleted on a content type. Destructive and irreversible once published. Updates the content type draft only — call publish_content_type afterwards for the deletion to take effect. The field must not be required AND must already be omitted in the published version of the content type. Run omit_content_type_field, then publish_content_type, before calling this. Use disable_content_type_field to temporarily hide a field instead.

delete_entry

ChatGPT
Delete a specific content entry from your Contentful space. This is a two-phase operation: the first call (without confirm/confirmToken) returns a preview of the entry and a confirmToken. To complete the deletion, call this tool again with the same entryId, confirm: true, and the confirmToken from the preview response.

delete_environment

ChatGPT
Delete an environment from your Contentful space. This is a two-phase operation: the first call (without confirm/confirmToken) returns a preview and a confirmToken. To complete the deletion, call this tool again with the same environmentId, confirm: true, and the confirmToken from the preview response.

delete_locale

ChatGPT
Delete a specific locale from your Contentful environment. This is a two-phase operation: the first call (without confirm/confirmToken) returns a preview of the locale and a confirmToken. To complete the deletion, call this tool again with the same localeId, confirm: true, and the confirmToken from the preview response.

disable_content_type_field

ChatGPT
Toggle the disabled and/or omitted flags on a single field. Setting disabled=true hides the field from the editor UI; setting omitted=true removes it from API responses. Both flags are reversible. Updates the content type draft only — call publish_content_type afterwards for the change to take effect. Use omit_content_type_field when only changing the omitted flag.

get_ai_action

ChatGPT
Retrieve details about a specific AI action including its configuration, instructions, and defined variables

get_ai_action_invocation

ChatGPT
Retrieve information about a specific AI action invocation by its ID.

get_asset

ChatGPT
Retrieve an asset

get_concept

ChatGPT
Retrieve a specific taxonomy concept from Contentful. Returns the complete concept with all its properties including prefLabel, definition, relationships, and other metadata.

get_concept_scheme

ChatGPT
Retrieve a specific taxonomy concept scheme from Contentful. Returns the complete concept scheme with all its properties including prefLabel, definition, topConcepts, and other metadata.

get_content_type

ChatGPT
Get details about a specific Contentful content type

get_editor_interface

ChatGPT
Get the editor interface for a specific content type. Returns detailed configuration including field controls (widgets), sidebar widgets, editor layout, and group controls that define how the content type is displayed and edited in the Contentful web app.

get_entry

ChatGPT
Retrieve an existing entry

get_entry_snapshot

ChatGPT
Retrieve version history (snapshots) of an entry for safe rollback. Call with only an entryId to list all available snapshots (each has a snapshot ID and metadata). Call with both entryId and snapshotId to retrieve the full field content of that specific snapshot, which can then be used to restore a previous version.

get_initial_context

ChatGPT
IMPORTANT: This tool must be called before using any other tools. It will get initial context and usage instructions for this MCP server.

get_locale

ChatGPT
Retrieve a specific locale from your Contentful environment

get_org

ChatGPT
Get details of a specific organization

get_space

ChatGPT
Get details of a space

invoke_ai_action

ChatGPT
Invoke an AI action with variables. MANDATORY BULK OPERATIONS: You MUST ALWAYS use bulk operations when processing multiple content pieces by adding multiple items to the fields array - never make separate calls. VARIABLES: Can be (1) String values for simple text input, or (2) Entity references to read from specific entry fields using {"entityId": "entryId", "entityPath": "fields.fieldName.locale", "entityType": "Entry"}. POLLING: Automatically polls every 3 seconds for up to 60 seconds. CRITICAL FOLLOW-UP: After invoking AI actions, you MUST immediately take the next step to complete the workflow. The tool response will provide specific guidance on required next steps - you must follow this guidance.

list_ai_actions

ChatGPT
List AI actions in a space. Returns a maximum of 3 items per request. Use skip parameter to paginate through results.

list_assets

ChatGPT
List assets in a space. Returns a maximum of 3 items per request. Use skip parameter to paginate through results.

list_concept_schemes

ChatGPT
List taxonomy concept schemes in a Contentful organization. Supports pagination and filtering options. Returns a summarized view of concept schemes with essential information.

list_concepts

ChatGPT
List taxonomy concepts in a Contentful organization. Supports multiple modes: (1) Default - list all concepts with pagination and filtering, (2) getTotalOnly - return only the total count of concepts, (3) getDescendants - get descendants of a specific concept (requires conceptId), (4) getAncestors - get ancestors of a specific concept (requires conceptId). Returns summarized view of concepts with essential information.

list_content_types

ChatGPT
List content types in a space. Returns a maximum of 10 items per request. Use skip parameter to paginate through results.

list_editor_interfaces

ChatGPT
Get all editor interfaces of a space. Returns configuration for how content types are displayed and edited in the Contentful web app, including field controls, sidebars, and layout settings.

list_environments

ChatGPT
List all environments in a space

list_locales

ChatGPT
List all locales in your Contentful environment. Returns locale information including language codes, fallback settings, and API availability.

list_orgs

ChatGPT
List all organizations that the user has access to

list_spaces

ChatGPT
List all available spaces

list_tags

ChatGPT
List all tags in a space. Returns all tags that exist in a given environment.

omit_content_type_field

ChatGPT
Mark a single field as omitted (or un-omitted) on a content type. Updates the content type draft only — call publish_content_type afterwards for the change to take effect. Reversible via the same tool with omitted=false. This is a prerequisite for delete_content_type_field: the field must be omitted in the published version before it can be deleted.

publish_ai_action

ChatGPT
Publish an AI action to make it available for use in the Contentful web app

publish_asset

ChatGPT
Publish an asset or multiple assets. Accepts either a single assetId (string) or an array of assetIds (up to 100 assets). For a single asset, it uses the standard publish operation. For multiple assets, it automatically uses bulk publishing.

publish_content_type

ChatGPT
Publish a content type

publish_entry

ChatGPT
Publish an entry or multiple entries. Accepts either a single entryId (string) or an array of entryIds (up to 100 entries). For a single entry, it uses the standard publish operation. For multiple entries, it automatically uses bulk publishing.

resolve_entry_references

ChatGPT
Recursively resolve an entry's references and return the entry plus its descendant entries and linked assets. Useful for verifying the structure of a page or any entry that links to other entries before or after edits, without issuing one fetch per descendant. Set include (1-10, default 2) to control how many levels deep to walk; the CMA caps this at 10.

search_entries

ChatGPT
Search for specific entries in your Contentful space

unarchive_asset

ChatGPT
Unarchive an asset or multiple assets. Restores archived assets, making them available for editing and publishing again. Accepts either a single assetId (string) or an array of assetIds (up to 100 assets). For multiple assets, processes each one sequentially as a pseudo-bulk operation.

unarchive_entry

ChatGPT
Unarchive an entry or multiple entries. Restores archived entries, making them available for editing and publishing again. Accepts either a single entryId (string) or an array of entryIds (up to 100 entries). For multiple entries, processes each one sequentially as a pseudo-bulk operation.

unpublish_ai_action

ChatGPT
Unpublish an AI action to remove it from use in the Contentful web app

unpublish_asset

ChatGPT
Unpublish an asset or multiple assets. Accepts either a single assetId (string) or an array of assetIds (up to 100 assets). For a single asset, it uses the standard unpublish operation. For multiple assets, it automatically uses bulk unpublishing.

unpublish_content_type

ChatGPT
Unpublish a content type

unpublish_entry

ChatGPT
Unpublish an entry or multiple entries. Accepts either a single entryId (string) or an array of entryIds (up to 100 entries). For a single entry, it uses the standard unpublish operation. For multiple entries, it automatically uses bulk unpublishing.

update_ai_action

ChatGPT
Update an existing AI action. Your updates will be merged with the existing AI action data, so you only need to provide the fields you want to change.

update_asset

ChatGPT
Update an asset

update_concept

ChatGPT
Update a taxonomy concept in Contentful. Requires the concept ID and version number for optimistic concurrency control. You can update any combination of fields - only the fields you provide will be changed, while others remain unchanged. Use this to modify labels, definitions, relationships, and other concept properties.

update_concept_scheme

ChatGPT
Update a taxonomy concept scheme in Contentful. Requires the concept scheme ID and version number for optimistic concurrency control. You can update any combination of fields - only the fields you provide will be changed, while others remain unchanged. Use this to modify labels, definitions, relationships, and other concept scheme properties.

update_content_type

ChatGPT
Update an existing content type. The handler will merge your field updates with existing content type data, so you only need to provide the fields and properties you want to change.

update_editor_interface

ChatGPT
Update the editor interface for a content type. Allows customization of field controls (widgets), sidebar widgets, editor layout, and group controls. Only provide the properties you want to change - existing values will be preserved for unprovided fields.

update_entry

ChatGPT
Update an existing entry. You MUST call get_entry first to read the current state, then pass the sys.version you received as the version parameter. The handler merges your field updates with the existing entry fields, so you only need to provide the fields you want to change. However, for multiple-locale fields, all existing locales must be included in the update. If the version is stale (the entry changed since you read it), the update is rejected and you must re-fetch with get_entry.

update_locale

ChatGPT
Update an existing locale in your Contentful environment. You can modify the locale name, code, fallback behavior, API availability settings, and whether the locale is optional for content editors. Only provide the fields you want to change. IMPORTANT: internal_code cannot be updated.

upload_asset

ChatGPT
Upload a new asset to Contentful. For ChatGPT users: attach a file directly — ChatGPT will provide a temporary download_url and this tool fetches the bytes server-side (no agent network access required). For other clients: stage the file first by calling the create_upload_session MCP tool to get an uploadHandle and uploadUrl, PUT the raw bytes to uploadUrl (include Content-Length header), then call this tool with file.uploadHandle. For publicly accessible files, use file.upload with an http:// or https:// URL instead.

Capabilities

Writes

App Stats

69

Tools

ChatGPT

Platforms

Works with

ChatGPT

Data refreshed daily