contentful-mcp

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Integrates with Contentful's Content Management API, providing comprehensive content management capabilities including entry and asset management, space management, content type management, localization support, and publishing workflow control.

内容丰富的 MCP 服务器

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

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

特征

  • 内容管理:对条目和资产进行完整的 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 Inspector 工具:

  • 检查模式:运行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 令牌

空间和环境范围(实验)

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

使用 App Identity

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

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

使用这些值,MCP 服务器将请求一个临时的 AppToken,以便在定义的空间/环境 ID 中执行内容操作。当在充当 MCP 客户端(例如聊天代理)的后端系统中使用此 MCP 服务器时,此功能尤其有用。

与 Claude Desktop 一起使用

您不需要克隆此 repo 来使用此 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 空间执行的操作!

ID: l2fxeaot4p