OpenAI Plugins: package examples, portable formats and connection boundaries
Distributing OpenAI Plugins: local catalogues, installed copies and hosted services
Separate package distribution from MCP service deployment and understand why editing a source folder may not update an installed local plugin.
What you will learn
- Package distribution is not service hosting
- Treat the marketplace and installed copy as separate locations
- Distinguish private sharing from public publication
Before you start
- Basic JSON and directory-path knowledge
- Understanding of skills and external-service permissions
Distinguish source examples from current format guidance and inspect a package without confusing metadata with runtime proof.
Key takeaways
- Package assembly does not host a service.
- Source folders and installed cache copies can differ.
- Local, workspace and public distribution are separate paths.
Package distribution is not service hosting
A skills-only package may need no separately hosted service. A server-backed plugin has two deployment concerns: the installable package and the service it connects to. Uploading a manifest does not deploy a local MCP process, provision a remote endpoint or grant users access to an existing connector.
The Figma example is described as app-backed through .app.json. Its checked-in .mcp.json also contains a remote endpoint example, but file presence alone does not prove how a particular host loads or combines it with the app mapping. Follow the documented architecture for the selected package instead of assuming every optional file is active.
Treat the marketplace and installed copy as separate locations
The official packaging page describes local marketplaces as catalogues whose source paths resolve from the marketplace root. It also describes an installed cache copy, rather than direct execution from the authoring directory. A change to source files may therefore require the documented refresh or restart path before the installed copy reflects it.
When an update appears missing, record the marketplace identity, source path, package version and installed content. Verify which copy the host is using before editing more files. Do not delete a broad cache directory as a first diagnostic step; other plugins and user-owned state may live nearby.
Distinguish private sharing from public publication
The official page separates local testing, workspace publication and the universal public directory. Workspace publication requires the relevant administrator role and remains inside that workspace boundary. Public submission follows its own review process; a repository commit or local marketplace entry does not by itself publish a public plugin listing.
For a server-backed public submission, follow the current endpoint and review requirements independently of package assembly. Keep secrets out of committed manifests and record a rollback plan for both package and service versions. This series performed no installation, workspace publication, public submission or server deployment.
Decision guide
| Criterion | Option A | Option B |
|---|---|---|
| Best when | You need predictable behavior and easy auditing | You need adaptive optimization and have reliable telemetry |
| Main risk | May leave performance on the table | Can become difficult to explain or debug |
Implementation steps
- 1
Identify whether the package requires a separate service.
- 2
Record catalogue source and installed package identity.
- 3
Verify refresh behavior before diagnosing a missing update.
- 4
Plan publication and rollback for the intended audience.
Copy-ready example
{
"deploymentChecklist": true,
"packageRevision": "record explicitly",
"installedCopyVerified": false,
"serviceRequired": "depends on package",
"publicSubmissionCompleted": false,
"rollbackPrepared": false
}Frequently asked questions
Why might a source edit not appear in my installed plugin?
The documented local flow uses an installed copy; confirm the source, version and refresh process.
Does a Git commit publish a public plugin?
No. Public directory submission is a separate process.
Sources
- OpenAI Plugins / plugins/figma/README.mdSource checked 2026-09-14
- OpenAI Plugins / plugins/figma/.app.jsonSource checked 2026-09-14
- OpenAI Plugins / plugins/figma/.mcp.jsonSource checked 2026-09-14
- OpenAI — Package your plugin (checked 2026-09-14)Source checked 2026-09-14