Workspace GitHub plugin importer rejects local stdio MCP for Codex-only plugins

Open 💬 0 comments Opened Jul 22, 2026 by lnilluv

Summary

The ChatGPT Business workspace GitHub plugin importer rejects a plugin that bundles a local stdio MCP server, even when the marketplace entry is explicitly scoped to policy.products: ["CODEX"].

This prevents workspace administrators from centrally distributing private Codex plugins that are designed to run their MCP tools locally. The same local command-based MCP shape is supported by Codex Git marketplaces and is used by third-party Codex plugins.

Environment

  • ChatGPT Business workspace
  • Workspace settings → Plugins → Import from GitHub
  • Private GitHub repository
  • Chrome on macOS
  • Reproduced July 22, 2026

Minimal structure

.agents/plugins/marketplace.json:

{
  "name": "company-internal",
  "plugins": [
    {
      "name": "example-local-tools",
      "source": {
        "source": "local",
        "path": "./plugins/example-local-tools"
      },
      "policy": {
        "installation": "AVAILABLE",
        "authentication": "ON_INSTALL",
        "products": ["CODEX"]
      }
    }
  ]
}

plugins/example-local-tools/.codex-plugin/plugin.json points mcpServers to ./.mcp.json.

plugins/example-local-tools/.mcp.json:

{
  "mcpServers": {
    "example-local-tools": {
      "command": "node",
      "args": ["./mcp/server.mjs"],
      "cwd": "."
    }
  }
}

Steps to reproduce

  1. Connect a private GitHub repository to a ChatGPT Business workspace.
  2. Import the full repository from Workspace settings → Plugins.
  3. Wait for asynchronous validation.
  4. A skills-only plugin from the same catalog is accepted.
  5. A Codex-only plugin containing the local stdio MCP manifest above is rejected.

Actual result

The import completes with issues:

MCP server example-local-tools must define a non-empty HTTPS url.

The importer applies the hosted ChatGPT-app MCP rule despite the marketplace entry being restricted to Codex.

Expected result

For entries scoped to products: ["CODEX"], the importer should either:

  1. accept and distribute the plugin bundle to Codex clients, where the stdio MCP command runs locally; or
  2. provide a separate organization-managed Codex marketplace distribution flow.

It should not require turning a deliberately local MCP tool into an Internet-hosted HTTPS service.

Impact

Organizations cannot centrally distribute private Codex plugins with local MCP tools:

  • workspace members without Git cannot install a Git marketplace;
  • administrators cannot provision the plugins company-wide from the workspace;
  • CI/CD releases cannot update the workspace catalog automatically;
  • local or sensitive processing is unnecessarily pushed toward hosted infrastructure.

Making the repository public does not solve the organization-management requirement.

Relevant public examples

Third-party Codex GitHub marketplaces demonstrate that local MCP plugins are supported by the Codex client:

Requested improvement

  • Honor policy.products: ["CODEX"] during workspace-source validation.
  • Support organization-managed private Codex catalogs containing local stdio MCPs.
  • Let Codex clients download versioned plugin archives without requiring Git on employee machines.
  • Provide an admin-controlled automatic refresh/update policy for CI/CD releases.
  • Clearly distinguish ChatGPT-hosted app validation from Codex local-plugin validation in the UI and documentation.

View original on GitHub ↗