An MCP server implementation that integrates with Contentful's Content Management API, providing comprehensive content management capabilities.
To prevent context window overflow in LLMs, list operations (like search_entries and list_assets) are limited to 3 items per request. Each response includes:
This pagination system allows the LLM to efficiently handle large datasets while maintaining context window limits.
The bulk operations feature provides efficient management of multiple content items simultaneously:
These bulk operation tools are ideal for content migrations, mass updates, or batch publishing workflows.
The project includes an MCP Inspector tool that helps with development and debugging:
npm run inspect
to start the inspector, you can open the inspector by going to http://localhost:5173npm run inspect:watch
to automatically restart the inspector when files changeThe project also contains a npm run dev
command which rebuilds and reloads the MCP server on every change.
These variables can also be set as arguments
CONTENTFUL_HOST
/ --host
: Contentful Management API Endpoint (defaults to https://api.contentful.com)CONTENTFUL_MANAGEMENT_ACCESS_TOKEN
/ --management-token
: Your Content Management API tokenYou can scope the spaceId and EnvironmentId to ensure the LLM will only do operations on the defined space/env ID's.
This is mainly to support agents that are to operate within specific spaces. If both SPACE_ID
and ENVIRONMENT_ID
env-vars are set
the tools will not report needing these values and the handlers will use the environment vars to do CMA operations.
You will also loose access to the tools in the space-handler, since these tools are across spaces.
You can also add the SPACE_ID
and ENVIRONMENT_ID
by using arguments --space-id
and --environment-id
Instead of providing a Management token you can also leverage App Identity for handling authentication. You would have to setup and install a Contentful App and set the following parameters when calling the MCP-server:
--app-id
= the app Id which is providing the Apptoken--private-key
= the private key you created in the user-interface with your app, tied to app_id
--space-id
= the spaceId in which the app is installed--environment-id
= the environmentId (within the space) in which the app is installed.With these values the MCP server will request a temporary AppToken to do content operation in the defined space/environment-id. This especially useful when using this MCP server in backend systems that act as MCP-client (like chat-agents)
You do not need to clone this repo to use this MCP, you can simply add it to
your claude_desktop_config.json
:
Add or edit ~/Library/Application Support/Claude/claude_desktop_config.json
and add the following lines:
{
"mcpServers": {
"contentful": {
"command": "npx",
"args": ["-y", "@ivotoby/contentful-management-mcp-server"],
"env": {
"CONTENTFUL_MANAGEMENT_ACCESS_TOKEN": "<Your CMA token>"
}
}
}
}
If your MCPClient does not support setting environment variables you can also set the management token using an argument like this:
{
"mcpServers": {
"contentful": {
"command": "npx",
"args": ["-y", "@ivotoby/contentful-management-mcp-server",'--management-token', "<your token>", '--host', 'http://api.contentful.com'],
}
}
}
To install Contentful Management Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @ivotoby/contentful-management-mcp-server --client claude
If you want to contribute and test what Claude does with your contributions;
npm run dev
, this will start the watcher that rebuilds the MCP server on every changeclaude_desktop_config.json
to reference the project directly, ie;{
"mcpServers": {
"contentful": {
"command": "node",
"args": ["/Users/ivo/workspace/contentful-mcp/bin/mcp-server.js"],
"env": {
"CONTENTFUL_MANAGEMENT_ACCESS_TOKEN": "<Your CMA Token>"
}
}
}
}
This will allow you to test any modification in the MCP server with Claude directly, however; if you add new tools/resources you will need to restart Claude Desktop
The server implements comprehensive error handling for:
MIT License
This MCP Server enables Claude (or other agents that can consume MCP resources) to update, delete content, spaces and content-models. So be sure what you allow Claude to do with your Contentful spaces!
Seamless access to top MCP servers powering the future of AI integration.