- Home
- MCP servers
- Contentful
Contentful
- typescript
46
GitHub Stars
typescript
Language
6 months ago
First Indexed
2 months ago
Catalog Refreshed
Documentation & install
Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.
Installation
Add the following to your MCP client configuration file.
Configuration
View docs{
"mcpServers": {
"contentful-contentful-mcp-server": {
"command": "npx",
"args": [
"-y",
"@contentful/mcp-server"
],
"env": {
"SPACE_ID": "YOUR_SPACE_ID",
"ENVIRONMENT_ID": "master",
"CONTENTFUL_HOST": "api.contentful.com",
"CONTENTFUL_MANAGEMENT_ACCESS_TOKEN": "YOUR CMA TOKEN"
}
}
}
}You can use this Contentful MCP Server to empower your AI assistants with direct access to Contentful APIs and a rich set of content management actions. It enables you to create, edit, organize, and publish content within Contentful spaces through your preferred MCP client, streamlining workflows and automating repetitive tasks.
How to use
Connect your MCP client to the Contentful MCP Server using the standard MCP connection flow for your tool (for example, Codex, Cursor, or Claude Desktop). Once connected, you can list, create, update, publish, and organize content types, entries, assets, spaces, environments, locales, and tags. You can also create and invoke AI actions to automate common Contentful workflows, such as translating content or applying bulk updates across entries.
Typical usage patterns include: creating new content types or entries, updating fields across multiple entries, uploading and tagging assets, and publishing content changes. You can also search and filter entries, manage locales, and organize assets by campaigns or other metadata. Use natural language prompts in your MCP client to trigger the available tools and workflows.
How to install
Prerequisites you need before installation: Node.js and npm, a Contentful account with a Space ID, and a Contentful Management API personal access token.
- Install from source or prepare your environment for running the MCP server locally.
# Install from source
git clone https://github.com/contentful/contentful-mcp-server.git cd contentful-mcp-server npm install npm run build
3. Start the MCP server using the provided command with your Contentful credentials and configuration. Use the following runtime command and environment variables as shown.
command: npx args: ["-y", "@contentful/mcp-server"]
4. Set up the required environment variables for your Contentful connection. You can pass these through your shell or your MCP configuration as shown in the example configuration below.
## Configuration reference
Below is an example configuration snippet that shows how to wire up the MCP server in your environment. This configuration uses the standard runtime command and exposes the necessary environment variables.
{ "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" } } } }
## Environment variables
The following environment variables are used to configure the MCP server for Contentful access.
CONTENTFUL_MANAGEMENT_ACCESS_TOKEN=your-CMA-token SPACE_ID=your-space-id ENVIRONMENT_ID=master CONTENTFUL_HOST=api.contentful.com
## Available tools overview
The server exposes a comprehensive set of tools for managing Contentful resources. You can perform actions related to context setup, content types, entries, assets, spaces and environments, locales, tags, and AI-driven actions. Each tool is designed to help you interact with Contentful programmatically and efficiently.
## Notes and tips
- Ensure your Contentful CMA token has the required permissions for the actions you intend to perform. - Use descriptive environment names to keep spaces and environments organized. - Validate changes in a staging environment before publishing to production. - If you encounter authentication or permission errors, regenerate tokens and verify the associated Space ID and Environment ID.
## Available tools
### get\_initial\_context
Initialize connection and get usage instructions
### list\_content\_types
List all content types
### get\_content\_type
Get detailed content type information
### create\_content\_type
Create new content types
### update\_content\_type
Modify existing content types
### publish\_content\_type
Publish content type changes
### unpublish\_content\_type
Unpublish content types
### delete\_content\_type
Remove content types
### search\_entries
Search and filter entries
### get\_entry
Retrieve specific entries
### create\_entry
Create new content entries
### update\_entry
Modify existing entries
### publish\_entry
Publish entries (single or bulk)
### unpublish\_entry
Unpublish entries (single or bulk)
### delete\_entry
Remove entries
### upload\_asset
Upload new assets
### list\_assets
List and browse assets
### get\_asset
Retrieve specific assets
### update\_asset
Modify asset metadata
### publish\_asset
Publish assets (single or bulk)
### unpublish\_asset
Unpublish assets (single or bulk)
### delete\_asset
Remove assets
### list\_spaces
List available spaces
### get\_space
Get space details
### list\_environments
List environments
### create\_environment
Create new environments
### delete\_environment
Remove environments
### list\_locales
List all locales in your environment
### get\_locale
Retrieve specific locale information
### create\_locale
Create new locales for multi-language content
### update\_locale
Modify existing locale settings
### delete\_locale
Remove locales from environment
### list\_tags
List all tags
### create\_tag
Create new tags
### create\_ai\_action
Create custom AI-powered workflows
### invoke\_ai\_action
Invoke an AI action with variables
### get\_ai\_action\_invocation
Get AI action invocation details
### get\_ai\_action
Retrieve AI action details and configuration
### list\_ai\_actions
List AI actions in a space
### update\_ai\_action
Update existing AI actions
### publish\_ai\_action
Publish AI actions for use
### unpublish\_ai\_action
Unpublish AI actions
### delete\_ai\_action
Remove AI actions