How to Submit a Plugin to the Claude Plugin Marketplace: Step-by-Step Guide

Submitting a plugin to the Claude plugin marketplace requires creating a .claude-plugin/ directory with a valid plugin.json manifest, passing automated validation and security checks, and submitting through the official web form at clau.de/plugin-directory-submission.

The Claude plugin marketplace is a curated collection of community-contributed extensions for Claude Code and Claude Cowork. To successfully submit a plugin to the Claude plugin marketplace, developers must structure their repository according to the official schema defined in the anthropics/claude-plugins-community repository and navigate the review pipeline that ensures quality and security standards.

Repository Structure and Required Files

Every plugin must be delivered as a Git repository containing a .claude-plugin/ directory at the root. The centerpiece of this directory is plugin.json, a manifest file that describes the plugin's metadata, versioning, authorship, and any user-configurable secrets.

According to the reference implementation in tres-finance-plugin/.claude-plugin/plugin.json, the manifest must include specific fields such as name, description, version, and author [source].

Optional but recommended files include:

  • skills/.../*.md – Skill definitions written in Claude-compatible markdown
  • README.md – Human-readable documentation, usage instructions, and licensing
  • .mcp.json – Required only if the plugin ships an MCP server

A minimal valid plugin.json follows this structure:

{
  "name": "my-awesome-plugin",
  "description": "Adds a fun greeting skill to Claude Code.",
  "version": "0.1.0",
  "author": { "name": "Jane Doe", "email": "jane@example.com" },
  "homepage": "https://github.com/janedoe/my-awesome-plugin",
  "repository": "https://github.com/janedoe/my-awesome-plugin",
  "license": "MIT",
  "keywords": ["greeting", "example"]
}

Validation and Security Requirements

Before a plugin can be listed, it must pass the Claude-provided validation actions defined in the community repository. The validation pipeline is orchestrated by the GitHub Actions workflow located at .github/workflows/validate-plugins.yml [source].

The validation process includes:

  • claude plugin validate – Validates the manifest against the official Zod schema to ensure all required fields are present and correctly typed
  • Security scanning – Automated analysis of the repository to detect disallowed secrets, unsafe code patterns, and excessive permission requests

Run the validation locally before submitting to catch schema errors early:

claude plugin validate

The Submission Process

The Claude plugin marketplace operates through a curated submission workflow rather than direct pull requests. As noted in the repository's README.md, direct pull requests are automatically closed; all submissions must go through the official portal [source].

Follow these steps to submit:

  1. Prepare your repository – Ensure the .claude-plugin/ folder contains a valid plugin.json and that your repository builds cleanly with the validation workflow
  2. Navigate to the submission portal – Open clau.de/plugin-directory-submission
  3. Complete the form – Provide the Git URL of your plugin, the specific commit SHA you want to publish, and optional metadata such as an icon URL
  4. Submit for review – The backend clones your repository, executes the validation pipeline, and runs security scans

After Submission: Publication and Updates

Once validation passes, the system automatically appends your plugin's metadata to .claude-plugin/marketplace.json, the central registry of all community-approved plugins [source].

After publication, users can install your plugin using CLI commands:

claude plugin marketplace add your-org/your-plugin
claude plugin install your-plugin@branch-or-tag

The marketplace refreshes nightly. To publish updates, submit a new SHA through the submission form; the pipeline will update your entry in the marketplace JSON with the new version metadata.

Summary

  • Create a .claude-plugin/ directory containing a plugin.json manifest that follows the official Zod schema
  • Pass local validation using claude plugin validate and ensure your repository triggers the validation workflow at .github/workflows/validate-plugins.yml
  • Submit exclusively through the web form at clau.de/plugin-directory-submission; direct pull requests are rejected automatically
  • Updates are handled by submitting new commit SHAs, which propagate to .claude-plugin/marketplace.json during the nightly refresh cycle
  • Users install approved plugins via claude plugin marketplace add followed by claude plugin install

Frequently Asked Questions

Can I submit a plugin via pull request to the community repository?

No. The README.md in the anthropics/claude-plugins-community repository explicitly states that direct pull requests are automatically closed. All submissions must go through the official web form at clau.de/plugin-directory-submission to ensure proper validation and security scanning.

What validation checks does my plugin need to pass?

Your plugin must pass two critical checks: the claude plugin validate command, which verifies your plugin.json against the official Zod schema, and the automated security scanning workflow defined in .github/workflows/validate-plugins.yml. These checks ensure no disallowed secrets are shipped and that the plugin's surface area meets safety standards.

How do I update my plugin after it's published?

To release an update, submit a new commit SHA through the same submission portal. The backend updates your entry in .claude-plugin/marketplace.json with the new version metadata. The marketplace registry refreshes nightly, making your update available to users the following day.

Where is the marketplace metadata stored?

The canonical list of approved plugins lives in .claude-plugin/marketplace.json at the root of the anthropics/claude-plugins-community repository. This file is maintained automatically by the submission pipeline and should not be edited manually.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →