本资料是一份关于将产品提交至 OpenAI 插件目录(ChatGPT 与 Codex 共用)并通过审核的实操指南,不依赖特定技术栈:服务器可以是任意语言编写的远程 MCP 服务器,可配任意 OAuth 提供方或不配。资料中的规则依据 OpenAI 官方页面(阅读日期 2026-10-26),并以两个产品的提交经历作为示例。
一、用途与约束优先级 规则效力依次为:OpenAI 当前页面(随时可能变化,每次上传和提交前应重读并记录日期)> 本资料对页面未覆盖部分(门户与审核人员的实际行为)> 服务器自身工程规则。本资料仅涉及 ChatGPT 对 MCP 服务器新增的要求,路由、工具描述、输出 schema 及其测试属于 mcp-server 技能的范围。
二、两种接入方式 自定义连接器:用户在 ChatGPT 的 Plugins → + → Add custom MCP server 中填入服务器 URL,受工作区策略限制,无需审核。 目录插件:用户通过链接或名称在目录中找到,需要随服务器提交 ZIP 包(manifest、mcp.json、至少一个 skill、资源、审核材料),登录方式在包中声明(无、OAuth 或两者),并经历自动扫描、人工审核及上架后每日复扫。 能作为自定义连接器运行的服务器已走完大半流程;目录额外要求包、数据规则、发布主体与审核。建议先以自定义连接器对接生产环境,审核视频也在此环境录制,因为审批前插件只能以本地安装形式运行(ChatGPT 桌面应用、Codex),不能在网页端运行。
三、需先决策并记录的事项
- 谁登录:若产品已有账号,优先用其 OAuth;门户从上载的 mcp.json 读取认证,但既有连接可能锁定认证方式。
- 端点:每个插件只能连一个 MCP 服务器,其 origin(协议、主机、端口)不可更改,换 origin 等于换插件。
- 工具范围:只保留日常操作,剔除接收或返回密钥的工具;OpenAI 受限数据包括 API 键和密码,审核会读取服务器工具列表。
- 发布主体:须为隐私政策和服务条款所述法律实体,并在 OpenAI 平台完成验证,目录显示的是创建草稿时选定的已验证身份。
- 项目:须选择具备全球数据驻留的项目,EU 数据驻留项目无法提交带 MCP 服务器的插件。
- 可用地区:默认所有地区(省略 publication.countries),包中允许列表在发布时生效。
四、每次提交都需满足的规则 认证在首次上传前于 mcp.json 中逐服务器声明;无登录服务器不得在门户完成 OAuth 登录,否则连接会被保留。发现机制要能响应门户从 ChatGPT 地址段外发起的扫描,应限制工具调用而非 initialize 和 tools/list。每个请求的 params 可能携带 _meta,服务器必须接受;ChatGPT 每次工具调用会发送 user、session、location、trace、call id 等(某 OAuth 连接器一次调用含十二个键),拒绝未知键的解析器会导致全部调用失败。任何工具不得索取密钥,回复不得包含密钥或请求未必要的字段。隐私政策须逐项列出回复返回的所有字段(含嵌套与错误回复),并以测试双向校验;概括式政策曾导致拒绝。每个工具须显式设置 readOnlyHint、destructiveHint、openWorldHint,不可逆效果应单独成工具,即便可被其他工具撤销,该动作仍算破坏性。审核材料随 ZIP 提交但凭据不入包:五个正向案例、三个负向案例、视频链接、plugin.json 中的发布说明,以及门户中的审核账号。上传前用 check_package.py 校验包与 ZIP 一致,建议产品测试套件也做逐字节相等校验。上架文案不得含价格、试用或促销,不得引导模型偏向插件,名称后不得加“MCP”或“Plugin”。
五、执行顺序 在产品决策日志记录上述表格;按 ChatGPT 调用方式配置服务器(接受 _meta、开放发现、OAuth 符合客户端要求、地址检查作用于调用方自身地址),并以自定义连接器对接生产调用全部工具;整理工具与数据(收窄列表、各层允许列表、注解、隐私政策字段清单及测试);构建包(manifest、mcp.json、命名工具的 skill、资源、取自路由评测文件的五正三反案例、校验器、固定 ZIP);对本地服务器运行路由评测,并在 ChatGPT 生产环境录制视频;有登录的服务器准备审核账号(样例数据、无邮件或短信验证码、所有案例成功);在门户以正确身份创建草稿、核对认证字段、域名验证、扫描、填写审核信息并逐项检查清单;审核结果出来后答复或申诉,就绪时发布,并在后续每次部署中保持线上定义可用。
六、文件与脚本 references/package.md:包布局、各 plugin.json 字段及限制、认证、skill、禁提交内容、ZIP 固定;references/server-and-auth.md:请求携带内容、OAuth 客户端要求、逐工具安全方案、无登录接口、共享地址、审批前测试;references/tools-and-data.md:受限数据、响应最小化、隐私政策、注解、命名与文案及对应测试;references/portal-and-review.md:账号与身份、草稿、连接与扫描、审核信息、审核与申诉、发布后维护、提交前清单;scripts/check_package.py:按规则检查包与 ZIP,出错退出码为 1;scripts/test_check_package.py:构建有效包并逐项破坏以验证校验器。
七、OpenAI 页面六处不一致(2026-10-26 阅读) 注解说明:指南称不再需要,错误页仍列 justification_required,建议每工具每提示备一句说明(提示值仍来自服务器)。服务器 URL:提交页要求联系支持修改,审核页称新 origin 需新插件、路径变更走常规新版本流程,建议将 origin 视为永久,路径变更按支持沟通处理。被拒包:提交页称修正后重新提交修正 ZIP,某支持案例称无法更新属已知问题并以新插件兜底,建议先尝试修正 ZIP。包名:提交页要求小写字母、数字与单个连字符,错误页允许 ASCII 字母、数字、_ 或 -,建议取前者。根描述:提交页限 4000 字符,错误页限 1024,建议控制在 1024 内。截图:指南称目录不再显示,错误页仅允许工具扫描报告 UI 输出模板时使用(每个起始提示一张,宽 706px、高 400–860px),无自定义 UI 时不要附带截图,改用起始提示文字。
八、记录原则 本技能为通用内容并将公开:只写规则及其成立原因,产品仅以类别作示例,不出现名称、上架信息、插件 id、提交记录、路径或账号名;对 OpenAI 的要求标注“阅读于”“观察于”等日期,变化时替换旧行;单产品特有事实留在该产品仓库;能被测试或校验器验证的规则应配套断言。