内容管理工具

在您的 Contentful 空间中更新、创建、删除内容、内容模型和资产。

cloud-platforms

523 查看 · 2026-07-07 更新

简介

在您的 Contentful 空间中更新、创建、删除内容、内容模型和资产。

简介

在您的 Contentful 空间中更新、创建、删除内容、内容模型和资产。

Contentful MCP 服务器

smithery 徽章

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

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

contentful-mcp MCP 服务器

功能

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

分页

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

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

这种分页系统允许 LLM 在保持上下文窗口限制的同时高效处理大量数据集。

批量操作

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

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

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

工具

条目管理

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

批量操作

  • 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 在文件更改时自动重启检查器
  • 可视化界面:检查器提供了一个网页界面来测试和调试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 令牌

空间和环境范围(实验性)

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

使用应用身份

除了提供管理令牌外,你还可以利用 App Identity 来处理身份验证。 你需要设置并安装一个 Contentful 应用,并在调用 MCP 服务器时设置以下参数:

  • --app-id = 提供 AppToken 的应用 ID
  • --private-key = 在用户界面中与 app_id 绑定创建的私钥
  • --space-id = 安装了该应用的空间 ID
  • --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": "<Your CMA token>" } } } }

如果你的 MCPClient 不支持设置环境变量,你也可以像这样通过参数设置管理令牌:

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

通过 Smithery 安装

要通过 Smithery 自动安装适用于 Claude Desktop 的 Contentful 管理服务器:

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

开发和使用 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。

错误处理

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

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

许可证

MIT 许可证

注意事项

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

工具列表

  • search_entries: Search for entries using query parameters. Returns a maximum of 3 items per request. Use skip parameter to paginate through results.

  • create_entry: Create a new entry in Contentful, before executing this function, you need to know the contentTypeId (not the content type NAME) and the fields of that contentType, you can get the fields definition by using the GET_CONTENT_TYPE tool.

  • get_entry: Retrieve an existing entry

  • update_entry: Update an existing entry, always send all field values, also the fields values that have not been updated

  • delete_entry: Delete an entry

  • publish_entry: Publish an entry

  • unpublish_entry: Unpublish an entry

  • list_assets: List assets in a space. Returns a maximum of 3 items per request. Use skip parameter to paginate through results.

  • upload_asset: Upload a new asset

  • get_asset: Retrieve an asset

  • update_asset: Update an asset

  • delete_asset: Delete an asset

  • publish_asset: Publish an asset

  • unpublish_asset: Unpublish an asset

  • list_content_types: List content types in a space. Returns a maximum of 10 items per request. Use skip parameter to paginate through results.

  • get_content_type: Get details of a specific content type

  • create_content_type: Create a new content type

  • update_content_type: Update an existing content type

  • delete_content_type: Delete a content type

  • publish_content_type: Publish a content type

  • list_spaces: List all available spaces

  • get_space: Get details of a space

  • list_environments: List all environments in a space

  • create_environment: Create a new environment

  • delete_environment: Delete an environment

服务配置

[{'mcpServers': {'contentful': {'args': ['-y', '@ivotoby/contentful-management-mcp-server'], 'command': 'npx', 'env': {'CONTENTFUL_MANAGEMENT_ACCESS_TOKEN': '<Your CMA token>'}}}}]

来源