Skip to main content
AI tutorials

Build Native-Feeling ChatGPT Plugins with OpenAI MCP Extensions

Learn how OpenAI MCP Extensions enhances MCP plugins with ChatGPT-specific experiences. This tutorial covers the available capabilities, TypeScript and Python SDK setup, the Bits & Bolts example, a practical development workflow, and tips for choosing and implementing extensions.

Build Native-Feeling ChatGPT Plugins with OpenAI MCP Extensions

What OpenAI MCP Extensions Does

OpenAI MCP Extensions adds ChatGPT-specific capabilities to the Model Context Protocol, or MCP. It is intended for developers who already have, or are preparing to create, a plugin and want it to behave more like a native ChatGPT feature.

The project provides SDKs for integrating supported extensions into MCP servers. The TypeScript package can be used with MCP servers and Apps, while the Python package targets MCP servers.

Key Capabilities

Sidebar entrypoints

Sidebar entrypoints let users open your app directly from the ChatGPT sidebar. This provides a persistent, discoverable way to access an experience such as a parts library.

Bits and Bolts Parts Library open from the sidebar

File extension handlers

A file extension entrypoint lets a plugin render a custom viewer when a user opens a supported file type. The repository demonstrates this with a CAD file opened in a specialized viewer.

Composer mentions

Composer mentions allow users to search resources supplied by a plugin and add references to those resources to a message. In the showcase, users can search for a CAD part from the composer.

Extended forms

OpenAI form elicitation supports richer selection experiences. The Bits & Bolts example uses thumbnail choices so users can visually select a CAD part.

Prerequisites

Before adding the extensions, create a plugin by following the OpenAI plugin documentation. OpenAI MCP Extensions enhances an existing plugin and MCP server rather than replacing the initial plugin setup.

You will also need a TypeScript or Python development environment, depending on the SDK you choose.

Try the Reference Plugin

The fastest way to understand the intended user experience is to try Bits & Bolts Remote, the example plugin used throughout the repository.

  1. Open the Bits & Bolts Remote plugin directory page and install the plugin.

  2. Select Bits & Bolts Remote in the ChatGPT sidebar.

  3. Open the Parts Library and explore how the plugin appears as a sidebar experience.

  4. Use the showcase as a reference for custom file viewing, composer resource search, and visual form selection.

Install the SDK

TypeScript

Use @openai/mcp-extensions when building TypeScript MCP servers or Apps. Install it with your preferred JavaScript package manager:

npm install @openai/mcp-extensions

Consult the repository's TypeScript installation documentation for the current package instructions and SDK-specific details.

Python

For a Python MCP server, install openai-mcp-extensions:

pip install openai-mcp-extensions

Refer to the Python installation documentation for the latest setup guidance.

The README identifies TypeScript support for MCP servers and Apps, while Python support is listed for MCP servers. Choose the SDK according to where your extension logic will run.

Basic Development Workflow

  1. Create the plugin. Complete the standard plugin setup before integrating these extensions.

  2. Add the appropriate SDK. Use the TypeScript package for servers or Apps, or the Python package for server-side integration.

  3. Select an extension. Decide whether users should discover the app from the sidebar, open supported files in a custom viewer, mention plugin resources in the composer, or interact with an extended form.

  4. Implement the extension contract. Follow the authoritative OpenAI MCP Extensions specification for the required fields and behavior.

  5. Test the complete interaction. Confirm that the plugin's entrypoint or resource appears in the expected ChatGPT surface and that the resulting experience works as intended.

Example Feature Plans

Build a sidebar library

Use an MCP App entrypoint when your plugin has an interface users may want to open independently of a conversation. The Bits & Bolts Parts Library demonstrates this model: users select the plugin in the sidebar and browse its app experience.

Display a specialized file format

Use a file extension entrypoint when your plugin understands a particular file type and can provide a more appropriate viewer. The showcase uses CAD content as its example. Define support according to the specification rather than assuming that every file should be handled by the plugin.

Make resources available in the composer

Use composer mentions when users need to find plugin resources and attach references to a message. A catalog-oriented plugin, for example, can expose searchable items such as the CAD parts shown by Bits & Bolts.

Offer visual choices

Use OpenAI form elicitation when a selection benefits from more context than plain text options provide. Thumbnail choices are particularly useful when the items are easier to recognize visually, as demonstrated by the CAD part picker.

Advanced Tips

  • Start with the user entrypoint. Choose the ChatGPT surface that matches the task. Use the sidebar for direct app access, a file handler for supported documents, composer mentions for message references, and an extended form for structured selection.

  • Use Bits & Bolts as a behavioral reference. Explore the example before implementing your own extension so you can see how the capabilities fit into a user workflow.

  • Keep the specification open while developing. The top-level README summarizes the capabilities, but the specification contains the detailed extension contracts needed for implementation.

  • Check language-specific documentation. Installation and integration details may differ between the TypeScript and Python SDKs.

  • Combine capabilities around one coherent workflow. The showcase demonstrates how sidebar access, file viewing, composer resources, and rich forms can support different stages of the same parts-oriented experience.

Conclusion

OpenAI MCP Extensions helps developers move beyond a basic MCP integration and create plugins that fit naturally into ChatGPT. Begin with a standard plugin, install the SDK for your language, choose the appropriate entrypoint or interaction, and implement it according to the project specification. The repository is available under the Apache License 2.0.