The Claude Code Plugin Marketplace Is a JSON File in a Git Repo. The Only Price Tag in the Spec Is Measured in Tokens. | Prompt Receipts<br>← All guidesai-toolsreality-checkreceipts<br>The Claude Code Plugin Marketplace Is a JSON File in a Git Repo. The Only Price Tag in the Spec Is Measured in Tokens.<br>What is the Claude Code plugin marketplace, how do you add one, and why can nobody sell you a plugin? The full manifest schema has fields for license, category and tags, and no field for money. Checked against the docs, the MCP registry API, and a 66,972-server index on August 2, 2026.<br>2026-08-02 · 12 min read<br>Someone asks how to make money building Claude Code plugins about once a week now. You don't need a strategy post to answer it. You need to read one JSON schema, and that takes about a minute.
The Claude Code plugin marketplace is a file called marketplace.json, sitting in a .claude-plugin/ directory in a git repository. That's the whole mechanism. You point Claude Code at a repo, it reads the JSON, and the plugins listed inside become installable. There is no storefront, no seller account, and no field anywhere in the specification where a price could go.
This piece walks through what the marketplace actually is, how to add one, and what the shape of the spec tells you about whether this layer will ever pay its creators. Everything below was checked against the official documentation, the MCP registry API schema, and a live server index on August 2, 2026.
What a Claude Code plugin marketplace actually is
A plugin is a directory of components: skills, agents, hooks, MCP servers, LSP servers. A marketplace is a catalog listing those plugins and where to fetch each one.
The catalog is a single JSON file. At the top level it takes name, an array of plugins, and optionally $schema, description, version, metadata.pluginRoot, allowCrossMarketplaceDependenciesOn, and renames. Each entry in the plugins array requires exactly two things: name and source. The source is where the plugin lives, and it can be a GitHub repo, a git URL, or a relative path.
You host it by pushing to GitHub, GitLab, or any git host. You update it by pushing a commit. Users pull the change with /plugin marketplace update.
That's the entire distribution system. It's npm-shaped in the sense that it resolves names to repositories, and unlike npm it doesn't even have a registry service in the middle.
How to add a plugin marketplace
Three marketplaces come from Anthropic, and they behave differently.
The official one, claude-plugins-official, is added automatically when Claude Code starts. You only add it by hand if your network blocked the download:
/plugin marketplace add anthropics/claude-plugins-official<br>/plugin install github@claude-plugins-official
It's curated, and the docs are direct about what that means: inclusion is at Anthropic's discretion. It holds the language server plugins (pyright-lsp, rust-analyzer-lsp, and nine others), the pre-configured MCP integrations for GitHub, Linear, Notion, Figma, Sentry and friends, plus workflow plugins like commit-commands and pr-review-toolkit.
The community one is where third-party work goes. It's a public repo, and you add it yourself:
/plugin marketplace add anthropics/claude-plugins-community<br>/plugin install @claude-community
Everything in it passed automated validation and safety screening, and each plugin is pinned to a specific commit SHA in the catalog. That pinning is the security model: you're not trusting a moving branch.
The demo marketplace lives in the main anthropics/claude-code repo and exists to show what the system can do.
For anything else, you point at a repository directly. GitHub shorthand, a full git URL with a #branch suffix, a local directory, or a bare URL to a hosted JSON file:
/plugin marketplace add your-org/claude-plugins<br>/plugin marketplace add https://gitlab.com/company/plugins.git#v1.0.0<br>/plugin marketplace add ./my-marketplace<br>/plugin marketplace add https://example.com/marketplace.json
Teams skip the manual step by putting extraKnownMarketplaces in the project's .claude/settings.json, and everyone who trusts the folder gets prompted to install.
Nothing in that flow touches a payment. Adding a marketplace is a clone. Installing a plugin is a copy into ~/.claude/plugins/cache.
What the schema has room for, and what it doesn't
Here is the full set of optional fields a plugin entry accepts:
displayName, description, version, author, homepage, repository, license, keywords, category, tags, strict, relevance, defaultEnabled, plus the component paths skills, commands, agents, hooks, mcpServers, lspServers.
There's a field for what your plugin is called in a UI, a field for tags so people can find it, a field for whether it starts enabled, and a field telling Claude when to suggest it. Somebody thought carefully about discovery.
The only field within a mile of commerce is license, and it wants an SPDX identifier: MIT, Apache-2.0. It's there so a...