archive_asset
ChatGPTArchive 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
ChatGPTArchive 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
ChatGPTCreate 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
ChatGPTCreate 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
ChatGPTCreate 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
ChatGPTCreate a new content type
create_entry
ChatGPTCreate 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
ChatGPTCreate a new environment
create_locale
ChatGPTCreate 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
ChatGPTCreates 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
ChatGPTCreates 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
ChatGPTDelete 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
ChatGPTDelete 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
ChatGPTDelete 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
ChatGPTDelete 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
ChatGPTDelete 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
ChatGPTPermanently 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
ChatGPTDelete 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
ChatGPTDelete 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
ChatGPTDelete 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
ChatGPTToggle 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
ChatGPTRetrieve details about a specific AI action including its configuration, instructions, and defined variables
get_ai_action_invocation
ChatGPTRetrieve information about a specific AI action invocation by its ID.
get_asset
ChatGPTRetrieve an asset
get_concept
ChatGPTRetrieve a specific taxonomy concept from Contentful. Returns the complete concept with all its properties including prefLabel, definition, relationships, and other metadata.
get_concept_scheme
ChatGPTRetrieve 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
ChatGPTGet details about a specific Contentful content type
get_editor_interface
ChatGPTGet 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
ChatGPTRetrieve an existing entry
get_entry_snapshot
ChatGPTRetrieve 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
ChatGPTIMPORTANT: This tool must be called before using any other tools. It will get initial context and usage instructions for this MCP server.
get_locale
ChatGPTRetrieve a specific locale from your Contentful environment
get_org
ChatGPTGet details of a specific organization
get_space
ChatGPTGet details of a space
invoke_ai_action
ChatGPTInvoke 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
ChatGPTList AI actions in a space. Returns a maximum of 3 items per request. Use skip parameter to paginate through results.
list_assets
ChatGPTList assets in a space. Returns a maximum of 3 items per request. Use skip parameter to paginate through results.
list_concept_schemes
ChatGPTList taxonomy concept schemes in a Contentful organization. Supports pagination and filtering options. Returns a summarized view of concept schemes with essential information.
list_concepts
ChatGPTList 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
ChatGPTList content types in a space. Returns a maximum of 10 items per request. Use skip parameter to paginate through results.
list_editor_interfaces
ChatGPTGet 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
ChatGPTList all environments in a space
list_locales
ChatGPTList all locales in your Contentful environment. Returns locale information including language codes, fallback settings, and API availability.
list_orgs
ChatGPTList all organizations that the user has access to
list_spaces
ChatGPTList all available spaces
list_tags
ChatGPTList all tags in a space. Returns all tags that exist in a given environment.
omit_content_type_field
ChatGPTMark 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
ChatGPTPublish an AI action to make it available for use in the Contentful web app
publish_asset
ChatGPTPublish 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
ChatGPTPublish a content type
publish_entry
ChatGPTPublish 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
ChatGPTRecursively 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
ChatGPTSearch for specific entries in your Contentful space
semantic_search
ChatGPTFind entries by meaning using semantic (vector) search. Provide a descriptive natural-language query of what you're looking for — phrases resembling entry content work best (not questions or JSON). Optionally restrict to specific content types. Returns up to 10 matching entry references (unranked); use get_entry to fetch full content. Requires semantic search to be enabled for the environment.
unarchive_asset
ChatGPTUnarchive 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
ChatGPTUnarchive 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
ChatGPTUnpublish an AI action to remove it from use in the Contentful web app
unpublish_asset
ChatGPTUnpublish 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
ChatGPTUnpublish a content type
unpublish_entry
ChatGPTUnpublish 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
ChatGPTUpdate 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
ChatGPTUpdate an asset
update_concept
ChatGPTUpdate 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
ChatGPTUpdate 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
ChatGPTUpdate 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
ChatGPTUpdate 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
ChatGPTUpdate 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
ChatGPTUpdate 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
ChatGPTUpload 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.