返回市场
MCP服务器

MCP服务器

作者:kontent-ai8 星标更新:2025-11-18

项目介绍

技术文档摘要

Kontent.ai MCP Server

NPM 版本 贡献者 分支 星标 问题 MIT 许可证 Discord

使用 AI 驱动的工具来革新你的内容操作。通过自然语言对话在你喜欢的 AI 编辑器中创建、管理和探索结构化内容。

Kontent.ai MCP Server 实现了 Model Context Protocol,以连接你的 Kontent.ai 项目与 AI 工具如 Claude、Cursor 和 VS Code。它使 AI 模型能够理解你的内容结构并通过自然语言指令执行操作。

✨ 主要功能

  • 🚀 快速原型设计:几秒钟内将你的图表转换为实时内容模型
  • 📈 数据可视化:以任何你想要的格式可视化你的内容模型

目录

🔌 快速开始

🔑 先决条件

在你可以使用 MCP 服务器之前,你需要:

  1. 一个 Kontent.ai 账户 - 如果你没有账户,请注册
  2. 一个项目 - 创建一个项目来工作,创建项目
  3. 管理 API 密钥 - 创建一个具有适当权限的管理 API 密钥,创建管理 API 密钥
  4. 环境 ID - 获取你的环境 ID,获取环境 ID

🛠 设置选项

你可以使用 npx 运行 Kontent.ai MCP Server:

STDIO 传输

npx @kontent-ai/mcp-server@latest stdio

可流式传输的 HTTP 传输

npx @kontent-ai/mcp-server@latest shttp

🛠️ 可用工具

上下文和设置

  • get-initial-context – 🚨 必须是第一步:在使用任何其他工具之前,必须调用此工具。它提供了 Kontent.ai 的必要上下文、配置和操作指南。

内容类型管理

  • get-type-mapi – 通过内部 ID 从管理 API 获取 Kontent.ai 内容类型
  • list-content-types-mapi – 从管理 API 获取所有 Kontent.ai 内容类型
  • add-content-type-mapi – 通过管理 API 添加新的 Kontent.ai 内容类型
  • patch-content-type-mapi – 通过补丁操作(移动、添加到、删除、替换)更新现有 Kontent.ai 内容类型
  • delete-content-type-mapi – 删除一个 Kontent.ai 内容类型

内容类型片段管理

  • get-type-snippet-mapi – 通过内部 ID 从管理 API 获取 Kontent.ai 内容类型片段
  • list-content-type-snippets-mapi – 从管理 API 获取所有 Kontent.ai 内容类型片段
  • add-content-type-snippet-mapi – 通过管理 API 添加新的 Kontent.ai 内容类型片段

分类管理

  • get-taxonomy-group-mapi – 通过内部 ID 从管理 API 获取 Kontent.ai 分类组
  • list-taxonomy-groups-mapi – 从管理 API 获取所有 Kontent.ai 分类组
  • add-taxonomy-group-mapi – 通过管理 API 添加新的 Kontent.ai 分类组

内容项管理

  • get-item-mapi – 通过内部 ID 从管理 API 获取 Kontent.ai 项目
  • get-item-dapi – 通过 Delivery API 获取 Kontent.ai 项目
  • get-variant-mapi – 通过管理 API 获取 Kontent.ai 内容项的语言变体
  • add-content-item-mapi – 通过管理 API 添加新的 Kontent.ai 内容项。这会创建内容项结构但不会添加语言变体的内容。使用 upsert-language-variant-mapi 添加内容到项目
  • update-content-item-mapi – 通过管理 API 更新现有的 Kontent.ai 内容项。内容项必须已经存在 - 此工具不会创建新项
  • delete-content-item-mapi – 通过管理 API 删除 Kontent.ai 内容项
  • upsert-language-variant-mapi – 通过管理 API 创建或更新 Kontent.ai 内容项的语言变体。这会向内容项元素添加实际内容。当更新现有变体时,仅修改提供的元素
  • create-variant-version-mapi – 通过管理 API 创建 Kontent.ai 语言变体的新版本。此操作会创建现有语言变体的新版本,适用于内容版本控制和从已发布内容创建新草稿
  • delete-language-variant-mapi – 通过管理 API 删除 Kontent.ai 语言变体
  • filter-variants-mapi – 使用管理 API 过滤内容项的语言变体。用于精确关键词匹配和查找特定术语。支持完整的过滤能力(内容类型、工作流步骤、分类等),并可选地包含变体的完整内容。返回分页结果,并带有继续标记以获取后续页面
  • search-variants-mapi – 通过语义搜索找到特定语言变体中的内容。用于概念搜索,当你不知道确切关键词时。有限的过滤选项(仅限变体 ID)

