plugin.json manifest, skills/ folders, and an mcp.json) follows the shape used by other plugin systems, so an existing package usually needs few changes.
The package does not contain your server. It only says where your server is.
Layout
plugin.json. __MACOSX/ entries are ignored.
plugin.json
Other fields are kept as they are.
mcp.json
Declare exactly one server under mcpServers:
A package with zero or several servers is rejected.
skills/<name>/SKILL.md
Skills tell the model when and how to use your tools. Each is a Markdown file that starts with frontmatter that includes a description:
description is a warning. Write skills about your own tools only. Do not tell the model to use your app in place of others.
Limits
Import checks
Importing reads the ZIP and reports findings as errors or warnings. Any error means the package is not imported. The messages and codes you may see:
The warnings are
plugin.version-missing, plugin.description-missing, plugin.icon-missing, and skill.frontmatter.
Building the ZIP
From the folder that holdsplugin.json: