@ actionful/ mcp 工具
包含可重复使用的MCP(模式上下文协议)工具的工具包,用于内容。 这个软件包提供结构化工具集,包含完整的元数据,包括描述,输入计划,语义说明,以及工具执行等.
安装
npm install @contentful/mcp-tools
使用量
使用工具收藏
包导工具集按类别排列. 收藏中的每个工具包括:
title: 工具名称description: 工具会做什么inputParams: Zod schema 或原始形状用于输入验证annotations:关于工具行为的语义提示(只读,有破坏性,有同能,有同能,有同能)tool: 实际工具执行功能
import { ContentfulMcpTools } from '@contentful/mcp-tools';
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
const server = new McpServer({ name: 'my-contentful-mcp', version: '1.0.0' });
const tools = new ContentfulMcpTools({
accessToken: '<management-token>',
mcpVersion: '1.0.0',
});
// Register a specific tool
const { searchEntries } = tools.getEntryTools();
server.registerTool(
searchEntries.title,
{
description: searchEntries.description,
inputSchema: searchEntries.inputParams,
annotations: searchEntries.annotations,
},
searchEntries.tool,
);
// Register all tools from a collection
Object.values(tools.getAssetTools()).forEach((toolConfig) => {
server.registerTool(
toolConfig.title,
{
description: toolConfig.description,
inputSchema: toolConfig.inputParams,
annotations: toolConfig.annotations,
},
toolConfig.tool,
);
});
数据大会写入输入
create_data_assembly 无需编辑即可配置 sys, (中文(简体) ), dataType,或
variant。 API 生成 sys.id 和推断 sys.dataType 从 return。 。 。 .
parameters 是一个命令的、具有稳定状态的状态 id 和明确
布尔 required。删除参数的更新需要从
当前获取响应并保留服务器元数据。 坐标线
覆盖和工具分布,然后发布这个仅数组的合同.
这是一个中断的输入更改: 呼叫者仍然通过顶层 sys, (中文(简体) ), dataType, (中文(简体) ),
或者说 variant 获取验证错误。 升级时删除这些参数 .
嵌入式资源链接 sys 对象仍然是配置的一部分.
ContentfulMcpTools.getDataAssemblyTools() 将这些工具曝光给MCP主机.
本地服务器只在 ExO 工具 ENABLE_EXO_TOOLS 启用和
该组织拥有 exoM1 权利。 远程服务器也要求
页:1 exoM1 权利.
{
"spaceId": "my-space",
"environmentId": "master",
"name": "Page title",
"description": "A static page title",
"parameters": [{ "id": "title", "type": "String", "required": false }],
"resolvers": {},
"return": { "$object": { "title": { "$literal": "Hello" } } }
}
update_data_assembly 使用组装ID和当前 sys.version 从
get_data_assembly。允许编辑的字段保留其当前值.
{
"spaceId": "my-space",
"environmentId": "master",
"dataAssemblyId": "the-created-sys-id",
"version": 3,
"name": "Updated page title"
}
可用的工具收藏
收藏来自 ContentfulMcpTools 获取器,例如 getEntryTools(), (中文(简体) ),
getAssetTools(), (中文(简体) ), getContentTypeTools(), (中文(简体) ), getReleaseTools(),以及
getDataAssemblyTools()。每个服务器只登记 ExO 收藏
当它的出入门口经过的时候.
工具说明
每个工具都包含语义说明来帮助MCP客户端理解工具行为:
readOnlyHint数字 :true如果工具只读取数据而不修改destructiveHint数字 :true如果工具永久删除或删除数据idempotentHint数字 :true如果使用相同的输入多次调用该工具,则产生相同的结果openWorldHint数字 :true如果工具与外部服务或系统交互,则内容范围以外
可用的工具
| 类别 | 工具名称 | 说明 |
|---|---|---|
| 背景设置( S) | get_initial_context | 初始化连接并获得使用指令 |
| 内容类型 | list_content_types | 列出内容类型(每个请求最多10个) |
get_content_type | 获取详细内容类型信息 | |
create_content_type | 创建新内容类型 | |
update_content_type | 修改现有内容类型 | |
publish_content_type | 发布内容类型更改 | |
unpublish_content_type | 撤消内容类型 | |
delete_content_type | 删除内容类型 | |
| 条目 | search_entries | 搜索和过滤空间中的条目 |
get_entry | 获取特定条目 | |
create_entry | 在 locale 支持下创建新内容条目 | |
update_entry | 在本地端支持下修改已存在的条目 | |
patch_entry | 更改特定的字段地块, 而不重放其它( JSON Patch) | |
publish_entry | 公布条目(单项或批量不超过100个) | |
unpublish_entry | 撤销条目(单项或批量最多100个) | |
delete_entry | 删除条目 | |
| 编辑器接口 | list_editor_interfaces | 在空格中列出所有编辑器接口 |
get_editor_interface | 获取内容类型的编辑器界面 | |
update_editor_interface | 更新字段控件、侧边栏和布局 | |
| 资产 | upload_asset | 上传新资产 |
list_assets | 列出和浏览资产(每个请求最多3个) | |
get_asset | 收回具体资产 | |
update_asset | 修改资产元数据 | |
publish_asset | 公布资产(单独或批量最多100个) | |
unpublish_asset | 未提资产(单件或多件可达100个) | |
delete_asset | 删除资产 | |
| 空间环境( E) | list_spaces | 列出可用的空格( 每个请求最多 10个) |
get_space | 获取空间细节 | |
list_environments | 在空间中列出环境 | |
create_environment | 创造新的环境 | |
delete_environment | 删除环境 | |
| 语言 | list_locales | 列出环境中的所有位置 |
get_locale | 获取特定区域信息 | |
create_locale | 为多语种内容创建新地块 | |
update_locale | 修改现有的语言设置 | |
delete_locale | 从环境中删除本地地址 | |
| 标记 | list_tags | 在环境中列出所有标签 |
create_tag | 创建公/私可见度的新标签 | |
| 组织 | list_orgs | 用户可访问列表组织 |
get_org | 获取特定组织的详细信息 | |
| 释放 | list_releases | 清单释放(每个请求最多10个) |
get_release | 获取释放 | |
create_release | 以条目/资产创建发行 | |
update_release | 修改发布的标题和/或内容 | |
delete_release | 删除释放(及其链接的释放行动) | |
publish_release | 发布发布( 同步; 通过 get_release_action(中文(简体) ) | |
unpublish_release | 取消发布( 同步; 检查通过 get_release_action(中文(简体) ) | |
validate_release | 验证一个发布,可选择反对出版/不出版 | |
get_release_action | 检查队列释放动作的状况 | |
list_release_actions | 列出释放行动(每个请求最多10个) | |
schedule_publish_release | 计划在未来日期(或重新安排)发布 | |
schedule_unpublish_release | 计划发布到未来日期( 或重排) | |
cancel_scheduled_release | 取消预定放行(两相确认) | |
list_scheduled_actions | 列出预定行动(每件请求最多10起) | |
| 数据组合( ExO) | get_data_assembly | 获取集合及其当前版本 |
get_published_data_assembly | 获取已公布的集合 | |
list_data_assemblies | 列表组件 | |
list_published_data_assemblies | 列出已公布的集会 | |
create_data_assembly | 用无 sys 和 API 生成的 ID 创建 | |
update_data_assembly | 以无 sys 主体和当前版本更新 | |
delete_data_assembly | 删除集合 | |
publish_data_assembly | 发布集会 | |
unpublish_data_assembly | 解开集合 | |
| AI 行动 | create_ai_action | 创建自定义的 AI 驱动工作流程 |
invoke_ai_action | Invoke AI 动作带有变量( 块支持) | |
get_ai_action_invocation | 获取 AI 动作引用细节 | |
get_ai_action | 获取 AI 动作细节和配置 | |
list_ai_actions | 在空格中列出 AI 动作( 每个请求最多 3个) | |
update_ai_action | 更新现有的 AI 动作 | |
publish_ai_action | 发布 AI 动作以供使用 | |
unpublish_ai_action | 解开 AI 动作 | |
delete_ai_action | 删除 AI 动作 | |
| 分类概念 | create_concept | 创建本地化的新分类概念 |
get_concept | 获取特定分类概念 | |
list_concepts | 列出带有过滤和分级的概念 | |
update_concept | 更新分类概念属性 | |
delete_concept | 删除分类学概念 | |
| 分类学计划 | create_concept_scheme | 创建新的分类概念方案 |
get_concept_scheme | 获取具体的概念方案 | |
list_concept_schemes | 列出带有页形的概念方案 | |
update_concept_scheme | 更新概念方案属性 | |
delete_concept_scheme | 删除概念方案 | |
| 空间迁移 | space_to_space_migration_handler | 启用/损坏空间迁移工作流程 |
space_to_space_param_collection | 收集迁移工作流程的参数 | |
export_space | 导出备案空间以进行迁移 | |
import_space | 从导出的文件导入空格 | |
| 使用量 | get_usages | 获取一个组织的汇总使用指标,可选择过滤或按空间分组 |
配置
这些工具需要配置环境变量:
CONTENTFUL_MANAGEMENT_ACCESS_TOKEN=your_token_here
CONTENTFUL_HOST=api.contentful.com
SPACE_ID=your_space_id
ENVIRONMENT_ID=master
测试
所有工具包括综合单元测试。 以 :
npm test
许可证
麻省理工学院