资产管理

  • get-asset-mapi – 通过内部 ID 从管理 API 获取特定的 Kontent.ai 资产
  • list-assets-mapi – 从管理 API 获取所有 Kontent.ai 资产

语言管理

  • list-languages-mapi – 从管理 API 获取所有 Kontent.ai 语言

工作流管理

  • list-workflows-mapi – 从管理 API 获取所有 Kontent.ai 工作流。工作流定义了内容生命周期阶段及其之间的过渡
  • change-variant-workflow-step-mapi – 更改 Kontent.ai 中语言变体的工作流步骤。此操作将语言变体移动到工作流的不同步骤,实现内容生命周期管理,例如将内容从草稿移到审核,从审核移到发布等
  • publish-variant-mapi – 在 Kontent.ai 中立即发布或计划内容项的语言变体。此操作可以立即发布变体或安排在未来某个日期和时间发布,可选指定时区
  • unpublish-variant-mapi – 在 Kontent.ai 中取消发布或计划取消发布内容项的语言变体。此操作可以立即取消发布变体(使其无法通过 Delivery API 访问)或安排在未来某个日期和时间取消发布,可选指定时区

⚙️ 配置

服务器支持两种配置模式:

单租户模式(默认)

对于单租户模式,配置环境变量:

变量描述必需
KONTENT_API_KEY你的 Kontent.ai 管理 API 密钥
KONTENT_ENVIRONMENT_ID你的环境 ID
PORTHTTP 传输端口(默认为 3001)
appInsightsConnectionString应用程序洞察连接字符串用于遥测
projectLocation项目位置标识符用于遥测跟踪
manageApiUrl自定义管理 API 基础 URL(用于预览环境)

多租户模式

对于多租户模式(仅限可流式传输的 HTTP),服务器接受:

  • 环境 ID 作为 URL 路径参数:/{environmentId}/mcp
  • API 密钥 通过授权头中的 Bearer 令牌传递:Authorization: Bearer <api-key>

此模式允许单个服务器实例安全地处理多个 Kontent.ai 环境的请求,而无需环境变量。

🚀 传输选项

📟 STDIO 传输

要使用 STDIO 传输运行服务器,请配置你的 MCP 客户端:

{
  "kontent-ai-stdio": {
      "command": "npx",
      "args": ["@kontent-ai/mcp-server@latest", "stdio"],
      "env": {
        "KONTENT_API_KEY": "<management-api-key>",
        "KONTENT_ENVIRONMENT_ID": "<environment-id>"
      }
    }
}

🌊 可流式传输的 HTTP 传输

对于可流式传输的 HTTP 传输,首先启动服务器:

npx @kontent-ai/mcp-server@latest shttp

单租户模式

.env 文件中或以其他方式对进程可用的环境变量:

KONTENT_API_KEY=<management-api-key>
KONTENT_ENVIRONMENT_ID=<environment-id>
PORT=3001  # 可选,默认为  3001

然后配置你的 MCP 客户端:

{
  "kontent-ai-http": {
    "url": "http://localhost:3001/mcp"
  }
}

