这是一个由社区驱动的服务器!Contentful 已经发布了一个官方服务器,你可以在这里找到:这里
一个与 Contentful 内容管理 API 集成的 MCP 服务器实现,提供全面的内容管理能力。
<a href="https://glama.ai/mcp/servers/l2fxeaot4p"><img width="380" height="200" src="https://gips2.baidu.com/it/u=840392128,22889206&fm=3081&app=3081&f=PNG?w=760&h=400" alt="contentful-mcp MCP server" /></a>
为了防止大模型中的上下文窗口溢出,列表操作(如 search_entries 和 list_assets)限制每次请求返回 3 个项目。每个响应包括:
此分页系统允许大模型高效处理大数据集,同时保持上下文窗口限制。
批量操作功能提供了同时管理多个内容项的有效方式:
这些批量操作工具非常适合内容迁移、批量更新或批量发布工作流。
评论支持线程功能,以实现结构化的对话并绕过 512 字符限制:
create_comment 中使用 parent 参数回复现有评论示例用法:
create_comment 使用 entryId、body 和 statuscreate_comment 使用 entryId、body、status 和 parent(你回复的评论的 ID)parent 回复线程中的任何评论该项目包含一个 MCP Inspector 工具,有助于开发和调试:
npm run inspect 启动检查器,你可以通过访问 http://localhost:5173 打开检查器npm run inspect:watch 在文件更改时自动重启检查器项目还包含一个 npm run dev 命令,该命令会在每次更改时重建和重新加载 MCP 服务器。
这些变量也可以作为参数设置
CONTENTFUL_HOST / --host:Contentful 管理 API 端点(默认为 https://api.contentful.com)CONTENTFUL_MANAGEMENT_ACCESS_TOKEN / --management-token:你的内容管理 API 令牌ENABLE_HTTP_SERVER / --http:设置为 "true" 以启用 HTTP/SSE 模式HTTP_PORT / --port:HTTP 服务器端口(默认:3000)HTTP_HOST / --http-host:HTTP 服务器主机(默认:localhost)你可以设置 spaceId 和 EnvironmentId,确保 LLM 只在定义的空间/环境 ID 上进行操作。
这主要是为了支持在特定空间内操作的代理。如果同时设置了 SPACE_ID 和 ENVIRONMENT_ID 环境变量,
工具将不会报告需要这些值,并且处理器将使用环境变量进行 CMA 操作。
你也将失去对空间处理器中工具的访问权限,因为这些工具是跨空间的。
你还可以通过使用参数 --space-id 和 --environment-id 添加 SPACE_ID 和 ENVIRONMENT_ID
除了提供管理令牌外,你还可以利用 应用身份 进行身份验证。 你需要设置并安装一个 Contentful 应用,并在调用 MCP 服务器时设置以下参数:
--app-id = 提供 AppToken 的应用 ID--private-key = 在用户界面中与 app_id 关联创建的私钥--space-id = 安装应用的空间 ID--environment-id = 安装应用的环境 ID(在空间内)使用这些值,MCP 服务器将请求一个临时 AppToken,在定义的空间/环境 ID 中执行内容操作。这对于在充当 MCP 客户端的后端系统(如聊天代理)中使用此 MCP 服务器特别有用。
你无需克隆此仓库即可使用此 MCP,只需将其添加到你的 claude_desktop_config.json:
编辑或添加 ~/Library/Application Support/Claude/claude_desktop_config.json 并添加以下行:
{
"mcpServers": {
"contentful": {
"command": "npx",
"args": ["-y", "@ivotoby/contentful-management-mcp-server"],
"env": {
"CONTENTFUL_MANAGEMENT_ACCESS_TOKEN": "<Your CMA token>"
}
}
}
}
如果您的 MCP 客户端不支持设置环境变量,您也可以通过参数设置管理令牌,如下所示:
{
"mcpServers": {
"contentful": {
"command": "npx",
"args": [
"-y",
"@ivotoby/contentful-management-mcp-server",
"--management-token",
"<your token>",
"--host",
"http://api.contentful.com"
]
}
}
}
要通过 Smithery 自动安装 Contentful Management Server 用于 Claude Desktop:
npx -y @smithery/cli install @ivotoby/contentful-management-mcp-server --client claude
如果你想贡献并测试 Claude 对你的贡献的反应:
npm run dev,这将启动监视器,每当有更改时都会重建 MCP 服务器claude_desktop_config.json 以直接引用项目,例如:{
"mcpServers": {
"contentful": {
"command": "node",
"args": ["/Users/ivo/workspace/contentful-mcp/bin/mcp-server.js"],
"env": {
"CONTENTFUL_MANAGEMENT_ACCESS_TOKEN": "<Your CMA Token>"
}
}
}
}
这将允许你直接使用 Claude 测试 MCP 服务器中的任何修改,但是;如果你添加了新的工具/资源,你需要重新启动 Claude Desktop
MCP 服务器支持两种传输模式:
默认传输模式使用标准输入/输出流进行通信。这适用于与支持 stdio 传输的 MCP 客户端集成,如 Claude Desktop。
要使用 stdio 模式,只需在没有 --http 标志的情况下运行服务器:
npx -y contentful-mcp --management-token YOUR_TOKEN
# 或者
npx -y @ivotoby/contentful-management-mcp-server --management-token YOUR_TOKEN
服务器还支持 MCP 协议中定义的 StreamableHTTP 传输。此模式适用于基于 Web 的集成或当作为独立服务运行服务器时。
要使用 StreamableHTTP 模式,使用 --http 标志运行:
npx -y contentful-mcp --management-token YOUR_TOKEN --http --port 3000
# 或者
npx -y @ivotoby/contentful-management-mcp-server --management-token YOUR_TOKEN --http --port 3000
实现遵循标准 MCP 协议规范,允许任何 MCP 客户端连接到服务器而无需特殊处理。
服务器实现了全面的错误处理,包括:
MIT 许可证
此 MCP 服务器使 Claude(或其他能够消费 MCP 资源的代理)能够更新、删除内容、空间和内容模型。因此,请确保你知道你允许 Claude 对你的 Contentful 空间做什么!
此 MCP 服务器目前尚未得到 Contentful 的正式支持。