首页
学习
活动
专区
圈层
工具
发布
MCP广场 >详情页
内容管理工具2025-12-21142分享添加福利群:解决AI开发者的「MCP实战痛点」
github
MCP 服务器实现与 Contentful 的内容管理 API 集成,提供全面的内容管理功能。
By ivo-toby
2025-12-21142
github
详情内容
Contentful MCP server

Contentful MCP 服务器

注意

这是一个社区驱动的服务器!Contentful 已经发布了一个官方服务器,您可以在这里找到:官方服务器

smithery 徽章

一个与 Contentful 的内容管理 API 集成的 MCP 服务器实现,提供全面的内容管理功能。

  • 请注意 *;如果您对代码不感兴趣,只是想在 Claude Desktop(或任何其他能够使用 MCP 服务器的工具)中使用此 MCP,您不必克隆此仓库,您可以直接在 Claude Desktop 中设置它,请参阅“与 Claude Desktop 一起使用”部分以获取安装说明。

contentful-mcp MCP server

功能

  • 内容管理:对条目和资产的完整 CRUD 操作
  • 评论管理:创建、检索和管理条目上的评论,支持纯文本和富文本格式,包括线程对话
  • 空间管理:创建、更新和管理空间和环境
  • 内容类型:管理内容类型定义
  • 本地化:支持多语言环境
  • 发布:控制内容发布工作流
  • 批量操作:跨多个条目和资产执行批量发布、取消发布和验证
  • 智能分页:列表操作每次请求最多返回 3 个项目,以防止上下文窗口溢出,并内置分页支持

分页

为了防止 LLM 中的上下文窗口溢出,列表操作(如 search_entrieslist_assets)每次请求限制为 3 个项目。每个响应包括:

  • 可用项目的总数
  • 当前页面的项目(最多 3 个)
  • 剩余项目的数量
  • 下一页的跳过值
  • 提示 LLM 提供更多项目的消息

此分页系统允许 LLM 在处理大数据集时保持上下文窗口限制。

批量操作

批量操作功能提供了同时管理多个内容项的高效方式:

  • 异步处理:操作异步运行并提供状态更新
  • 高效内容管理:在单个 API 调用中处理多个条目或资产
  • 状态跟踪:通过成功和失败计数监控进度
  • 资源优化:减少 API 调用并提高批量操作的性能

这些批量操作工具非常适合内容迁移、大规模更新或批量发布工作流。

工具

条目管理

  • search_entries:使用查询参数搜索条目
  • create_entry:创建新条目
  • get_entry:检索现有条目
  • update_entry:更新条目字段
  • delete_entry:删除条目
  • publish_entry:发布条目
  • unpublish_entry:取消发布条目

评论管理

  • get_comments:检索条目的评论,并按状态(活跃、已解决、全部)过滤
  • create_comment:在条目上创建新评论,支持纯文本和富文本格式。通过提供父评论 ID 回复现有评论,支持线程对话
  • get_single_comment:通过 ID 检索特定评论
  • delete_comment:从条目中删除特定评论
  • update_comment:更新现有评论的内容或状态

线程评论

评论支持线程功能,以启用结构化对话并绕过 512 字符限制:

  • 回复评论:在 create_comment 中使用 parent 参数回复现有评论
  • 线程对话:通过回复特定评论构建对话树
  • 扩展讨论:通过创建线程回复继续较长的消息,绕过 512 字符限制
  • 对话上下文:通过将相关评论组织在线程中,保持讨论的上下文

示例用法:

  1. 创建主评论:create_comment 带有 entryIdbodystatus
  2. 回复该评论:create_comment 带有 entryIdbodystatusparent(您要回复的评论的 ID)
  3. 继续线程:通过使用其 ID 作为 parent 回复线程中的任何评论

批量操作

  • bulk_publish:在单个操作中发布多个条目和资产。接受实体(条目和资产)数组,并批量处理它们的发布。
  • bulk_unpublish:在单个操作中取消发布多个条目和资产。类似于 bulk_publish,但从交付 API 中移除内容。
  • bulk_validate:验证多个条目的内容一致性、引用和必填字段。返回验证结果而不修改内容。

