内容丰富的MCP服务器
通知
这是一个社区驱动的服务器!Contentful已经发布了一个官方服务器,您可以在其中找到 这里
](https://smithery.ai/server/@ivotoby/contentful-management-mcp-server)
MCP服务器实现与Contentful的内容管理API集成,提供全面的内容管理功能。
- 请注意\*;如果您对代码不感兴趣,只想在
Claude Desktop(或任何其他能够使用MCP服务器的工具),您不必 克隆此仓库,您可以在Claude桌面中设置它,请参阅一节 有关如何安装它的说明,请参阅“与Claude Desktop一起使用”。
特性
- 内容管理:条目和资产的完整CRUD操作
- 评论管理:创建、检索和管理条目的评论,支持纯文本和富文本格式,包括线程对话
- 空间管理:创建、更新和管理空间和环境
- 内容类型:管理内容类型定义
- 本地化:支持多种语言环境
- 出版:控制内容发布工作流
- 批量操作:跨多个条目和资产执行批量发布、取消发布和验证
- 智能分页:列表操作每个请求最多返回3个项目,以防止上下文窗口溢出,并内置分页支持
分页
为了防止LLM中的上下文窗口溢出,列表操作(如search_entrys和list_assets)每个请求限制为3个项目。每个回复包括:
- 可用项目总数
- 当前页面的项目(最多3个)
- 剩余项目数量
- 跳过下一页的值
- 提示LLM提供检索更多项目的消息
这种分页系统允许LLM有效地处理大型数据集,同时保持上下文窗口限制。
批量操作
批量操作功能可同时高效管理多个内容项:
- 异步处理:操作异步运行并提供状态更新
- 高效的内容管理:在单个API调用中处理多个条目或资产
- 状态跟踪:通过成功和失败计数监控进度
- 资源优化:减少API调用并提高批处理操作的性能
这些批量操作工具非常适合内容迁移、批量更新或批量发布工作流。
工具
出入管理
- search_entrys:使用查询参数搜索条目
- create_entry:创建新条目
- get_entry:检索现有条目
- update_entry:更新输入字段
- 删除尝试:删除条目
- publish_entry:发布条目
- 取消发布条目:取消发布条目
评论管理
- 获取_注释:通过状态筛选(活动、已解决、全部)检索条目的评论
- 创建注释:在支持纯文本和富文本格式的条目上创建新的评论。通过提供父评论ID来回复现有评论,从而支持线程化对话
- get_single_comment:通过条目的ID检索特定评论
- 删除注释:从条目中删除特定评论
- 更新_注释:用新的正文内容或状态更改更新现有评论
螺纹评论
注释支持线程功能,以实现结构化对话,并绕过512个字符的限制:
- 对评论的回复:使用
parent参数在create_comment回复现有评论 - 主题对话:通过回复特定评论构建对话树
- 扩展讨论:通过创建线程回复来继续较长的消息,从而绕过512个字符的限制
- 会话上下文:通过将相关评论整理成线索,保持讨论的背景
示例用法:
- 创建主评论:
create_comment随着entryId,body,以及status - 对该评论的回复:
create_comment随着entryId,body,status,以及parent(您正在回复的评论的ID) - 继续该帖子:使用其ID作为回复帖子中的任何评论
parent
批量操作
- 批量出版:在单个操作中发布多个条目和资产。接受一组实体(条目和资产),并将其作为批处理发布。
- 批量_不发布:在单个操作中取消发布多个条目和资产。类似于bulk_publish,但从交付API中删除内容。
- bulk_validate:验证多个条目的内容一致性、引用和必填字段。返回验证结果而不修改内容。
资产管理
- list_资产:按页码列出资产(每页3项)
- upload_asset:上传带有元数据的新资产
- 获取资产:检索资产详细信息和信息
- update_asset:更新资产元数据和文件
- 删除资产:从空间中删除资产
- publish_asset:发布资产以交付API
- 未发布资产:从交付API取消发布资产
空间与环境管理
- list_space:列出可用空间
- get_space:获取空间详细信息
- list_environment:列出空间中的环境
- 创建环境:创建新环境
- 删除环境:删除环境
内容类型管理
- list_content_types:列出可用的内容类型
- get_content_type:获取内容类型详细信息
- create_content_type:创建新的内容类型
- update_content_type:更新内容类型
- delete_content_type:删除内容类型
- publish_content_type:发布内容类型
开发工具
MCP检查员
该项目包括一个有助于开发和调试的MCP检查器工具:
- 检查模式:运行
npm run inspect要启动检查器,您可以通过以下方式打开检查器:http://localhost:5173 - 观看模式:使用
npm run inspect:watch文件更改时自动重新启动检查器 - 视觉界面:检查员提供了一个web界面来测试和调试MCP工具
- 实时测试:试用工具并立即看到他们的反应
- 批量操作测试:测试和监控批量操作,并对进度和结果进行视觉反馈
该项目还包含 npm run dev 该命令在每次更改时重建和重新加载MCP服务器。
配置
先决条件
- 在以下网址创建一个内容丰富的帐户 内容丰富的
- 从您的帐户设置生成内容管理API令牌
环境变量
这些变量也可以设置为参数
CONTENTFUL_HOST/--host:内容管理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)DISABLE_AI_ACTIONS:设置为“true”可禁用启动时获取AI操作(如果您没有访问此功能的权限,则很有用)
空间和环境范围界定
您可以限定spaceId和EnvironmentId的范围,以确保LLM只对定义的space/env ID执行操作。 这主要是为了支持在特定空间内运行的代理。如果两者都 SPACE_ID 和 ENVIRONMENT_ID env变量已设置 工具将不会报告需要这些值,处理程序将使用环境变量执行CMA操作。 您还将失去对空间处理程序中工具的访问权限,因为这些工具是跨空间的。 您还可以添加 SPACE_ID 和 ENVIRONMENT_ID 通过使用参数 --space-id 和 --environment-id
使用应用程序标识
除了提供管理令牌,您还可以利用 应用程序标识 用于处理身份验证。在调用MCP服务器时,您必须设置并安装一个Contentful App,并设置以下参数:
--app-id=提供Apptoken的应用程序Id--private-key=您在应用程序的用户界面中创建的私钥,绑定到app_id--space-id=安装应用程序的spaceId--environment-id=安装应用程序的环境ID(在空间内)。
使用这些值,MCP服务器将请求一个临时AppToken在定义的空间/环境中执行内容操作。这在充当MCP客户端的后端系统(如聊天代理)中使用此MCP服务器时特别有用
使用Claude Desktop
您无需克隆此仓库即可使用此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": ""
}
}
}
}如果您的MCPClient不支持设置环境变量,您还可以使用以下参数设置管理令牌:
{
"mcpServers": {
"contentful": {
"command": "npx",
"args": [
"-y",
"@ivotoby/contentful-management-mcp-server",
"--management-token",
"",
"--host",
"http://api.contentful.com"
]
}
}
}通过Smithery安装
通过以下方式自动安装克劳德桌面的Contentful管理服务器 史密瑟里:
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": ""
}
}
}
}但是,这将允许您直接使用Claude测试MCP服务器中的任何修改;如果添加新的工具/资源,则需要重新启动Claude Desktop
运输方式
MCP服务器支持两种传输模式:
stdio运输
默认传输模式使用标准输入/输出流进行通信。这非常适合与支持stdio传输的MCP客户端集成,如Claude Desktop。
要使用stdio模式,只需运行服务器,而无需 --http 标志:
npx -y contentful-mcp --management-token YOUR_TOKEN
# or alternatively
npx -y @ivotoby/contentful-management-mcp-server --management-token YOUR_TOKEN流式HTTP传输
服务器还支持MCP协议中定义的StreamableHTTP传输。此模式对于基于web的集成或将服务器作为独立服务运行时非常有用。
要使用StreamableHTTP模式,请使用 --http 标志:
npx -y contentful-mcp --management-token YOUR_TOKEN --http --port 3000
# or alternatively
npx -y @ivotoby/contentful-management-mcp-server --management-token YOUR_TOKEN --http --port 3000流式HTTP详细信息
- 使用官方MCP StreamableHTTP传输
- 支持标准MCP协议操作
- 包括用于维护状态的会话管理
- 正确处理初始化/通知模式
- 与标准MCP客户端兼容
- 用现代方法取代弃用的SSE传输
该实现遵循标准的MCP协议规范,允许任何MCP客户端连接到服务器,而无需特殊处理。
错误处理
服务器为以下对象实现了全面的错误处理:
- 身份验证失败
- 速率限制
- 无效请求
- 网络问题
- API特定错误

许可证
MIT许可证
细则
此MCP服务器使Claude(或其他可以消耗MCP资源的代理)能够更新、删除内容、空间和内容模型。所以,一定要确保你允许克劳德在你的内容空间里做什么!
Contentful尚未正式支持此MCP服务器
