feat: reference HeyGen ChatGPT app for Codex plugin (replaces bundled MCP)#80
Merged
Conversation
… MCP) Per OpenAI directory feedback on openai/plugins#192: plugins in the official Codex directory cannot bundle their own MCP server; they must reference a curated ChatGPT app from the catalog. HeyGen has one live (asdk_app_69418aad55e08191aa5e437b649ca2e4), so the upstream .codex-plugin manifest now points at it. Adds .app.json at repo root and swaps "mcpServers" → "apps" in .codex-plugin/plugin.json. Same shape as canva and hubspot plugins in openai/plugins. Claude Code (.mcp.json) and Cursor (mcp.json) keep the bundled MCP wiring — those marketplaces don't have the same restriction. Only the Codex manifest changes.
kenchung
approved these changes
Apr 27, 2026
Contributor
kenchung
left a comment
There was a problem hiding this comment.
Approve
Tiny, correct, mirrors OpenAI's reference plugins exactly. Verified against openai/plugins/plugins/canva/.codex-plugin/plugin.json and .../hubspot/.codex-plugin/plugin.json:
"apps": "./.app.json"— exact same key, exact same path convention. ✅.app.jsonshape{"apps": {"<name>": {"id": "..."}}}— matches canva'sconnector_68df33b1a2d081918778431a9cfca8bashape. ✅- HeyGen ID prefix
asdk_app_*differs from canva'sconnector_*— both are valid app ID formats per the OpenAI plugins ecosystem (different generations, both accepted).
Preserved
.mcp.json(Claude Code) untouchedmcp.json(Cursor) untouched- All other 5 manifests untouched
- No interaction with PR #79 (SKILL.md cleanup) — different files, clean merge
Notes (non-blocking)
- Test-plan checkbox "Codex re-review passes" is unchecked. That validation depends on companion PR
openai/plugins#192being accepted by the OpenAI directory. This PR can merge first; if Codex re-review later requires changes, they're a follow-up. - Codex users lose the bundled-MCP transport for HeyGen — replaced by the curated ChatGPT app. Intentional, per OpenAI directory rules. Claude Code and Cursor users keep MCP.
- App ID is now a hard external dependency. If
asdk_app_69418aad55e08191aa5e437b649ca2e4ever gets delisted from the catalog, Codex users break. Normal API-contract risk, no action needed.
Good to merge.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Per OpenAI directory feedback on openai/plugins#192: plugins in the official Codex directory cannot bundle their own MCP server; they must reference a curated ChatGPT app from the catalog. HeyGen has one live (`asdk_app_69418aad55e08191aa5e437b649ca2e4`), so the Codex manifest now points at it.
Changes
What's NOT changing
The Claude Code and Cursor marketplaces don't have the same "no bundled MCP" rule, so:
Only the Codex manifest moves to the app reference.
Companion PR
`openai/plugins#192` — the directory listing now matches.
Test plan
🤖 Generated with Claude Code