资产管理

  • list_assets:列出资产并分页(每页 3 个项目)
  • upload_asset:上传带有元数据的新资产
  • get_asset:检索资产详细信息
  • update_asset:更新资产元数据和文件
  • delete_asset:从空间中移除资产
  • publish_asset:将资产发布到交付 API
  • unpublish_asset:从交付 API 中取消发布资产

空间和环境管理

  • list_spaces:列出可用空间
  • get_space:获取空间详细信息
  • list_environments:列出空间中的环境
  • create_environment:创建新环境
  • delete_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 服务器。

配置

先决条件

  1. Contentful 创建一个 Contentful 账户
  2. 从您的账户设置中生成一个内容管理 API 令牌

环境变量

这些变量也可以作为参数设置

  • 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)

空间和环境范围

您可以设置 spaceIdEnvironmentId 的范围,以确保 LLM 仅在定义的空间/环境 ID 上执行操作。这主要是为了支持在特定空间内操作的代理。如果同时设置了 SPACE_IDENVIRONMENT_ID 环境变量,工具将不会报告需要这些值,并且处理程序将使用环境变量执行 CMA 操作。您还将失去对空间处理程序中工具的访问权限,因为这些工具是跨空间的。您还可以通过使用参数 --space-id--environment-id 添加 SPACE_IDENVIRONMENT_ID

使用应用身份

您还可以利用 应用身份 来处理身份验证,而不是提供管理令牌。您必须设置并安装一个 Contentful 应用,并在调用 MCP 服务器时设置以下参数:

  • --app-id = 提供 AppToken 的应用 ID
  • --private-key = 您在用户界面中创建的与应用绑定的私钥
  • --space-id = 应用安装的空间 ID
  • --environment-id = 应用安装的环境 ID(在空间内)

通过这些值,MCP 服务器将请求一个临时的 AppToken 以在定义的空间/环境 ID 中执行内容操作。这在将 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": "<您的 CMA 令牌>"
      }
    }
  }
}

如果您的 MCPClient 不支持设置环境变量,您也可以使用参数设置管理令牌,如下所示:

{
  "mcpServers": {
    "contentful": {
      "command": "npx",
      "args": [
        "-y",
        "@ivotoby/contentful-management-mcp-server",
        "--management-token",
        "<您的令牌>",
        "--host",
        "http://api.contentful.com"
      ]
    }
  }
}

通过 Smithery 安装

要通过 Smithery 自动为 Claude Desktop 安装 Contentful Management Server,请执行以下命令:

npx -y @smithery/cli install @ivotoby/contentful-management-mcp-server --client claude

开发和测试 Claude Desktop

如果你想贡献代码并测试 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": "<你的 CMA Token>"
      }
    }
  }
}

这将允许你直接在 Claude 中测试 MCP 服务器的任何修改,但是;如果你添加了新的工具/资源,你需要重新启动 Claude Desktop。

传输模式

MCP 服务器支持两种传输模式:

stdio 传输

默认的传输模式使用标准输入/输出流进行通信。这非常适合与支持 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

StreamableHTTP 传输

服务器还支持 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

StreamableHTTP 详情

  • 使用官方的 MCP StreamableHTTP 传输
  • 支持标准的 MCP 协议操作
  • 包括用于维护状态的会话管理
  • 正确处理初始化/通知模式
  • 兼容标准的 MCP 客户端
  • 用现代方法取代了已弃用的 SSE 传输

该实现遵循标准的 MCP 协议规范,允许任何 MCP 客户端连接到服务器而无需特殊处理。

错误处理

服务器实现了全面的错误处理,包括:

  • 认证失败
  • 速率限制
  • 无效请求
  • 网络问题
  • API 特定错误

在 MseeP 上验证

许可证

MIT 许可证

注意事项

此 MCP 服务器使 Claude(或可以消费 MCP 资源的其他代理)能够更新、删除内容、空间和内容模型。因此,请确保你允许 Claude 对你的 Contentful 空间执行的操作!

此 MCP 服务器尚未得到 Contentful 的官方支持。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档