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

> Submit your plugin to the Claude plugin marketplace with our step-by-step guide. Learn how to create a valid plugin manifest and pass checks for successful submission.

- Repository: [Anthropic/claude-plugins-community](https://github.com/anthropics/claude-plugins-community)
- Tags: how-to-guide
- Published: 2026-09-13

---

**Submitting a plugin to the Claude plugin marketplace requires creating a `.claude-plugin/` directory with a valid [`plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/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`](https://github.com/anthropics/claude-plugins-community/blob/main/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`](https://github.com/anthropics/claude-plugins-community/blob/main/tres-finance-plugin/.claude-plugin/plugin.json), the manifest must include specific fields such as `name`, `description`, `version`, and `author` [[source]](https://github.com/anthropics/claude-plugins-community/blob/main/tres-finance-plugin/.claude-plugin/plugin.json#L1-L27).

Optional but recommended files include:

- **`skills/.../*.md`** – Skill definitions written in Claude-compatible markdown
- **[`README.md`](https://github.com/anthropics/claude-plugins-community/blob/main/README.md)** – Human-readable documentation, usage instructions, and licensing
- **[`.mcp.json`](https://github.com/anthropics/claude-plugins-community/blob/main/.mcp.json)** – Required only if the plugin ships an MCP server

A minimal valid [`plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.json) follows this structure:

```json
{
  "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`](https://github.com/anthropics/claude-plugins-community/blob/main/.github/workflows/validate-plugins.yml) [[source]](https://github.com/anthropics/claude-plugins-community/blob/main/.github/workflows/validate-plugins.yml#L1-L30).

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:

```bash
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`](https://github.com/anthropics/claude-plugins-community/blob/main/README.md), direct pull requests are automatically closed; all submissions must go through the official portal [[source]](https://github.com/anthropics/claude-plugins-community/blob/main/README.md#L24-L27).

Follow these steps to submit:

1. **Prepare your repository** – Ensure the `.claude-plugin/` folder contains a valid [`plugin.json`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.json) and that your repository builds cleanly with the validation workflow
2. **Navigate to the submission portal** – Open **[clau.de/plugin-directory-submission](https://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`](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json)**, the central registry of all community-approved plugins [[source]](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json).

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

```bash
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`](https://github.com/anthropics/claude-plugins-community/blob/main/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`](https://github.com/anthropics/claude-plugins-community/blob/main/.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`](https://github.com/anthropics/claude-plugins-community/blob/main/.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`](https://github.com/anthropics/claude-plugins-community/blob/main/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](https://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`](https://github.com/anthropics/claude-plugins-community/blob/main/plugin.json) against the official Zod schema, and the automated **security scanning** workflow defined in [`.github/workflows/validate-plugins.yml`](https://github.com/anthropics/claude-plugins-community/blob/main/.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`](https://github.com/anthropics/claude-plugins-community/blob/main/.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`](https://github.com/anthropics/claude-plugins-community/blob/main/.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.