Skip to content

feat(plugin-builder): add plugin creation MCP app#239

Draft
efrazer-oai wants to merge 10 commits into
mainfrom
efrazer/plugin-builder-mcp-app
Draft

feat(plugin-builder): add plugin creation MCP app#239
efrazer-oai wants to merge 10 commits into
mainfrom
efrazer/plugin-builder-mcp-app

Conversation

@efrazer-oai

@efrazer-oai efrazer-oai commented May 12, 2026

Copy link
Copy Markdown
Contributor

Summary

Codex can scaffold a local plugin, but the next step after creation still needs a clear handoff. This PR adds a builtin Plugin Builder plugin in openai/plugins so the newly created plugin can open in a polished right-side MCP app.

The new plugin bundles the existing Plugin Creator skill, exposes one MCP tool that reads the created plugin from disk, and renders a read-only app with:

  • the plugin name and description
  • separate sections for Skills, Apps, MCP servers, Marketplaces, and Local details
  • richer drill-in detail for SKILL.md files
  • View in Codex and Share in Codex actions that use the companion deeplink shape

Stack

  1. #238 docs(plugin-creator): simplify deeplink shape
  2. This PR: feat(plugin-builder): add plugin creation MCP app

What changed

Surface Change
.agents/plugins/marketplace.json Adds the builtin plugin-builder catalog entry.
plugins/plugin-builder/.codex-plugin/plugin.json Defines the new Plugin Builder plugin and exposes its bundled skill plus MCP server.
plugins/plugin-builder/mcp/server.js Adds open_created_plugin_summary, filesystem parsing for plugin contents, deeplink generation, manifest metadata, and MCP app resource serving.
plugins/plugin-builder/app/* Rebuilds the right-side app as React + Tailwind, compiles it into one generated widget HTML file, keeps summary/detail views aligned with the Codex app style and token baseline, and exposes the inline fullscreen affordance expected by Codex MCP apps.
plugins/plugin-builder/skills/plugin-creator/* Vendors the existing Plugin Creator skill so the plugin owns the scaffold flow it presents.

Design decisions

  • Plugin Builder is a builtin plugin package, because it should sit beside the other first-party plugin experiences.
  • The app is read-only. The agent remains the editing surface; the app helps the user inspect what was created and move into Codex View or Share.
  • The widget is authored in React + Tailwind, then inlined into one generated HTML resource so the MCP server still serves a self-contained app document.
  • Skills get a dedicated detail view because their main user-facing artifact is SKILL.md, which has useful structure from summaries and headings.
  • The MCP server derives the app model directly from local plugin files instead of duplicating plugin schema logic in the UI layer.
  • The plugin consumes the existing Plugin Creator skill rather than creating a second creation workflow.
  • The app requests fullscreen on open and keeps a compact inline fullscreen control as a visible fallback when the host stays inline.

Testing

Tests: React typecheck, production widget build, MCP protocol/resource smoke tests, live Codex MCP tool invocation against a real sample plugin, and deeplink payload checks for both View and Share.

Visual proof

Summary app:

plugin-builder-summary-fullscreen-affordance.png

SKILL.md detail state:

plugin-builder-skill-fullscreen-affordance.png

@efrazer-oai

Copy link
Copy Markdown
Contributor Author

@codex review

@efrazer-oai

Copy link
Copy Markdown
Contributor Author

@codex review

@efrazer-oai

Copy link
Copy Markdown
Contributor Author

@codex review

@efrazer-oai

Copy link
Copy Markdown
Contributor Author

@codex review

Base automatically changed from efrazer/plugin-creator-clean-plugin-deeplinks to main May 13, 2026 00:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant