contentful-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SPACE_ID | No | Optional space ID to scope operations to a specific space | |
| ENVIRONMENT_ID | No | Optional environment ID to scope operations to a specific environment | |
| CONTENTFUL_HOST | No | Contentful Management API Endpoint | https://api.contentful.com |
| CONTENTFUL_MANAGEMENT_ACCESS_TOKEN | No | Your Content Management API token |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
| prompts | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_entriesA | Search for entries using query parameters. Returns a maximum of 3 items per request. Use skip parameter to paginate through results. |
| create_entryA | 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. IMPORTANT: All field values MUST include a locale key (e.g., 'en-US') for each value, like: { title: { 'en-US': 'My Title' } }. Every field in Contentful requires a locale even for single-language content. |
| get_entryC | Retrieve an existing entry |
| update_entryA | Update an existing entry. The handler will merge your field updates with the existing entry fields, so you only need to provide the fields and locales you want to change. IMPORTANT: All field values MUST include a locale key (e.g., 'en-US') for each value, like: { title: { 'en-US': 'My Updated Title' } }. Every field in Contentful requires a locale even for single-language content. |
| delete_entryC | Delete an entry |
| publish_entryA | 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. |
| unpublish_entryA | 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. |
| list_assetsA | List assets in a space. Returns a maximum of 3 items per request. Use skip parameter to paginate through results. |
| upload_assetC | Upload a new asset |
| get_assetC | Retrieve an asset |
| update_assetD | Update an asset |
| delete_assetC | Delete an asset |
| publish_assetC | Publish an asset |
| unpublish_assetC | Unpublish an asset |
| list_content_typesB | List content types in a space. Returns a maximum of 10 items per request. Use skip parameter to paginate through results. |
| get_content_typeB | Get details of a specific content type |
| create_content_typeD | Create a new content type |
| update_content_typeB | 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. |
| delete_content_typeC | Delete a content type |
| publish_content_typeC | Publish a content type |
| list_spacesA | List all available spaces |
| get_spaceC | Get details of a space |
| list_environmentsC | List all environments in a space |
| create_environmentD | Create a new environment |
| delete_environmentC | Delete an environment |
| bulk_validateC | Validate multiple entries at once |
| list_ai_actionsC | List all AI Actions in a space |
| get_ai_actionB | Get a specific AI Action by ID |
| create_ai_actionC | Create a new AI Action |
| update_ai_actionC | Update an existing AI Action |
| delete_ai_actionB | Delete an AI Action |
| publish_ai_actionC | Publish an AI Action |
| unpublish_ai_actionC | Unpublish an AI Action |
| invoke_ai_actionC | Invoke an AI Action with variables |
| get_ai_action_invocationB | Get the result of a previous AI Action invocation |
| get_commentsB | Retrieve comments for an entry with pagination support. Returns comments with their status and body content. |
| create_commentA | Create a new comment on an entry. The comment will be created with the specified body and status. To create a threaded conversation (reply to an existing comment), provide the parent comment ID. This allows you to work around the 512-character limit by creating threaded replies. |
| get_single_commentB | Retrieve a specific comment by its ID for an entry. |
| delete_commentC | Delete a specific comment from an entry. |
| update_commentA | Update an existing comment on an entry. The handler will merge your updates with the existing comment data. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| explain-api-concepts | Explain Contentful API concepts and relationships |
| space-identification | Guide for identifying the correct Contentful space for operations |
| content-modeling-guide | Guide through content modeling decisions and best practices |
| api-operation-help | Get detailed help for specific Contentful API operations |
| entry-management | Help with CRUD operations and publishing workflows for content entries |
| asset-management | Guidance on managing digital assets like images, videos, and documents |
| content-type-operations | Help with defining and managing content types and their fields |
| ai-actions-overview | Comprehensive overview of AI Actions in Contentful |
| ai-actions-create | Guide for creating and configuring AI Actions in Contentful |
| ai-actions-variables | Explanation of variable types and configuration for AI Actions |
| ai-actions-invoke | Help with invoking AI Actions and processing results |
| bulk-operations | Guidance on performing actions on multiple entities simultaneously |
| space-environment-management | Help with managing spaces, environments, and deployment workflows |
| mcp-tool-usage | Instructions for using Contentful MCP tools effectively |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ivo-toby/contentful-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server