Contentful
Manage Contentful content — entries, assets, and content models across your spaces. Sign in with Contentful to connect.
What Contentful exposes.
Every tool below is one this server advertised the last time Omniio refreshed it, under the contentful__ namespace. Your agent never loads them all — it searches, and gets the few that match.
contentful__append_entry_field7 arguments · 6 required
Append one or more items to an array-typed entry field (Array of Symbols, Array of Links, or Array of ResourceLinks) entirely server-side. The agent never holds or resends the full array — the tool reads the current array on the server, deduplicates (Links by sys.id, ResourceLinks by sys.urn, Symbols by exact value), appends survivors, and writes back only the target field/locale. PREFER this over update_entry when adding items to large reference arrays (e.g. a page with dozens of references) — update_entry replaces the full array and will silently lose items if the agent held a truncated read. Optionally pass version (from get_entry) to enforce a conflict check; omit it to append without a version guard (safe for additive operations). Returns the updated entry plus appended/skipped item lists and the new array length.
Required
spaceIdenvironmentIdentryIdfieldIdlocalevaluescontentful__archive_asset4 arguments · 3 required
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.
Required
spaceIdenvironmentIdassetIdcontentful__archive_entry4 arguments · 3 required
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.
Required
spaceIdenvironmentIdentryIdcontentful__create_ai_action7 arguments · 6 required
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.
Required
spaceIdenvironmentIdnamedescriptioninstructionconfigurationcontentful__create_concept15 arguments · 2 required
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.
Required
organizationIdprefLabelcontentful__create_concept_scheme11 arguments · 2 required
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.
Required
organizationIdprefLabelcontentful__create_content_type8 arguments · 5 required
Create a new content type
Required
spaceIdenvironmentIdnamedisplayFieldfieldscontentful__create_entry5 arguments · 4 required
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' } }] } }.
Required
spaceIdenvironmentIdcontentTypeIdfieldscontentful__create_environment4 arguments · 3 required
Create a new environment
Required
spaceIdenvironmentIdnamecontentful__create_locale9 arguments · 5 required
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.
Required
spaceIdenvironmentIdnamecodefallbackCodecontentful__create_tag5 arguments · 5 required
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.
Required
spaceIdenvironmentIdnameidvisibilitycontentful__create_upload_sessionno arguments
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.
contentful__delete_ai_action5 arguments · 3 required
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.
Required
spaceIdenvironmentIdaiActionIdcontentful__delete_asset5 arguments · 3 required
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.
Required
spaceIdenvironmentIdassetIdcontentful__delete_concept4 arguments · 2 required
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.
Required
organizationIdconceptIdcontentful__delete_concept_scheme4 arguments · 2 required
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.
Required
organizationIdconceptSchemeIdcontentful__delete_content_type5 arguments · 3 required
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.
Required
spaceIdenvironmentIdcontentTypeIdcontentful__delete_content_type_field4 arguments · 4 required
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.
Required
spaceIdenvironmentIdcontentTypeIdfieldIdcontentful__delete_entry5 arguments · 3 required
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.
Required
spaceIdenvironmentIdentryIdcontentful__delete_environment4 arguments · 2 required
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.
Required
spaceIdenvironmentIdcontentful__delete_locale5 arguments · 3 required
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.
Required
spaceIdenvironmentIdlocaleIdcontentful__disable_content_type_field6 arguments · 4 required
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.
Required
spaceIdenvironmentIdcontentTypeIdfieldIdcontentful__get_ai_action3 arguments · 3 required
Retrieve details about a specific AI action including its configuration, instructions, and defined variables
Required
spaceIdenvironmentIdaiActionIdcontentful__get_ai_action_invocation4 arguments · 4 required
Retrieve information about a specific AI action invocation by its ID.
Required
spaceIdenvironmentIdaiActionIdinvocationIdcontentful__get_asset3 arguments · 3 required
Retrieve an asset
Required
spaceIdenvironmentIdassetIdcontentful__get_concept2 arguments · 2 required
Retrieve a specific taxonomy concept from Contentful. Returns the complete concept with all its properties including prefLabel, definition, relationships, and other metadata.
Required
organizationIdconceptIdcontentful__get_concept_scheme2 arguments · 2 required
Retrieve a specific taxonomy concept scheme from Contentful. Returns the complete concept scheme with all its properties including prefLabel, definition, topConcepts, and other metadata.
Required
organizationIdconceptSchemeIdcontentful__get_content_type3 arguments · 3 required
Get details about a specific Contentful content type
Required
spaceIdenvironmentIdcontentTypeIdcontentful__get_editor_interface3 arguments · 3 required
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.
Required
spaceIdenvironmentIdcontentTypeIdcontentful__get_entry3 arguments · 3 required
Retrieve an existing entry
Required
spaceIdenvironmentIdentryIdcontentful__get_entry_snapshot4 arguments · 3 required
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.
Required
spaceIdenvironmentIdentryIdcontentful__get_initial_contextno arguments
IMPORTANT: This tool must be called before using any other tools. It will get initial context and usage instructions for this MCP server.
contentful__get_locale3 arguments · 3 required
Retrieve a specific locale from your Contentful environment
Required
spaceIdenvironmentIdlocaleIdcontentful__get_org1 argument · 1 required
Get details of a specific organization
Required
organizationIdcontentful__get_space1 argument · 1 required
Get details of a space
Required
spaceIdcontentful__invoke_ai_action4 arguments · 4 required
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.
Required
spaceIdenvironmentIdaiActionIdfieldscontentful__list_ai_actions7 arguments · 2 required
List AI actions in a space. Returns a maximum of 3 items per request. Use skip parameter to paginate through results.
Required
spaceIdenvironmentIdcontentful__list_assets9 arguments · 2 required
List assets in a space. Returns a maximum of 3 items per request. Use skip parameter to paginate through results.
Required
spaceIdenvironmentIdcontentful__list_concept_schemes2 arguments · 1 required
List taxonomy concept schemes in a Contentful organization. Supports pagination and filtering options. Returns a summarized view of concept schemes with essential information.
Required
organizationIdcontentful__list_concepts9 arguments · 1 required
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.
Required
organizationIdcontentful__list_content_types7 arguments · 2 required
List content types in a space. Returns a maximum of 10 items per request. Use skip parameter to paginate through results.
Required
spaceIdenvironmentIdcontentful__list_editor_interfaces2 arguments · 2 required
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.
Required
spaceIdenvironmentIdcontentful__list_environments6 arguments · 1 required
List all environments in a space
Required
spaceIdcontentful__list_locales7 arguments · 2 required
List all locales in your Contentful environment. Returns locale information including language codes, fallback settings, and API availability.
Required
spaceIdenvironmentIdcontentful__list_orgs4 arguments
List all organizations that the user has access to
contentful__list_spaces4 arguments
List all available spaces
contentful__list_tags6 arguments · 2 required
List all tags in a space. Returns all tags that exist in a given environment.
Required
spaceIdenvironmentIdcontentful__omit_content_type_field5 arguments · 4 required
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.
Required
spaceIdenvironmentIdcontentTypeIdfieldIdcontentful__publish_ai_action3 arguments · 3 required
Publish an AI action to make it available for use in the Contentful web app
Required
spaceIdenvironmentIdaiActionIdcontentful__publish_asset4 arguments · 3 required
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.
Required
spaceIdenvironmentIdassetIdcontentful__publish_content_type3 arguments · 3 required
Publish a content type
Required
spaceIdenvironmentIdcontentTypeIdcontentful__publish_entry4 arguments · 3 required
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.
Required
spaceIdenvironmentIdentryIdcontentful__resolve_entry_references4 arguments · 3 required
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.
Required
spaceIdenvironmentIdentryIdcontentful__search_entries3 arguments · 3 required
Search for specific entries in your Contentful space
Required
spaceIdenvironmentIdquerycontentful__semantic_search4 arguments · 3 required
Find 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.
Required
spaceIdenvironmentIdquerycontentful__unarchive_asset4 arguments · 3 required
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.
Required
spaceIdenvironmentIdassetIdcontentful__unarchive_entry4 arguments · 3 required
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.
Required
spaceIdenvironmentIdentryIdcontentful__unpublish_ai_action3 arguments · 3 required
Unpublish an AI action to remove it from use in the Contentful web app
Required
spaceIdenvironmentIdaiActionIdcontentful__unpublish_asset4 arguments · 3 required
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.
Required
spaceIdenvironmentIdassetIdcontentful__unpublish_content_type3 arguments · 3 required
Unpublish a content type
Required
spaceIdenvironmentIdcontentTypeIdcontentful__unpublish_entry4 arguments · 3 required
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.
Required
spaceIdenvironmentIdentryIdcontentful__update_ai_action8 arguments · 3 required
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.
Required
spaceIdenvironmentIdaiActionIdcontentful__update_asset5 arguments · 4 required
Update an asset
Required
spaceIdenvironmentIdassetIdfieldscontentful__update_concept16 arguments · 3 required
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.
Required
organizationIdconceptIdversioncontentful__update_concept_scheme13 arguments · 3 required
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.
Required
organizationIdconceptSchemeIdversioncontentful__update_content_type8 arguments · 3 required
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.
Required
spaceIdenvironmentIdcontentTypeIdcontentful__update_editor_interface7 arguments · 3 required
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.
Required
spaceIdenvironmentIdcontentTypeIdcontentful__update_entry6 arguments · 5 required
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. NOTE: for appending items to large array fields (e.g. reference arrays with many items), prefer append_entry_field — it performs the read-modify-append server-side and deduplicates, so you never need to hold the full array.
Required
spaceIdenvironmentIdentryIdversionfieldscontentful__update_locale4 arguments · 4 required
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.
Required
spaceIdenvironmentIdlocaleIdfieldscontentful__upload_asset7 arguments · 4 required
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.
Required
spaceIdenvironmentIdtitlefile
Three steps, and the last one is not yours.
Point a client at Omniio
One URL, authorized once by your client. If you already use Omniio, this step is done.
Switch Contentful on
Authorize it from your library; the grant is yours and stays yours.
Ask for what you need
The agent searches, reads the one schema it picked, and runs it. You do not name the tool.
claude mcp add --transport http omniio https://mcp.omniio.devOthers in the same category.
They share the endpoint, so having more than one on costs you nothing in context — the search decides which is relevant.