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
Copy link
Copy Markdown
Contributor

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

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant