Is MCP a Required Component for All OpenAI Plugins?

The Model Context Protocol (MCP) is optional, not mandatory, for OpenAI Codex plugins.

Every plugin must include a .codex-plugin/plugin.json manifest file, but the Model Context Protocol is only required when exposing external tools or services. Understanding this distinction helps developers choose between lightweight skill-based plugins and full MCP-integrated architectures.

The Required Plugin Manifest Structure

All OpenAI plugins must contain a .codex-plugin/plugin.json file that defines the plugin's name, description, entry points, and required resources. This JSON manifest serves as the sole mandatory entry point for the Codex system to recognize and load your extension.

The manifest strictly requires fields such as name, version, and entry specifications, but does not require any MCP-related configurations. As implemented in the openai/plugins repository, this file alone determines plugin validity regardless of whether MCP capabilities are present.

Optional MCP Configuration Files

You only need to include an .mcp.json file when your plugin explicitly exposes tools through the Model Context Protocol. This optional configuration holds server endpoints, transport settings, and tool schemas necessary for MCP communication.

Companion directories such as skills/ and files like .app.json are also conditionally required based on your plugin's architecture. A plugin functions perfectly with only the core manifest and local skill definitions, as demonstrated by production implementations that omit MCP entirely.

Minimal Plugin Example Without MCP

The following configuration represents a valid, functional plugin that operates without any MCP components. This structure mirrors the Wix plugin implementation, which successfully runs without Model Context Protocol dependencies:

{
  "name": "my-simple-plugin",
  "description": "A demo plugin that does not use MCP.",
  "version": "0.1.0",
  "entry": {
    "skills": "./skills"
  },
  "codexVersion": ">=1.0.0"
}

Note the absence of the mcpServers field and the lack of an .mcp.json file. This configuration leverages only local resources within the skills/ directory, proving that external tool protocols are not prerequisites for plugin operation.

Key Files and Their Roles

Understanding the file hierarchy ensures proper plugin packaging without unnecessary dependencies:

  • .codex-plugin/plugin.json — The required manifest file present in every plugin. This file defines metadata, entry points, and version constraints as specified in the repository's core schema.

  • skills/ — A directory containing executable skills and prompt templates. Required only when referenced in the manifest's entry field, but unnecessary for MCP-only tool providers.

  • .mcp.json — An optional file specifying MCP server configurations. Include this only when exposing external tools, following patterns seen in the Vercel plugin example that defines server transports and tool schemas.

  • .app.json — An optional companion file for application-level settings, typically used alongside MCP configurations but strictly unnecessary for basic plugin functionality.

Summary

  • MCP is not a required component for all OpenAI plugins; it is strictly optional.
  • The .codex-plugin/plugin.json manifest is the only file required for every plugin.
  • Include .mcp.json only when your plugin must expose MCP-based tools or external services.
  • Reference implementations like the Wix plugin demonstrate full functionality without MCP configuration files.

Frequently Asked Questions

Can I build an OpenAI plugin without implementing MCP?

Yes. You can create fully functional plugins using only the .codex-plugin/plugin.json manifest and local skill definitions. The Model Context Protocol is necessary only when your plugin needs to communicate with external tool servers or standardized context services.

What specific files are mandatory for plugin recognition?

The sole mandatory file is .codex-plugin/plugin.json. All other files—including skills/ directories, .app.json, and .mcp.json—are optional based on your specific implementation requirements and whether you expose MCP endpoints.

How does the Wix plugin demonstrate optional MCP usage?

The Wix plugin implementation omits the .mcp.json file entirely from its repository structure, relying instead on the core manifest and local skill definitions. This serves as a production example that MCP configuration is not required for valid plugin operation.

When should I include an .mcp.json file in my plugin?

Include .mcp.json only when your plugin exposes tools through the Model Context Protocol to external services or databases. If your plugin operates using internal logic, prompt templates, or local resources without external tool calls, omit this file to reduce configuration overhead.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →