Skip to main content

Codex 和 Claude 的 skill/mcp/plugin/marketplace 如何兼容?

· 4 min read

Skill、MCP、Plugin、Marketplace 四个扩展体系完全可以兼容,不需要重构现有生态。

  1. 层级定义:MCP 是底层通信协议,Skill 是 Agent 任务封装,Plugin 是 IDE 原生扩展,Marketplace 是分发层。
  2. 兼容核心:三层映射规则——MCP 工具 → Skill 动作 → Plugin 功能,统一全局 ID 标识。
  3. 落地方案:Codex 内置 MCP 桥接层,可直接调用 Claude 生态的所有 Skill 无需额外开发。
  4. 价值收益一次开发多端分发,开发者无需为不同平台重复实现相同功能。

四个概念的本质区别

先把四个概念的层级理清楚,很多人混为一谈,其实从上到下四层边界非常清晰:

  • Marketplace:最上层,负责扩展的搜索、分发、版本管理、付费结算,不管扩展是什么技术栈实现
  • Skill:面向 Agent 层的任务封装,一个 Skill 对应一个完整的可执行任务(比如上传图片到 OSS、添加一篇博客),内部可以调用多个 MCP 工具
  • MCP:Model Context Protocol,底层通信协议,定义了 Agent 怎么和外部工具交互的标准格式,不管工具运行在本地还是云端
  • Plugin:IDE/编辑器原生扩展,直接操作宿主环境的API(比如 VSCode 插件可以读写文件、操作编辑器界面)

兼容的核心逻辑

兼容不需要重写任何现有系统,只需要做三层映射:

1. ID 统一

给每个功能分配全局唯一的标识符,比如 oss-image-upload 这个功能:

  • MCP 工具名:mcp__oss__upload_image
  • Skill 名:oss-image-upload
  • Plugin 命令名:extension.oss.uploadImage
  • Marketplace 分发 ID:kimigao.oss-image-upload

所有层都用同一个根标识,只是加不同的前缀区分层级。

2. 参数 schema 统一

所有层都用 JSON Schema 定义参数格式,不管是 MCP 工具的入参、Skill 的参数、还是 Plugin 命令的参数,都用同一个 schema 定义:

{
"type": "object",
"properties": {
"filePath": { "type": "string" },
"bucket": { "type": "string", "default": "cosmos-x" }
},
"required": ["filePath"]
}

3. 调用链路自动转换

Agent 调用 Skill 的时候,自动转换为对应的 MCP 工具调用或者 Plugin 命令调用:

  • 如果是本地有 MCP 服务运行,直接调用 MCP 工具
  • 如果是在 VSCode 环境,直接调用 Plugin 命令
  • 如果都没有,从 Marketplace 自动下载安装对应的扩展

Codex 和 Claude 的具体兼容方案

Claude 生态已经有大量成熟的 Skill 和 MCP 工具,Codex 不需要重新实现,只需要加一个 MCP 桥接层:

  1. Codex 内置 MCP 客户端,支持连接本地和云端的 MCP 服务
  2. 实现 Skill 到 MCP 工具的自动映射,Claude 的 Skill 可以直接在 Codex 中调用
  3. Marketplace 层打通,Claude 和 Codex 共用同一个扩展市场,开发者上传一次,两边都能搜到

实际使用效果

现在我自己的博客写作工作流已经完全打通了:

  • 在 Codex 中写博客,需要上传图片的时候直接调用 oss-image-upload Skill
  • 底层自动调用 Claude 生态的 OSS MCP 工具上传到阿里云,返回 CDN 链接
  • 不需要切换到 Claude 界面,也不需要手动复制粘贴链接,全程在 Codex 中完成

未来展望

接下来的方向是完全消除平台差异:

  • 开发者写一个 Skill,自动兼容所有支持 MCP 协议的 Agent(Claude、Codex、GPT-4o 等)
  • 不需要为不同 Agent 单独做适配,一次开发全生态可用
  • Marketplace 统一审核、分发、结算,开发者只需要专注于功能本身

References