Skip to content
FunCoding

Search

Search docs, Skills and MCP

插件包结构与清单

创建 portable plugin.json,区分兼容清单、MCP 配置、注册连接和生命周期 Hooks。

This page has not been translated into English yet. The original Chinese version is shown below.

新 portable 插件在包根目录放 plugin.json,用稳定的 kebab-case name 作为身份。最小示例:

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "my-first-plugin",
  "version": "1.0.0",
  "description": "Reusable greeting workflow"
}

目录布局

my-first-plugin/
├── plugin.json
├── mcp.json
├── skills/
│   └── hello/
│       └── SKILL.md
└── assets/

只有实际需要的组件才添加。portable 包从根目录 skills/ 发现 Skill,不要求 manifest 再写 skills 字段。mcp.json 用于分发 MCP server 配置,assets/ 放展示资源。

OpenAI 特定设置

在根 manifest 的 extensions.com.openai 下放展示元数据、注册 MCP 映射和 Hook 设置。已有 .codex-plugin/plugin.json 仍作为兼容后备;当 extensions.com.openai 是对象时,它整体替代兼容清单中的 OpenAI 设置,二者不合并。

当前 plugin-creator 生成的兼容布局仍有效,可能包含 .mcp.json、.app.json 等。不要只把 .mcp.json 改名成 mcp.json 就认为完成迁移:portable 格式还要求 Schema 和每个 server 的 transport type。

MCP 配置与已有连接

portable HTTP server 示例:

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
  "mcpServers": {
    "docs": {
      "type": "streamable-http",
      "url": "https://example.com/mcp"
    }
  }
}

example.com 是待替换的服务地址。OpenAI 扩展的 apps 字段用于 .app.json 中已经注册的 MCP server 映射,不能拿它替代 portable mcp.json。

Hooks 与路径

打包文档将生命周期 Hooks 限定在手动安装的 Codex desktop 插件;含 Hooks 的包不具备公开目录提交资格。不要从本地运行成功推断可以公开发布或在云端 Work 执行。

默认发现 hooks/hooks.json;显式 hooks 字段替代默认文件发现,可指向路径、路径数组或内联对象。路径从插件根解析,以 ./ 开始且不能越出根。脚本可使用 PLUGIN_ROOT 和 PLUGIN_DATA,分别指向安装目录和可写数据目录。

本地安装测试还应确认 Skill 能被发现、MCP 连接可用,以及 Hooks 已单独审查信任。市场登记方式见市场与分发。