多租户模式

不需要环境变量。服务器接受使用 URL 路径参数和 Bearer 认证的多个环境的请求。

VS Code 配置

在你的工作区创建一个 .vscode/mcp.json 文件:

{
  "servers": {
    "kontent-ai-multi": {
      "uri": "http://localhost:3001/<environment-id>/mcp",
      "headers": {
        "Authorization": "Bearer <management-api-key>"
      }
    }
  }
}

对于带输入提示的安全配置:

{
  "inputs": [
    {
      "id": "apiKey",
      "type": "password",
      "description": "Kontent.ai API 密钥"
    },
    {
      "id": "environmentId",
      "type": "text",
      "description": "环境 ID"
    }
  ],
  "servers": {
    "kontent-ai-multi": {
      "uri": "http://localhost:3001/${inputs.environmentId}/mcp",
      "headers": {
        "Authorization": "Bearer ${inputs.apiKey}"
      }
    }
  }
}
Claude Desktop 配置

更新你的 Claude Desktop 配置文件:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

使用 mcp-remote 作为代理添加认证头:

{
  "mcpServers": {
    "kontent-ai-multi": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:3001/<environment-id>/mcp",
        "--header",
        "Authorization: Bearer <management-api-key>"
      ]
    }
  }
}
Claude Code 配置

对于 Claude Code(claude.ai/code),添加服务器配置:

# 添加多租户服务器
claude mcp add \
  --url "http://localhost:3001/<environment-id>/mcp" \
  --header "Authorization: Bearer <management-api-key>" \
  kontent-ai-multi

或者直接在设置中配置:

{
  "kontent-ai-multi": {
    "url": "http://localhost:3001/<environment-id>/mcp",
    "headers": {
      "Authorization": "Bearer <management-api-key>"
    }
  }
}

重要:将 <environment-id> 替换为你的实际 Kontent.ai 环境 ID(GUID 格式),并将 <management-api-key> 替换为你的管理 API 密钥。

💻 开发

🛠 本地安装

# 克隆仓库
git clone https://github.com/kontent-ai/mcp-server.git
cd mcp-server

# 安装依赖
npm ci

# 构建项目
npm run build

# 启动服务器
npm run start:stdio  # 对于 STDIO 传输
npm run start:shttp  # 对于可流式传输的 HTTP 传输

# 启动服务器并自动重新加载(无需先构建)
npm run dev:stdio  # 对于 STDIO 传输
npm run dev:shttp  # 对于可流式传输的 HTTP 传输

📂 项目结构

  • src/ - 源代码
    • tools/ - MCP 工具实现
    • clients/ - Kontent.ai API 客户端设置
    • schemas/ - 数据验证模式
    • utils/ - 工具函数
      • errorHandler.ts - MCP 工具的标准错误处理
      • throwError.ts - 通用错误抛出工具
    • server.ts - 主服务器设置和工具注册
    • bin.ts - 单一入口点,处理两种传输类型

🔍 调试

对于调试,你可以使用 MCP 检查器:

npx @modelcontextprotocol/inspector -e KONTENT_API_KEY=<key> -e KONTENT_ENVIRONMENT_ID=<env-id> node path/to/build/bin.js

或者在运行的可流式传输的 HTTP 服务器上使用 MCP 检查器:

npx @modelcontextprotocol/inspector

这提供了一个 Web 接口来检查和测试可用工具。

📦 发布流程

要发布新版本:

  1. 使用 npm version [patch|minor|major] 提高版本号 - 这会更新 package.jsonpackage-lock.json 并同步到 server.json
  2. 将提交推送到你的分支并创建拉取请求
  3. 合并拉取请求
  4. 使用自动生成的发行说明创建带有版本号作为名称和标签的新 GitHub 发行版
  5. 发布触发自动工作流,该工作流将发布到 npm 和 GitHub MCP 注册表

许可证

MIT