# Is MCP a Required Component for All OpenAI Plugins?

> Discover if the Model Context Protocol MCP is a required component for OpenAI plugins. Learn the truth about MCP's role in Codex plugins and decide if it's essential for your integration.

- Repository: [OpenAI/plugins](https://github.com/openai/plugins)
- Tags: faq
- Published: 2026-06-06

---

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

Every plugin must include a [`.codex-plugin/plugin.json`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.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:

```json
{
  "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`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.codex-plugin/plugin.json)** manifest is the only file required for every plugin.
- Include **[`.mcp.json`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.codex-plugin/plugin.json). All other files—including `skills/` directories, [`.app.json`](https://github.com/openai/plugins/blob/main/.app.json), and [`.mcp.json`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.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`](https://github.com/openai/plugins/blob/main/.mcp.json) file in my plugin?

Include [`.mcp.json`](https://github.com/openai/plugins/blob/main/.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.