What a Claude plugin is
A plugin is a folder in a public git repo. It bundles any combination of skills (markdown instructions Claude activates when relevant), MCP connectors (the tools), slash commands and sub-agents. For a SaaS the useful shape is one skill that teaches the workflow plus one MCP server that exposes the API. Anthropic's own guidance says the best plugins solve a job end to end rather than exposing one tool, so write the skill around the three or four things a customer actually does with you.
The files
- .claude-plugin/plugin.json: name, version, description, author, homepage, repository, license, keywords
- .claude-plugin/marketplace.json: makes the repo its own marketplace, so users can install before you are in the directory
- .mcp.json: the MCP server, either a remote URL or a local npx command with the env var it needs
- skills/<name>/SKILL.md: the skill, plus references/ files for the API reference and workflows
- README.md: install commands, how to get an API key, what the plugin can do
Submit it
- 1Push the plugin to a public GitHub repo. Closed-source plugins are rejected.
- 2Run claude plugin validate in the repo and fix everything it flags.
- 3Sign in to the Console at platform.claude.com with a Developer, Admin or Owner role on the organization.
- 4Submit the repo link at platform.claude.com/plugins/submit. Team and Enterprise admins can use claude.ai/admin-settings/directory/submissions/plugins/new instead.
- 5Wait for the automated review. Times vary with the queue; there is no fixed SLA.
- 6After approval, push updates to the repo. CI mirrors them into the public marketplace and re-screens each one, so you never re-submit the form.
What users do once you are listed
In Claude Code the directory appears as the official claude-plugins-official marketplace, available to everyone without setup. Before you are listed, and for users who want the latest commit, the repo doubles as a marketplace:
Install from your own repo
/plugin marketplace add <org>/<repo> /plugin install <plugin>@<marketplace>
What we learned shipping ours
- Generate the plugin folder from the same source as your API docs and OpenAPI spec. Hand-maintained manifests drift within a month.
- Ship the MCP server as an npm package started with npx so the plugin works on a fresh machine with nothing preinstalled.
- The repo the plugin syncs to needs a LICENSE file. Keep it out of the sync so the generator does not delete it.
- Include a SETUP.md skill if the MCP server needs a key: Claude reads it on install and walks the user through creating one.
- The Connectors Directory is a separate submission for remote MCP servers. Do both: the plugin for Claude Code and Cowork, the connector for claude.ai chat.
Vendor docs this guide is checked against
- Submitting your pluginclaude.com/docs/plugins/submit
- Claude Code plugin guidecode.claude.com/docs/en/plugins
- Community marketplace repogithub.com/anthropics/claude-plugins-community